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á

69 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

Bạn sẽ nhận được điều này sau khi học.

  • Cú pháp cơ bản CMake

  • Cú pháp CMake hiện đại

  • Quản lý các phụ thuộc bên ngoài (dự án CMake riêng, thư viện bên thứ 3) bằng CMake

  • Xây dựng dự án C++ bằng CMake

mã có thể đọc được

cpp::build_system::module_project_with_cmake - Tạo các dự án C++ thú vị mà không phụ thuộc vào hệ điều hành/nền tảng.

Tìm hiểu về CMake, phần mềm cần thiết để tạo dự án C++!

  • CMake có khó không?

  • Tuy nhiên, trong bài giảng này, chúng ta sẽ tìm hiểu về mẫu CMake có thể sử dụng cho bất kỳ cấu hình dự án nào.

  • Tôi sẽ cho bạn biết mọi thứ tôi đã học được sau hơn 10 năm vật lộn với CMake!

Tìm hiểu về những điều này

Cú pháp cơ bản của CMake

  • Chúng tôi sẽ hướng dẫn bạn cú pháp cơ bản giúp bạn sử dụng CMake tốt hơn.

  • Hãy sử dụng CMake như một ngôn ngữ lập trình bằng cách học ngữ pháp cơ bản như biến, thông báo, hàm và câu lệnh điều khiển!

Cú pháp CMake hiện đại

  • Cũng giống như mô hình lập trình đã thay đổi từ C sang C++, CMake hiện đại hiện đang là xu hướng!

  • Khi xây dựng thư viện và tệp thực thi bằng CMake, hãy tránh sử dụng các phương pháp cũ.

Quản lý các phụ thuộc bên ngoài bằng CMake

  • Bạn vẫn đang quản lý các phần mềm phụ thuộc bên ngoài bằng cách cài đặt chúng trên PC của mình chứ?

  • Hãy quản lý các dự án CMake và các phụ thuộc bên ngoài theo cách tích hợp.

  • Bây giờ bạn có thể loại bỏ nhu cầu cài đặt các thư viện riêng biệt để xây dựng dự án của mình!

Xây dựng một dự án C++ có thể tái sử dụng bằng CMake

  • Nó chứa đựng tinh hoa của hơn 10 năm kinh nghiệm phát triển.

  • Chúng tôi cung cấp cấu trúc CMake cho phép bạn đạt được hiệu quả tối đa với những sửa đổi tối thiểu.

  • Bạn chưa bao giờ thấy một cấu trúc dự án nào như thế này phải không?!

Bạn có thể nhận được gì?

  • Khả năng sử dụng CMake như một ngôn ngữ lập trình

  • Các phương pháp hay nhất để xây dựng các dự án C++ bằng CMake

    • Quản lý các phụ thuộc bên ngoài bằng CMake

    • Tự động hóa quá trình phát triển bằng CMake

    • Xây dựng một dự án C++ có cấu trúc, có thể tái sử dụng bằng CMake

Từ khóa

  • Xây dựng hệ thống

  • CMake

  • Morden CMake

  • Kiến trúc dự án

  • Hệ thống mô-đun

  • Thư viện của bên thứ ba

Những điều cần lưu ý trước khi tham gia khóa học

Môi trường thực hành

  • Hệ điều hành và phiên bản (OS): macOS, Ubuntu

  • Công cụ sử dụng: Clang, CMake, Visual Studio Code (VSCode)

  • Thông số kỹ thuật PC: Bất kỳ PC nào có khả năng xây dựng C++

Kiến thức và biện pháp phòng ngừa của người chơi

mã có thể đọc được

Tại sao lại là readable_code?

Tôi vẫn còn nhớ cảm giác tự ti khi lần đầu tiên bước vào phòng thí nghiệm sau đại học và nhìn vào mã nguồn đã được triển khai. "Ôi... tại sao mình có xem đi xem lại cũng không hiểu được nhỉ?" Lúc đó, tôi cứ nghĩ đó là do thiếu sót của bản thân. Hơn mười năm đã trôi qua kể từ đó. Giờ thì tôi nhận ra: vấn đề không phải ở tôi, mà là ở mã nguồn.

Nhiều nhà phát triển viết mã một cách khó hiểu và kêu lên, "Tôi phải quay lại!" Nhưng những mã đó sớm trở lại ám ảnh họ như một xiềng xích. Mã được viết mà không tuân thủ các quy ước để triển khai nhanh chóng và việc sử dụng quá nhiều chú thích gây ra sự nhầm lẫn khi đọc, và các giao diện được tạo ra một cách cẩu thả cuối cùng khiến việc phân biệt dữ liệu nào đang được trao đổi trở nên khó khăn. Mã được viết theo cách này, theo thời gian, tạo ra kết quả không chính xác, trở nên không thể đọc được đối với bất kỳ ai. Ngay cả tác giả của mã , sau một tuần không xem lại, cũng thấy mình phải mở sổ mã có tên là "gỡ lỗi" và giải mã mã .

Chúng ta gọi mã nguồn là một ngôn ngữ . Ngôn ngữ tồn tại để giao tiếp với một cái gì đó. Nhiều người lầm tưởng rằng một cái gì đó là máy tính. Quan niệm sai lầm này chính là nguyên nhân dẫn đến sự ra đời của nhiều thứ mật mã mà chúng ta gọi là mã. (Chẳng phải thật thú vị khi mã thực sự có nghĩa là mã hóa sao?)

Nhưng như tôi đã đề cập trước đó, mã nguồn không phải là thứ máy tính đọc, mà là thứ chúng ta đọc. Do đó, viết mã nguồn cũng giống như viết, và cụ thể hơn là viết tài liệu kỹ thuật. Bạn cần viết mã nguồn ngắn gọn và đủ rõ ràng để mọi người có thể hiểu. Mã nguồn được viết theo cách này dễ đọc và dễ hiểu cho bất kỳ ai, bất kể họ nhìn thấy nó khi nào. Đáng tiếc là, trong lĩnh vực tôi từng làm việc, mọi người thường nói rằng họ không có thời gian để xem xét và triển khai những chi tiết nhỏ nhặt như vậy. Tuy nhiên, điều tôi học được là vấn đề không phải là "không thể làm điều gì đó vì không có thời gian", mà là "không thể làm điều đó vì không có cách nào để làm".

Mã dễ đọc đối với mọi người ( readable_code ) cũng dễ đọc đối với máy tính trong hầu hết các trường hợp. Điều này là do nó tránh các biến, hàm, chuyển đổi và quy trình không cần thiết. Điều này cũng cải thiện đáng kể hiệu suất cộng tác và bảo trì mã. Ví dụ, tại công ty của tôi, tôi đã từ bỏ khuôn khổ hiện tại và thiết kế và triển khai một khuôn khổ mới. Công việc tích hợp mã này đã rút ngắn công việc vốn phải mất hai tuần với khuôn khổ hiện tại xuống chỉ còn ba ngày . Hơn nữa , việc triển khai mô-đun, vốn phải mất ba tháng với khuôn khổ hiện tại, đã trở nên khả thi trong vòng chưa đầy một tháng . Vấn đề với mã dễ đọc đối với con người là bạn không thể triển khai nó; nếu bạn có thể, thì không có lý do gì để không triển khai. Đó là một điều đáng kinh ngạc có thể cải thiện đáng kể hiệu quả phát triển.

Văn hóa phát triển trưởng thành, tinh thần hợp tác và mã nguồn dễ đọc thường được coi là những yếu tố cần có, hay nói đúng hơn là tùy chọn. Tuy nhiên, tôi đã chứng kiến sức mạnh của mã nguồn dễ đọc và trải nghiệm ứng dụng thực tế của nó. Mặc dù tôi có thể áp dụng kiến thức này cho công ty và nhóm của mình, nhưng tôi không muốn hài lòng với điều đó. Tôi muốn tăng năng suất phần mềm của Hàn Quốc. Tôi muốn các kỹ sư được phát triển trong một môi trường tốt hơn. Tôi muốn một văn hóa phát triển mạnh mẽ được thấm nhuần trong các công ty Hàn Quốc.

Từ giờ trở đi, tôi sẽ chia sẻ với bạn tất cả những kinh nghiệm tôi đã có, những thành công và thất bại, và tất cả những kiến thức tôi đã học được trên chặng đường này . Những điều này vô cùng quý giá và sẽ là nền tảng vững chắc cho con đường của bạn. Bạn có muốn tham gia cùng chúng tôi không? (y/n) … -y

Sự khác biệt giữa readable_code và readable_code

  • Một giảng viên có kinh nghiệm về kiến trúc phần mềm sẽ giảng dạy dựa trên phần mềm đã được xác minh là có hiệu quả trong thực tế.

  • Bao gồm nội dung áp dụng cho công việc/phát triển thực tế

  • Nó truyền đạt bí quyết và khái niệm có được thông qua kinh nghiệm phát triển thực tế, chứ không phải nội dung lý thuyết có thể học được bằng cách đọc sách.

  • Chúng tôi đã triển khai một cấu trúc có thể hiểu được chỉ bằng cách nghe một bài giảng bằng cách loại bỏ tối đa sự phụ thuộc giữa các bài giảng.

Cách đọc tiêu đề bài giảng

  • Mô tả tiêu đề bài giảng bằng kỹ thuật snake_case được sử dụng khi mô tả các biến và không gian tên trong C++

  • Chia thứ bậc của các bài giảng theo cách tương tự như sử dụng không gian tên trong C++.

  • readable_code:: language_name :: xx::yy::zz::Course_Name - Phụ đề

    • language_name : Mô tả ngôn ngữ lập trình được sử dụng trong bài giảng (ví dụ: cpp, c, python, v.v.)

    • xx, yy, zz : Thể hiện thứ bậc chi tiết của từng bài giảng, các thuộc tính của bài giảng (ví dụ: thiết kế, xác minh, v.v.)

    • Corresponding_Course_Name: Tên của cấp độ thấp nhất mô tả tên gốc của bài giảng.

    • Phụ đề : Giải thích thêm về bài giảng


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

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

  • Bất cứ ai mới phát triển C++

  • Bất kỳ ai muốn có được một dự án CMake được triển khai tốt một cách có hệ thống

  • Những người cần phát triển C++ trên nhiều hệ điều hành

  • Người đã quản lý dự án bằng cách sửa đổi từng chút một tệp CMake đang chạy

  • Bất cứ ai muốn quản lý các phần phụ thuộc bên ngoài một cách đơn giản

  • Bất cứ ai muốn quản lý hiệu quả cấu trúc của dự án

Cần biết trước khi bắt đầu?

  • C++

  • Thiết lập môi trường phát triển (Ubuntu, VSCode)

Xin chào
Đây là captaindev

Xác minh sự nghiệp

661

Học viên

24

Đánh giá

4

Trả lời

4.8

Xếp hạng

2

Các khóa học

Từng là kiến trúc sư phần mềm C++ cho xe tự hành
Phát triển robot·xe tự hành · đào tạo C++ · ứng dụng AI trong công việc

↗ HolyGround · Giáo dục · Sự nghiệp · Nội dung

↗ Cộng đồng làm chủ trí tuệ nhân tạo

Kinh nghiệm làm việc

  • Hiện tại HolyGround — Vận hành nền tảng giáo dục · Phát triển C++ · Đào tạo ứng dụng trí tuệ nhân tạo

  • Trước đây StradVision — Kiến trúc sư phần mềm Visual SLAM · Bản đồ đỗ xe tự động và nhận diện vị trí

  • Trước đây Robotis — Tech Lead Bộ phận Nhận thức · Nhận thức cho robot giao hàng ngoài trời

  • Programmers Dev Course về xe tự hành — Giảng viên·Cố vấn C++

Chuyên môn chính

  • Phần mềm robot và xe tự hành

  • Môi trường phát triển C++ · hệ thống build · cấu trúc dự án

  • Ứng dụng trí tuệ nhân tạo vào phát triển, biên soạn bài giảng và vận hành doanh nghiệp

Khóa học

Inflearn

Vùng Đất Thánh

Công cụ và tài liệu dùng trong thực tế

Thêm

Chương trình giảng dạy

Tất cả

16 bài giảng ∙ (4giờ 51phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

5 đánh giá

4.6

5 đánh giá

  • bumjunoh9024님의 프로필 이미지
    bumjunoh9024

    Đánh giá 1

    ∙

    Đánh giá trung bình 3.0

    3

    50% đã tham gia

    Nội dung bài giảng ổn. Nó bao gồm nội dung và trình độ phù hợp cho những người lần đầu làm việc với CMake. Nhưng giá quá đắt. Nếu bạn hỏi liệu nó có đáng nghe ở mức giá này không thì không. Tôi muốn nói. Tôi nghĩ nó sẽ là một lựa chọn tốt hơn nếu giá rẻ hơn nhiều.

    • hyeonsuchoi7884님의 프로필 이미지
      hyeonsuchoi7884

      Đánh giá 11

      ∙

      Đánh giá trung bình 4.9

      5

      100% đã tham gia

      • zz06223720님의 프로필 이미지
        zz06223720

        Đánh giá 5

        ∙

        Đánh giá trung bình 5.0

        5

        31% đã tham gia

        • ojs9410104449님의 프로필 이미지
          ojs9410104449

          Đánh giá 3

          ∙

          Đánh giá trung bình 5.0

          5

          100% đã tham gia

          • kimjaehyun1235님의 프로필 이미지
            kimjaehyun1235

            Đánh giá 2

            ∙

            Đánh giá trung bình 5.0

            5

            31% đã tham gia

            Khóa học tương tự

            Khám phá các khóa học khác trong cùng lĩnh vực!

            Giảm 25% cho thành viên mới

            2.552.939 ₫

            25%

            3.403.919 ₫