Review sách: Clean Code: A Handbook of Agile Software Craftsmanship

Hôm nay bỗng dưng không có hứng viết bài về technical, thôi thì lôi đại cuốn này ra review vây. Mình đọc cuốn này trong thời gian còn làm việc ở FPT Software (Làm việc lúc nào cũng dư thời gian nên toàn lôi ebook ra đọc. Cuốn sách này xứng đáng là sách gối đầu giường của mọi developer. Mình khuyên các bạn nên mua bản gốc, 1 là để đọc, 2 là nếu gặp thằng nào code ngu, có thể cầm cuốn này đập vào đầu nó và bắt nó đọc.

bookreviews

Giới thiệu

Như cái tên “Clean Code”, đây là cuốn sách hướng dẫn các bạn developer viết ra “code sạch“. Thế nào là code sạch? Theo định nghĩa của sách, đó là code dễ đọc, dễ hiểu, dễ sửa chữa và bảo trì. Có bạn sẽ xì mũi bảo: Giời, có gì đâu, cái đấy ai code chả được. OK! Mời bạn thử xem lại suorce code của 1 project mình đã làm cách đây 3-6 tháng xem, có hiểu được mình viết gì ko? Nếu không tức la code của bạn chưa được sạch lắm đâu =))).

Đa số developer đều code “không được sạch” (cả mình ngày xưa vẫn thế), có nhiều nguyên nhân dẫn đến chuyện này. Từ nguyên nhân chủ quan như: nghĩ mình trình cao, không biết code, code đại … cho tới khách quan như: bị leader dí deadline, code cho xong, sau này rảnh optimize sau (“Sau này” đối với developer là “không bao giờ“). Đôi khi bạn vào 1 dự án cũ, thấy 1 đống bầy nhầy. Bạn sẽ phải vừa mò code vừa chửi tổ tông tám đời nhà cái thằng developer cũ vì nó code vừa ngu vừa khó hiểu. Đó là hậu quả của việc “code không sạch”.

legacy-code

Vì nãy giờ toàn khen nên cũng không muốn nhận xét gì nhiều, mình chỉ tóm tắt vài điều hay bạn có thể học được trong sách

Bài học rút ra

  • Tầm quan trọng của việc viết “code sạch”.
  • Cách đặt tên biến, tên hàm. Tên biến, tên hàm phải nói rõ tác dụng của hàm và biến. (Vâng, những thằng mình muốn chọi gạch là những thằng đặt tên biến int a, b, c hoặc đặt tên hàm tối nghĩa).
  • Độ dài của hàm, các parameter truyền vào. (1 hàm đừng nên dài quá 1 trang A4, cũng đừng nên có quá nhiều parameter. Thử đọc 1 hàm dài khoảng 800 dòng code các bạn sẽ biết cực chừng nào).
  • Tại sao không nên lạm dụng comment. Comment không phải xấu, nhưng nhiều người viết code không sạch, sau đó dùng comment để nói đoạn code đó làm gì. Sách khuyên ta nên viết code tự comment, tức là đoạn code đã trong sáng tới mức đọc là biết code làm gì, comment chỉ nên dùng để bổ sung những điều không giải thích được qua code (VD: đoạn code này để fix bug abc, dùng thuật toán này vì lý do bcd).
  •  Hướng dẫn cách viết và dùng unit test.
  • Giải quyết 1 số vấn đề liên quan tới concurrency.
  • Một số ví dụ cụ thể về việc refactor code (Phần này khá hay, biến code rởm thành code sạch thông qua các biện pháp refactor).
  • Một số dấu hiệu nhận biết code smell (Phần này cũng khá hay, bạn có thể đọc và dựa theo các dấu hiệu nay để tìm những đoạn “code rởm” trong project hiện tại =))).

Capture

Lời khuyên của mình: Ngay khi vừa ra trường hoặc đã code đc khoảng 2-3 tháng, bạn nên đọc cuốn này để tạo dựng những thói quen tốt cơ bản khi code. Sau khi code được khoảng 1-2 năm, hãy đọc lại 1 lần nữa để nghiệm lại những điều mình chưa hiểu lần đầu đọc. Hai câu nói mình tâm đắc nhất trong sách sau khi đọc:

  1. Code cho máy đọc thì ai cũng viết được, code cho người đọc thì chỉ có developer giỏi mới viết được.
  2. Hãy code như thể thằng developer bảo trì code của bạn là 1 thằng sát nhân bệnh hoạn biết địa chỉ nhà của bạn. (Hiện giờ nhiều developer code cho xong function rồi để đó. Cứ tưởng tượng thằng developer bảo trì code của bạn mà đọc những dòng code bạn viết …. sẽ làm gì bạn sau khi đọc code bạn viết. Mình là mình cũng từng muốn cầm dao lụi mấy thằng developer cũ của team nhiều lần lắm đấy).

 

 

25 thoughts on “Review sách: Clean Code: A Handbook of Agile Software Craftsmanship”

  1. Chào bạn, quyển này so với code complete 2, thì mình nên mua cuốn nào bạn. Hoặc là nếu nên mua cả 2 thì mình nên đọc cuốn nào trước. Mình đang dự định mua sách bản quyền trên amazon, giá khá cao nên đang cân nhắc, bạn có thể cho mình một lời khuyên được không ?

    Like

    1. Cá nhân mình khuyên bạn nên mua cuốn này thay vì Code Complete. Cuốn này dùng Java làm code mẫu, còn Code Complete dùng C và C++. Những lời khuyên trong cuốn này cũng thực tế và dễ áp dụng hơn Code Complete.

      Like

      1. Tiếng anh em yếu lắm thì làm sao để đọc mấy cái sách này anh ơi. Bt đọc trên web không biết từ nào quét cái còn biết nghĩa 😦

        Like

    2. Đây là loại sách gì?
      ● Nội dung của cuốn sách là gì?
      ● Sách được xuất bản lần đầu vào năm nào?

      Like

  2. Cho e xin địa chỉ đến nhà xin sách đi a, code của em giờ hết refactor được rồi :))

    Like

  3. Chào bạn hiện giờ mình muốn tìm địa chỉ để mua cuốn sách mak vẫn không tìm được, bạn có biết chỗ nào bán cuốn sách đó không. Cảm ơn

    Like

  4. Em đã mua ngay 2 cuốn Clean Code và CodeComplete 2 sau khi đọc xong bài của bác, không hiểu là do em làm bên Java hay sao mà đọc cuốn CleanCode thấy dễ hiểu hơn. Áp dụng các quy tắc trong CleanCode thì ban đầu tốn time hơn một chút, nhưng sau này cần bảo trì thì cảm thấy rất dễ dàng.
    Thanks bác nhá.

    Liked by 2 people

    1. Bác mua từ trang nào vậy. Chi phí ship về như thế nào. Tớ cũng đang tìm mua đây. Chứ đọc ebook thì vài bữa là quên luôn.

      Like

  5. Em là sinh viên năm 1 code chưa được nhiều,tiếng anh cũng yếu. Liệu in ra để đọc rồidịch từ từ từng câu có ổn không anh?

    Like

Leave a comment