inflearn logo
inflearn logo

readable_code::CMake - Tạo dự án C++ ưa thích

Rào cản lớn nhất đối với C++ là gì? Tôi nghĩ đó là CMake. Khi tôi mới bắt đầu sử dụng C++, CMake đã gây khó khăn cho việc xây dựng một tệp nguồn duy nhất... Chúng ta cùng nhau tiêu diệt nó nhé? Với khóa học này, bạn cũng có thể trở thành CMake Master!

(4.6) 5 đánh giá

66 học viên

Độ khó Cơ bản

Thời gian Không giới hạn

C++
C++
cmake
cmake
software-design
software-design
C++
C++
cmake
cmake
software-design
software-design

Tin tức

10 bài viết

  • captaindev님의 프로필 이미지

    Xin chào, tôi là Daejangnyang Eun-seong.

    "Trong thực tế, lập trình C++ như thế nào?"
    "Ngoài dự án đồ chơi, sản phẩm thực tế được làm ra sao?"

    Tôi đã nhận được nhiều câu hỏi như vậy nên đã tổ chức hội thảo.
    Công khai phần đầu.


    Video hội thảo (công khai phần đầu)

    Thành thật mà nói, lúc đầu tôi cũng không biết.

    Làm theo cách học ở trường thì gặp nhiều vấn đề.
    Ném exception thì hệ thống chết.
    Cấp phát bộ nhớ thì realtime bị phá vỡ.
    Tạo thread thì xảy ra race condition.

    Tôi đã trải qua nhiều thử thách khi làm sản phẩm thương mại hóa tại các công ty robot và xe tự hành.
    Tôi đã chia sẻ những gì học được qua trải nghiệm thực tế lúc đó.

    Xem video hội thảo →


    Nếu bạn muốn tìm hiểu sâu hơn

    Hướng dẫn Framework C++ cho Sản phẩm

    Tại sao phải làm như thế này, tại sao không nên làm như thế kia.
    Đã tổng hợp thành 24 chủ đề.

    Đang áp dụng giá Early Bird (đến ngày 2 tháng 1)
    ₩129,000 → ₩96,750 (giảm 25%)

    Xem hướng dẫn →

    Nếu bạn muốn xem mã nguồn thực tế

    Production Playground cho C++

    Đây là mã được triển khai theo đúng hướng dẫn.
    Bạn có thể chạy trực tiếp.

    ₩499,000

    Xem mã nguồn →

    Dựa trên implementation này, tôi cũng dự định tạo framework robotics và framework SLAM.


    Đừng vất vả như tôi, hãy lấy về dùng nhé.

    Cộng đồng: Phòng chat mở Làm chủ Trí tuệ nhân tạo

    Xin cảm ơn.

    Trưởng phát triển Yang Eun-seong
    Công ty HolyGround

    0
  • captaindev님의 프로필 이미지

    Xin chào, tôi là Yang Eun-seong, trưởng nhóm phát triển.

    Tôi đã từng loại bỏ ROS và tạo sản phẩm hoàn toàn bằng C++ thuần túy.

    Xin chào, tôi là Trưởng phòng Phát triển Yang Eun-seong. Tôi đã từng làm sản phẩm hoàn toàn bằng C++ sau khi loại bỏ ROS.

    Tôi đã làm hai lần.

    Một lần ở công ty robot, một lần ở công ty tự lái.

    Lần đầu tiên mất 6 tháng.

    Lần thứ hai nhanh hơn nhiều.

    Tôi đã từng tự build production. Hai lần. Một lần ở công ty robot, một lần ở công ty xe tự hành. Lần đầu mất 6 tháng. Lần thứ hai nhanh hơn nhiều.

    Vì tôi đã biết phải làm gì.


    Những gì bạn nhận được

    • Từ thiết lập môi trường đến CI, biết trước sẽ gặp khó khăn ở đâu

    • Bạn sẽ nắm vững các tiêu chuẩn xử lý lỗi, quản lý bộ nhớ và thiết kế đồng thời

    • Khi hiểu "tại sao phải làm như vậy", bạn có thể áp dụng ngay cả khi công cụ thay đổi

    Không phải là code. Hiểu được điều kiện sẽ giảm thời gian làm việc vô ích.


    Ưu đãi sớm

    Giá gốc: ₩129,000

    Giá khuyến mãi: ₩96,750 (giảm 25%)

    Hạn chót: Đến ngày 2 tháng 1


    Xem Hướng dẫn Production C++ Framework →

    Cảm ơn bạn.

    Trưởng phòng phát triển Yang Eun-seong kính gửi

    Công ty TNHH HolyGround

    0
  • captaindev님의 프로필 이미지

    Xin chào, tôi là Dương Ân Thành - Trưởng phòng Phát triển.

    Bạn đã từng gặp khó khăn khi tạo prototype bằng ROS2 và muốn thương mại hóa sản phẩm chưa?

    Tôi cũng vậy.


    Tại sao chúng tôi chuẩn bị buổi hội thảo này?

    Tôi đã tạo hệ thống nhận diện cho robot giao hàng ngoài trời bằng ROS2.
    Prototype đã hoạt động tốt.

    Nhưng khi chuẩn bị sản phẩm hóa thì vấn đề đã nổ ra.

    • Tài nguyên không đủ trong hệ thống nhúng

    • Trong xử lý thời gian thực, overhead đã trở thành nút thắt cổ chai

    • Không thể sử dụng cả mã nguồn mở do vấn đề bản quyền

    Cuối cùng phải loại bỏ ROS2 và làm lại bằng C++ thuần túy.

    Có những điều tôi đã học được sau hơn 10 năm lặp đi lặp lại những công việc vất vả như thế này.
    Không có trong sách. Chỉ khi gặp sự cố mới biết được.


    Những gì học được từ hội thảo

    Phần 1: Thực tế từ ROS đến sản xuất (30 phút)

    Chia sẻ những vấn đề thực tế gặp phải khi đưa ROS vào sản xuất.

    • Các nguồn mở không thể sử dụng do vấn đề giấy phép

    • Vấn đề tài nguyên bị quá tải trong hệ thống nhúng

    • Overhead gây nghẽn cổ chai trong xử lý thời gian thực

    Phần 2: Các vấn đề cần xem xét trong mã nguồn production (50 phút)

    Đề cập đến các tiêu chí thiết kế cần xem xét khi tạo mã production.

    • Xử lý lỗi: Exception vs Result, tại sao không nên sử dụng exception trong hệ thống nhúng

    • An toàn kiểu: Cách phát hiện lỗi đơn vị tại thời điểm biên dịch

    • Quản lý bộ nhớ: Lý do không nên gọi new trong vòng lặp thời gian thực

    • Đồng thời đa luồng: Các mẫu thiết kế xử lý đồng thời an toàn mà không gây deadlock

    • Logging/Profiling: Chiến lược tìm nguyên nhân khi vấn đề xảy ra trong môi trường production

    • Quản lý phụ thuộc: Mẫu thiết kế để quản lý thư viện bên ngoài

    Phần 3: Lựa chọn công cụ và thư viện (20 phút)

    Chia sẻ các công cụ đã được xác minh trong môi trường production và các pattern cần tránh.

    Phần 4: Hỏi & Đáp (20 phút)

    Giải đáp thắc mắc theo thời gian thực


    Thông tin hội thảo

    Tiêu đề: Tại sao chúng tôi loại bỏ ROS: Hướng dẫn về Production Framework từ một Kiến trúc sư 10 năm kinh nghiệm

    Thời gian: Ngày 20 tháng 12 năm 2025 (Thứ Bảy) 20:00 - 22:00 (120 phút)

    Địa điểm: Trực tuyến (Zoom)

    Phí tham gia: 99.000 won

    Quyền lợi người tham gia: Cung cấp nội dung tổng hợp hướng dẫn


    Fruit: Production Playground cho C++

    Đây là mã nguồn thực hiện các hướng dẫn được đề cập trong buổi hội thảo.

    Nội dung bao gồm:

    • Thư viện Core cho môi trường production (xử lý lỗi, hệ thống đơn vị, đồng thời, memory pool, logger/profiler, v.v.)

    • Hệ thống xây dựng có khả năng mở rộng (CMake Presets)

    • Hệ thống kiểm tra chất lượng tự động (định dạng, phân tích tĩnh, kiểm thử, độ bao phủ)

    • Quy trình CI/CD (GitHub Actions)

    • Ứng dụng demo fusion thời gian thực 4 cảm biến

    Giá: 499.000원 → 399.200원 (Ưu đãi Early Bird 20%)

    Kết thúc Early Bird: Nửa đêm thứ Bảy tuần này

    Ưu đãi thêm: 20 người mua đầu tiên - Tham gia hội thảo miễn phí

    Xem chi tiết Fruit →


    Khóa học này dành cho

    • Bạn đã từng gặp khó khăn khi chuyển từ prototype ROS sang sản phẩm thương mại hóa

    • Người cần tạo production code bằng C++ thuần túy

    • Những người phát triển C++ trong hệ thống nhúng hoặc hệ thống thời gian thực

    • Những người tò mò về tiêu chuẩn thiết kế code production


    Cuối cùng

    Nội dung này đề cập đến hướng dẫn chứ không phải mã triển khai.

    Những gì nên sử dụng và những gì nên tránh.
    Cần cân nhắc điều gì để không gặp sự cố trong môi trường production.

    Hãy đầu tư 2 giờ để bỏ qua 10 năm mày mò thử nghiệm.

    Đăng ký Seminar →


    Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ bất cứ lúc nào.

    Email:yes@holyground.world

    Cộng đồng:Phòng chat mở Readable Code

    Cảm ơn bạn.

    Trưởng phòng Phát triển Yang Eun-seong
    (주)HolyGround


    P.S. Khi mua Fruit, 20 người đầu tiên sẽ được tham gia hội thảo miễn phí. Vui lòng thông báo trong phòng chat mở sau khi mua hàng!

    0
  • captaindev님의 프로필 이미지

    Xin chào, tôi là trưởng phát triển Yang Eun-seong.

    Hôm nay lúc 8 giờ tối sẽ tiến hành Hội thảo miễn phí về Hệ thống Phát triển Hợp tác AI.

    Thông báo cuối cùng.


    Tại sao chúng tôi chuẩn bị hội thảo này?

    Tôi lúc đầu cũng viết cho ChatGPT là "làm cái này giúp tôi".

    Nhưng mỗi lần lại ra kết quả khác nhau, hôm nay dùng React rồi ngày mai lại dùng Vue.
    Thời gian kiểm tra lại còn lâu hơn cả thời gian phát triển nữa.

    Có điều tôi đã nhận ra sau 2 năm mày mò loay hoay.

    Điều AI cần là "ngữ cảnh".

    Dự án là gì, phong cách code như thế nào, trước đây đã làm gì.
    Vì không có bối cảnh như vậy nên mỗi lần đều code theo ý muốn của mình.

    Vì vậy tôi đã tạo ra hệ thống.


    Những gì học được từ seminar

    5 nguyên lý cốt lõi

    1. Cách cung cấp ngữ cảnh cho AI

    • Giải thích cấu trúc tổng thể của dự án thông qua tài liệu

    • Ngay cả khi có cùng một yêu cầu, luôn đảm bảo chất lượng như nhau

    2. Cách nâng cao chuyên môn bằng việc phân chia vai trò

    • 26 chuyên gia đại diện làm việc chỉ trong phạm vi trách nhiệm của từng người

    • Ranh giới rõ ràng tạo ra kết quả có thể dự đoán được

    3. Cách tự động hóa các công việc lặp lại

    • Một lệnh duy nhất để tự động thực hiện từ thiết kế đến xác thực

    • AI hoàn thành công việc một mình mà không cần can thiệp

    4. Cách để AI tự kiểm tra chất lượng

    • Chạy test để tôi không cần phải kiểm tra

    • Đảm bảo chất lượng khách quan mà không cần xác minh thủ công

    5. Cách tạo ra quy trình nhất quán

    • Ai làm cũng ra chất lượng như nhau

    • Mô hình thành công có thể lặp lại

    Demo trực tiếp

    Phát triển các hàm tiện ích C++ trong thời gian thực trong vòng 10 phút.

    Từ thiết kế đến triển khai, kiểm thử, xác minh tất cả.
    Tôi sẽ trực tiếp cho bạn thấy cách nó hoạt động trong thực tế.


    Đánh giá từ những người đã sử dụng

    "Toàn bộ quá trình từ thiết kế đến thực thi đã được thực hiện tự động, hoàn thành công việc một mình mà không cần can thiệp. AI đã đọc ngữ cảnh, đưa ra phán đoán và hoạt động như một nhà phát triển thực thụ."

    "Quản lý ngữ cảnh bằng tài liệu thực sự rất tuyệt vời. Việc xây dựng cấu trúc tuy khó nhưng một khi đã có cấu trúc rồi thì có thể áp dụng cho tất cả, năng suất sẽ tăng vọt luôn"

    Before: Phải chỉ đạo liên tục, tôi phải theo sát, và kết quả thì lên xuống thất thường

    Sau: AI tự động hoạt động một mình, tự nắm bắt ngữ cảnh và luôn duy trì chất lượng nhất quán


    Thông tin hội thảo

    Thời gian: 15 tháng 11, 2025 (Thứ Bảy) 20:00 - 22:00 (120 phút)

    Địa điểm: Trực tuyến (Zoom)

    Chi phí: Hoàn toàn miễn phí

    Số lượng: 100 người đăng ký sớm nhất

    Đăng ký:Đăng ký ngay bây giờ


    Khuyến nghị cho những người như thế này

    • Những người mệt mỏi vì mỗi lần sử dụng công cụ AI đều cho ra kết quả khác nhau

    • Lãnh đạo muốn xây dựng hệ thống hợp tác AI cho toàn bộ đội nhóm

    • Freelancer muốn nhận được nhiều dự án hơn một mình

    • Những người muốn trở thành lập trình viên có sức cạnh tranh trong thời đại AI


    Cuối cùng

    Chỉ cần nghe seminar thôi cũng có thể áp dụng ngay được.

    Chỉ cần hiểu nguyên lý thôi cũng có thể sử dụng được rồi.

    Đầu tư 2 giờ để học hệ thống có thể sử dụng suốt đời.

    Đăng ký ngay →


    Vậy tôi sẽ gặp bạn lúc 8 giờ tối nay.

    Cảm ơn bạn.

    Trưởng phòng phát triển Yang Eun-seong thân gửi
    (주)HolyGround

    0
  • captaindev님의 프로필 이미지

    Xin chào,

    Dành cho những ai cần học đa luồng với C++.

    Bạn đang có những băn khoăn như thế này phải không?

    • "Nghe nói phải dùng multithreading nhưng không biết nên bắt đầu học từ đâu"

    • Đã xem cách sử dụng std::thread, mutex rồi nhưng làm sao áp dụng vào thực tế?

    • Sách vở hay bài giảng chỉ có lý thuyết thôi, còn ví dụ thực tế thì quá phức tạp

    Tôi cũng đã rất bối rối, nhưng khi học bằng cách trực tiếp triển khai các pattern thực tế từ con số không thì tôi hiểu được "À, vì thế nên mới sử dụng như vậy".

    Hy vọng có thể giúp ích nên tôi đã tổng hợp hướng dẫn tự tạo ThreadPool, Scheduler, Pipeline từ zero base:

    Xem thêm chi tiết

    Chúng ta sẽ tìm câu trả lời cho những câu hỏi như "Tại sao cần condition_variable?", "Nên tạo bao nhiêu worker thread?" thông qua việc triển khai trực tiếp. Điều này sẽ mang lại sự hiểu biết hoàn toàn khác so với việc chỉ xem tài liệu API.

    Nếu bạn có bất kỳ câu hỏi hoặc thắc mắc nào, hãy liên hệ với chúng tôi bất cứ lúc nào.

    Cảm ơn bạn, trưởng phòng phát triển Yang Eun-seong

    0
  • captaindev님의 프로필 이미지

    Xin chào,

    Bạn có từng không hiểu được code mà chính mình viết cách đây 3 tháng, hoặc phải làm thêm giờ nhiều ngày chỉ để sửa một bug không?

    Bạn có thường xuyên gặp phải tình huống này không?

    • Đã học Clean Code, Design Pattern nhưng cảm thấy mông lung không biết áp dụng vào thực tế như thế nào

    • Trong code review chỉ tranh luận về style rồi hết thời gian, còn việc review logic thì không làm được

    • "Không biết chạm vào cái này thì chỗ nào sẽ nổ tung" - nỗi sợ hãi với legacy code

    Tôi cũng đã gặp phải khó khăn tương tự, và tôi đã nhận ra rằng nếu viết code dễ đọc thì mọi thứ sẽ được sắp xếp gọn gàng.

    Hy vọng có thể giúp ích nên tôi chia sẻ tài liệu học tập miễn phí tổng hợp từ 10 năm kinh nghiệm thực tế:

    Lập trình dễ đọc: Phương pháp phát triển tập trung vào khả năng đọc hiểu

    Học 47 nguyên tắc theo thứ tự có hệ thống, bạn có thể tăng năng suất gấp 4 lần, rút ngắn thời gian sửa lỗi 70%, và có thể tan ca đúng giờ. Cùng với lộ trình rõ ràng từ đâu bắt đầu, từ tự động hóa đến kiến trúc.

    Nếu bạn có bất kỳ câu hỏi hoặc thắc mắc nào, hãy liên hệ với chúng tôi bất cứ lúc nào.

    Cảm ơn bạn, trưởng phòng phát triển

    0
  • captaindev님의 프로필 이미지

    Xin chào,

    Phát triển C++ là một trong những mối quan tâm mà các bạn làm việc với nó thường gặp phải nhất chính là quản lý bộ nhớ.

    Tôi cũng có ký ức về việc nhận những cuộc gọi khẩn cấp vào lúc rạng sáng và phải chạy khắp phòng server vì segfaultrò rỉ bộ nhớ. Dù có dùng smart pointer và cẩn thận đến mấy thì vẫn có những lỗi bộ nhớ nổ ra ở đâu đó... Thực sự rất căng thẳng.

    Gần đây tôi đã tổng hợp một hướng dẫn quản lý bộ nhớ có hệ thống tập trung vào chiến lược "Pre-allocation First" đã được kiểm chứng trong thực tế, nghĩ có thể sẽ hữu ích nên chia sẻ với mọi người. Không chỉ đơn thuần là giải thích ngữ pháp mà:

    • "Khi nào nên sử dụng stack và khi nào nên sử dụng heap"

    • "Làm thế nào để xác định tình huống cần sử dụng memory pool"

    Được tạo ra dựa trên những tiêu chí đánh giá thực tế giống nhau.

    https://www.holyground.world/marketplace/seed/0bef2272-3377-448f-9fc0-dce02310910c

    Nếu bạn có bất kỳ thắc mắc nào liên quan đến bộ nhớ, hãy nhắn tin cho tôi bất cứ lúc nào. Với tư cách là người đã trải qua những khó khăn tương tự, tôi muốn giúp đỡ bạn.

    Chúc bạn có một ngày tốt lành!

    Trưởng phòng phát triển gửi

    0
  • captaindev님의 프로필 이미지

    Xin chào,

    Thành thật mà nói.

    Nhìn lại code mình viết cách đây 6 tháng

    "Ai đã viết cái này vậy?" - bạn đang nghĩ như vậy phải không?

    Tôi cũng vậy.

    Mỗi lần đều là cùng một pattern:

    1. "Biến này dùng để làm gì nhỉ?"

    2. "Tại sao hàm này lại được viết phức tạp như vậy?"

    3. "Sẽ mất bao nhiêu giờ để hiểu logic này?"

    4. Cuối cùng kết luận rằng viết lại từ đầu sẽ nhanh hơn...

    Tôi đã làm những việc vô ích như thế này hơn 10 năm rồi.

    Vì vậy tôi đã tạo ra nó.

    "Hãy viết code thực sự dễ đọc" với tâm thế như vậy.

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Hướng dẫn lập trình C++ dễ đọc

    "Code dễ đọc là code tốt" - một framework hoàn chỉnh được tạo ra với triết lý này.

    Nếu bạn nhận thì chúng tôi thực sự sẽ tặng hai cái:

    🎁 Sản phẩm hoàn thiện có thể sử dụng ngay

    - Framework phát triển hoàn chỉnh được kiểm chứng qua 10 năm kinh nghiệm thực tế

    - Hướng dẫn được tổ chức có hệ thống thành 10 tài liệu nhánh

    - Thiết lập hoàn hảo công cụ tự động hóa clang-format, clang-tidy

    - Hệ thống đã được xác minh tăng năng suất 3-8 lần trong các dự án thực tế

    🧠 Triết học có thể sử dụng suốt đời

    - Nguyên tắc cốt lõi "Code dễ đọc là code tốt"

    - Cách phân chia rõ ràng vai trò của con người, AI và các công cụ tự động hóa

    - Bí quyết tối đa hóa hợp tác nhóm với tiêu chuẩn phát triển nhất quán

    - "Code bạn viết hôm nay là code bạn sẽ phải đọc lại sau này" - một chân lý

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    Nếu bạn nhận ngay bây giờ:

    Tài liệu hướng dẫn hoàn chỉnh

    Tệp cấu hình công cụ tự động hóa

    Hướng dẫn áp dụng thực tế

    Phương pháp xây dựng tiêu chuẩn nhóm

    Cập nhật liên tục

    Bạn không muốn code của mình trông như mật mã nữa phải không?

    Từ dự án tiếp theo, bạn có thể viết code mà ai đọc cũng hiểu được.

    [Nhận ngay → https://www.holyground.world/marketplace/seed/ad71aec2-2580-47ca-9fa7-fde360b7d48a]

    Nếu có gì thắc mắc thì hãy nhắn tin cho tôi bất cứ lúc nào nhé.

    Cảm ơn bạn.

    0

3.402.014 ₫