Tổng kết chương 1: Clean code
Những dòng code tệ hại xuất hiện khắp nơi. Khi nhìn lại dự án mình vừa hoàn thành, mình thấy đó là 1 đống rác, rác của mình viết, rác của người khác viết, rác của người khác viết mà mình sửa chữa,… Thật may, về cơ bản các chức năng của nó vẫn ok, đảm bảo yêu cầu của khách hàng, tuy nhiên mình không dám nghĩ tới páht triển thêm dựa trên những dòng code đó nữa. Biết là tệ hại, vậy vì sao chúng ta lại viết ra bad code?
-
mình cho rằng, yếu tố tác động lớn nhất là thời gian: đôi khi, bạn có deadline dí sát đít, và bạn phải thức trắng đêm để cố gắng hoàn thành. Bạn hoàn thành trễ, hoặc may mắn là vừa kịp, chỉ test xong đã là cả 1 điều kỳ diệu, thì làm sao để kịp sửa chữa nó đây? Cá nhân mình thấy, đây là lỗi của manager hơn là của bạn
-
vì bạn lười. Bạn khó mà bận tối mắt cả dự án được, sẽ có những khoảng thời gian bạn rảnh rỗi, nhưng bạn lại chẳng ngồi rèn luyện kỹ ănng, hay chỉnh sửa code.
-
vì bạn đã chán dự án tới tận cổ, và bạn chẳng thèm sửa nữa, chỉ mong nhanh nhanh chóng chóng cho xong.
-
dù sao mấy lý do trên cũng đỡ tệ hại hơn việc vì 1 số đoạn code quá mức tệ hại, tới mức bạn không thể nào sửa nổi nếu không thay đổi rất rất nhiều kết cấu chương trình. Đây chắc chắn là lý do tồi tệ nhất và cũng là lý do không được đón chờ nhất.
Chúng ta đều biết, bad code không tốt. Nhưng không tốt tới mức nào, liệu nó có ảnh hưởng tới đâu lại là 1 câu hỏi khó trả lời. Tác giả cho rằng, thời gian dùng để đọc code so với thời gian dùng để viết code là 10 : 1. Chúng ta cần đọc, suy nghĩ rất nhiều trước khi viết code. Để giảm thiểu thời gian, chúng ta nên giảm thiểu thời gian đọc chứ không cần phải viết code vội vàng, vội vàng viết ra những dòng code tệ hại thuần tuý là tham bát bỏ mâm mà thôi.
Vậy, thế nào là code sạch?
Khi nhìn 1 bức tranh, bạn sẽ tự cảm nhận được nó đẹp hay không. Khi quan sát nhiều hơn, bạn sẽ tự phân biệt được xấu đẹp (không tính tới hội hoạ hiện đại nha :)) ), nhưng việc vẽ ra những bức tranh đẹp lại khó hơn rất nhiều. Viết code cũng vậy, cảm nhận code sạch thì không khó, nhưng viết ra code sạch lại khó. Dù sao chúng ta cũng cần có những khái niệm, dù mơ hồ về việc thế nào là code sạch.
Sau khi tổng hợp ý kiến của 1 số chuyên gia, chúng ta có thể rút ra vài đặc điểm của code sạch như sau:
- phải có logic rõ ràng.
- phải đat performance tốt, tốt nhất là gần với mức tối đa (so với thuật toán).
- người khác có thể đọc, cải tiến, bảo trì được dễ dàng.
- chạy tốt các test.
- không có các phần trùng lặp về chức năng
- nội dung code giống với những gì bạn dự kiến (câu này có thể hơi khó hiểu, trong chương 3 function sẽ được nói kỹ hơn)
- giảm bớt số lượng tất cả: class, function, variable,…
Ok, vậy là đã đi qua chương 1. Lâu rồi mình không viết kiểu này nên viết cũng hơi chậm, ngày mai mình sẽ viết về chương 2: Meaningful Names. Từ chương 2 trở đi, sẽ thiên về các kỹ thuật, có ví dụ đi kèm, nên đọc chắc sẽ hữu ích và thú vị hơn.