NỘI DUNG BÀI VIẾT
Nhiều bạn hỏi tôi rằng “Tại sao Clean Code quan trọng mà anh cứ nhắc nó mãi vậy? Em chỉ mới đang học nhập môn lập trình thôi!!!”. Tôi mới cười và nhẹ nhàng đáp lại “Đọc cuốn sách này đi, rồi có ngày em sẽ hiểu thôi…”.
Còn bạn, bạn đã đọc cuốn sách “Clean Code” này chưa? Nếu bạn đã và đang đọc nó thì chỉ có 2 lý do căn bản nhất:
- Đầu tiên, bạn là một lập trình viên.
- Thứ hai, bạn muốn trở thành một lập trình viên giỏi hơn.
Tất nhiên rồi, tôi rất hoan nghênh việc các bạn muốn trở thành lập trình viên giỏi hơn mỗi ngày.
Mọi lập trình viên nên đọc cuốn sách Clean Code này ít nhất một lần trong cuộc đời
Khi độ phức tạp của phần mềm tăng lên, hiệu quả của các công cụ sẽ giảm và tiến gần đến con số 0. Khi hiệu quả giảm xuống, các nhà quản lý chỉ làm một việc mà họ có thể làm được. Đó là họ cho thêm nhiều người vào dự án với hy vọng tăng hiệu quả. Mọi người trong đội chịu áp lực rất lớn để tăng năng suất. Nhiều đến mức họ tiếp tục tạo ra sự lộn xộn về mã khiến hiệu quả gần bằng 0.
Clean Code là gì?
Clean Code (mã sạch) có nhiều định nghĩa và tôi đã biên soạn một vài định nghĩa trong số đó cho bạn:
- Grady Booch (Tác giả của cuốn Object Oriented Analysis and Design with Applications): Một đoạn mã sạch giống như một bài văn xuôi được viết tốt. Mã rõ ràng không bao giờ che giấu ý định của người thiết kế, nó chứa đầy những nội dung trừu tượng rõ ràng và có thể kiếm soát dễ dàng.
- Dave Thomas (Người sáng lập OTI Labs): Mã sạch có thể được đọc và cải tiến bởi các lập trình viên khác không phải người đã lập trình ra nó.
- Michael Feathers (Tác giả của cuốn Working Effectively with Legacy Code): Mã sạch dường như luôn được viết bởi một người coi trọng nó.
Ở đây, định nghĩa nào về Clean Code cũng hoàn toàn đúng, nhưng tuỳ vào ngữ cảnh, trường hợp mà họ đã đưa ra những nhận định khác nhau về Clean Code.
Xem thêm: Code Smell là gì? Tại sao mọi người lại sử dụng?
Tại sao Clean Code quan trọng?
Có nhiều lợi ích khi viết Clean Code, một số trong số đó là:
- DỄ HIỂU
- Bạn có thể hiểu những gì mã sẽ thực thi
- Bạn sẽ hiểu nó ngay cả khi bạn quay lại sau 6 tháng
- Những người khác sẽ hiểu mã của bạn dễ dàng hơn
- Dễ để mở rộng
- Dễ để kiểm thử
- … còn nhiều lắm, tất cả những ý nói tốt về mã
Tôi có thể làm gì để viết Clean Code?
Một số điều chính bạn có thể làm để viết mã sạch:
1. Đặt tên có ý nghĩa cho các biến, hàm và lớp:
Nếu bạn có một hàm lấy id từ phía khách hàng, hãy đặt tên nó là ‘GetCustomerById’ và đặt tên cho tham số là ‘id’.
2. Đừng biến các hàm và lớp thực hiện quá nhiều nhiệm vụ:
Bạn nên đặt mục tiêu chỉ làm một việc trong mỗi lớp và hàm của mình. Bằng cách này, việc bảo trì, kiểm thử và đọc hiểu sẽ dễ dàng hơn.
3. Cố gắng không phải viết comment trong hàm:
Nếu bạn nghĩ rằng bạn cần comment về hàm để giải thích cho người khác hiểu đoạn mã này sẽ làm gì, bạn hãy suy nghĩ về nó và cách viết sao cho hợp lý. Đơn giản nhất là sử dụng ý đầu tiên của tôi là đặt cho hàm một cái tên có ý nghĩa, ví dụ: SendEmailToCustomer().
4. Giảm sự lặp lại:
Bạn gặp phải một vấn đề đã từng gặp và bạn lựa chọn tìm ra nó và copy-paste. Khi sử dụng copy-paste, bạn sẽ không thể suy nghĩ để phát triển thêm, có thể đoạn mã kia chỉ là giống về mục đích nhưng đặt nó vào trong chương trình này, nó sẽ không thể hoạt động ổn định được. Lúc đó, sẽ là hàng tá vấn đề phải suy nghĩ… Nó sẽ ảnh hưởng về:
- Giảm khả năng đọc
- Làm cho mã của bạn phức tạp hơn
- Tăng xác suất tạo ra bug và chi phí fix bug
Xem thêm: Hướng dẫn cách đặt tên biến chuẩn
Nguyên lý Clean Code
Có một số nguyên lý xác định Clean Code, được xác định bởi các thế hệ đi trước trong thế giới phần mềm:
- Tập trung làm 1 việc
- Không được thừa
- Dễ dàng mở rộng bởi bất kỳ lập trình viên nào khác
- Phải có phụ thuộc tối thiểu
- Phải có kiểm thử đơn vị
- Phải có ý nghĩa
Video chia sẻ: Clean Code – Trở thành một lập trình viên tốt hơn
Bạn đã bao giờ:
- “Ủa, gì đây, đứa nào viết vậy???? ….. aaa ~~~ khó hiểu quá ~~~~~”
- Code chỗ này nhưng lại phát sinh bug ở chỗ kia?
- Càng code thì hệ thống càng chậm?
- Đọc mã nguồn của các hệ thống mã nguồn mở và không hiểu gì?
- Phải viết thêm nhiều câu chú thích trong code của mình?
- Cố gắng viết mã nguồn ngắn nhất có thể, bởi vì càng ngắn gọn càng tốt?
- …
Trong video này, mọi câu hỏi “kinh điển” của các bạn sẽ được giải đáp. Viết code là một công việc nghệ thuật của một người nghệ nhân. Ai biết Clean Code thì sẽ được người khác sùng bái.
Kết luận
Clean Code không chỉ được ứng dụng trong lập trình mà còn ở mọi vấn đề trong cuộc sống. Nếu bạn làm một việc và suy nghĩ về cách làm sao để “clean” nhất, chắc chắn bạn sẽ tạo ra sản phẩm tuyệt vời hoặc ít nhất là ai cũng có thể nhận ra được sự “clean” đó khi sử dụng chúng.
Suy cho cùng, Clean Code giống như 1 mindset mà mọi lập trình viên nên áp dụng. Dù bạn có ở mức chuyên gia hay mới chân ướt chân ráo bước vào thế giới lập trình, tư duy Clean Code cực kỳ quan trọng. Càng nắm vững nó, bạn sẽ càng tiến xa hơn so với những người không có hiểu biết về nó. Tin tôi đi, ít nhất lương của bạn sẽ x2 khi sử dụng được nó nhé!
Bạn đã hiểu “Tại sao Clean Code quan trọng?” chưa?
Cảm ơn bạn đã theo dõi bài viết!
Các bạn có thể tham khảo các bài viết hay về JavaScript tại đây.
Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.
TỔNG HỢP TÀI LIỆU HỌC LẬP TRÌNH CƠ BẢN CHO NGƯỜI MỚI BẮT ĐẦU
KHOÁ HỌC BOOTCAMP JAVA/JAVASCRIPT/PHP TRỞ THÀNH LẬP TRÌNH VIÊN TRONG 5-6 THÁNG