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!
66 học viên
Độ khó Cơ bản
Thời gian Không giới hạn

Tin tức
10 bài viết
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 đó.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%)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
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 HolyGroundXin 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
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í
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.
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
(주)HolyGroundP.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!
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.
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
(주)HolyGroundXin 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,mutexrồ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:
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
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
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ì
segfaultvà rò 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
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.

