강의

멘토링

커뮤니티

Programming

/

etc. (Programming)

Giới thiệu về Simple Design Bài 3: Ít hơn là nhiều hơn

Đây là bài giảng thứ ba của khóa Giới thiệu Simple Design, đề cập đến việc giảm thiểu các thành phần cấu thành - một trong hai nguyên tắc của Simple Design. Bài giảng sẽ xem xét các thành phần cấu thành là gì, tại sao cần giảm thiểu chúng, và trình bày nhiều phương pháp giảm thiểu các thành phần cấu thành kèm theo code ví dụ. Ngoài ra, sau khi tìm hiểu về code smell trong refactoring và khái niệm lãng phí cần thiết trong Toyota Way, bài giảng cũng sẽ thảo luận về cách đánh giá kỹ năng chất lượng code của bản thân.

(5.0) 3 đánh giá

117 học viên

Độ khó Cơ bản

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

  • youngrok
code readability
code readability
code readability
code readability

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

  • Bạn có thể tìm hiểu cách cải thiện code bằng cách giảm trạng thái và giảm biến.

  • Bạn có thể đánh giá kích thước phù hợp của một hàm.

  • Có thể hiểu được sự cân bằng giữa khối lượng code và giá trị, và tìm được sự cân đối phù hợp.

  • Bạn có thể đánh giá và cải thiện chất lượng code của bản thân và team.

Khóa học này là khóa học thứ ba trong lộ trình Simple Design và là khóa học cuối cùng của phần giới thiệu Simple Design, nơi đề cập đến chất lượng code về mặt lý thuyết. Sau khi hoàn thành khóa học này, bạn có thể coi như đã xây dựng được nền tảng để viết code tốt. Bạn nên xem khóa học đầu tiên được mở miễn phí và khóa học thứ hai về xử lý code trùng lặp trước khi học khóa này.

Kế hoạch giảng dạy

Có hai cách để đạt được Simple Design như sau.

  1. Loại bỏ mã trùng lặp.

  2. Đồng thời giảm bớt các thành phần cấu thành.

Trong bài giảng trước, chúng ta đã tập trung vào việc loại bỏ code trùng lặp, và trong bài giảng này, chúng ta sẽ tập trung vào việc giảm thiểu các thành phần cấu thành.

Các nguyên tắc để xử lý chất lượng code không chỉ đơn thuần là ghi nhớ, mà phải hiểu được quá trình hình thành các nguyên tắc đó và tại sao chúng lại cần thiết. Vì vậy, trước tiên tôi sẽ giải thích lý do tại sao cần phải giảm các thành phần cấu tạo. Sau đó, chúng ta sẽ lần lượt xem xét thành phần nào cần được ưu tiên giảm thiểu. Chúng ta cũng sẽ tìm hiểu có thể đánh giá kích thước hàm phù hợp - một trong những yếu tố quan trọng trong chất lượng code - dựa trên tiêu chí nào, và cũng sẽ xem xét qua ví dụ về quy trình để đạt được một hàm tốt.

Giờ đây, tôi cũng sẽ giới thiệu ngắn gọn nội dung của cuốn sách Refactoring đang dần trở thành kinh điển, đề cập đến khái niệm lãng phí cần thiết từ góc độ kỹ thuật công nghiệp, và cuối cùng kết thúc bằng cách xem xét phương pháp đánh giá và cải thiện chất lượng code của bản thân và team.

Mục lục như sau.

  1. Những thành phần cấu thành nào cần được rút gọn?

  2. Tại sao phải rút gọn?

  3. Nên bắt đầu giảm từ thành phần nào?

    1. Quý

    2. Trạng thái

    3. Mã xử lý ngoại lệ

    4. Test case

  4. Độ sâu của call stack và kích thước hàm phù hợp

  5. Giảm thiểu các thành phần thông qua Bad smell của Refactoring

  6. Lãng phí cần thiết

  7. Nhìn lại chất lượng code của tôi

Khóa học này cũng đi kèm với nhiều ví dụ phong phú. Các ví dụ chủ yếu sử dụng ba ngôn ngữ: Python, TypeScript và Java, và sẽ rất thú vị khi xem chúng khác nhau như thế nào giữa các ngôn ngữ.

Số lượng thành phần cũng là vấn đề liên quan trực tiếp đến hiệu quả sử dụng AI. Các LLM lập trình đều có chính sách tính phí theo số lượng token, do đó khi số lượng thành phần giảm thì số lượng token cần sử dụng cho LLM cũng giảm theo và nhờ đó AI có thể làm việc hiệu quả hơn.

Làm thế nào để dễ dàng bảo trì các dự án quy mô lớn? Cách tốt nhất là giữ cho dự án của chúng ta ở quy mô nhỏ để không trở thành dự án quy mô lớn. Tôi đã làm việc ở các công ty có quy mô đa dạng từ doanh nghiệp lớn đến startup, và cũng đã thực hiện nhiều dự án tư vấn, outsourcing, tôi thường xuyên thấy các phần mềm cung cấp chức năng rất tương tự nhau nhưng quy mô code lại chênh lệch hơn 10 lần. Điều đó có nghĩa là có công ty đang làm cùng một việc nhưng tốn gấp 10 lần chi phí so với công ty khác. Tuy nhiên, nếu chỉ cố gắng giải quyết vấn đề bằng cách chia nhỏ mà không cố gắng giảm tổng lượng code, thì thường chỉ làm tăng thêm giao tiếp giữa các team mà năng suất không được cải thiện. Nếu nhạy cảm hơn với lượng code và số lượng thành phần cấu tạo, và cố gắng giảm thiểu chúng, sẽ có ngày bạn cảm thấy việc bảo trì dự án dài hạn trở nên dễ dàng.

Hãy cùng thành thạo phần giới thiệu về Simple Design và chuẩn bị tiến lên cấp độ cao hơn.


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

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

  • Một lập trình viên đang tham gia vào dự án ngày càng phát triển chậm lại

  • Người muốn làm code gọn gàng hơn nhưng không biết phải làm thế nào

  • Người đang tìm kiếm tiêu chuẩn khách quan hơn về chất lượng code

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

  • Nên xem trước bài 1, 2 của khóa Giới thiệu Simple Design.

  • Hiểu biết về refactoring, phát triển hướng kiểm thử (TDD) và lập trình cực hạn (Extreme Programming) sẽ rất hữu ích.

Xin chào
Đây là

2,165

Học viên

67

Đánh giá

1

Trả lời

4.8

Xếp hạng

4

Các khóa học

Tôi là một nhà phát triển có kinh nghiệm sâu rộng nhất tại Hàn Quốc. Tôi đã trải qua nhiều quy mô doanh nghiệp khác nhau, từ các startup do chính mình sáng lập, các startup quy mô nhỏ cho đến các tập đoàn lớn như Naver, Kakao và NCSoft. Tôi cũng sở hữu kỹ năng công nghệ đa dạng, bắt đầu từ HTML và CSS cho đến Frontend, Backend, lập trình hệ thống, điều khiển phần cứng và DevOps. Bên cạnh đó, tôi đã có kinh nghiệm trong nhiều lĩnh vực kinh doanh khác nhau như thương mại điện tử, kế toán thuế, ngành quảng cáo, công cụ năng suất và các dự án công cộng.

Ngoài ra, tôi từng đảm nhiệm vị trí CTO tại nhiều doanh nghiệp và nhận được sự ủng hộ mạnh mẽ từ các thành viên trong đội ngũ. Tôi cũng thường xuyên được tin tưởng giao phó vai trò "người giải quyết vấn đề", với những minh chứng thực tế trong việc tiếp nhận và vực dậy thành công nhiều dự án từng thất bại nhiều lần trước đó.

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

Tất cả

7 bài giảng ∙ (2giờ 36phút)

Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

3 đánh giá

5.0

3 đánh giá

  • dkstm95님의 프로필 이미지
    dkstm95

    Đánh giá 5

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Tôi đã hoàn thành toàn bộ khóa học từ video meetup cho đến bài 3 mà không bỏ sót bất kỳ phần nào, và tôi nghĩ đây là khóa học gần với thực tế nhất và có thể áp dụng ngay lập tức. Những điều mà tôi thường chỉ cảm nhận mơ hồ về kiến trúc hoặc chất lượng code, thầy đã diễn đạt bằng ngôn ngữ rõ ràng nên rất hữu ích. Tôi đang sử dụng nội dung khóa học này trong các file hướng dẫn AI agent như CLAUDE.md, và tôi cảm nhận được chất lượng code được viết ra cao hơn rất nhiều. Hy vọng sẽ được gặp lại thầy trong một khóa học tốt nào đó. Cảm ơn thầy vì khóa học tuyệt vời.

    • duagnldnjs4735님의 프로필 이미지
      duagnldnjs4735

      Đánh giá 2

      Đánh giá trung bình 5.0

      5

      43% đã tham gia

      • wnwls12164670님의 프로필 이미지
        wnwls12164670

        Đánh giá 6

        Đánh giá trung bình 5.0

        5

        100% đã tham gia

        470.240 ₫

        Khóa học khác của youngrok

        Hãy khám phá các khóa học khác của giảng viên!