Nếu đang là lập trình viên và muốn trở nên chuyên nghiệp hơn, bạn không nên bỏ qua bài viết này!
Robert Cecil Martin, hay còn được biết đến với cái tên quen thuộc hơn, đó chính là Uncle Bob, đã từng viết trong một quyển sách của mình rằng: "Bạn đang đọc bài viết này với hai lý do. Thứ nhất, bạn là lập trình viên. Thứ hai, bạn muốn trở thành một lập trình viên tốt hơn.". Có lẽ lời ông nói vô cùng đúng trong hoàn cảnh này đấy!
Clean Code là gì?
Trước tiên, hãy thử tưởng tượng, bạn đang ở trong thư viện và muốn tìm kiếm một quyển sách nào đó. Sẽ thật tuyệt vời nếu mọi thứ đã được sắp xếp và phân loại sẵn theo từng chủ đề có đúng không? Việc này sẽ giúp mọi người dễ dàng nhìn thấy thứ mình đang mong chờ. Bên cạnh đó, không gian xung quanh được thiết kế ấn tượng cũng khiến ta cảm thấy thoải mái hơn.
Viết Code cũng tương tự như vậy, để chúng trông tuyệt vời hơn, lập trình viên cần phải biết tổ chức sao cho thật gọn gàng, có trình tự. Khi đồng nghiệp đọc Code của bạn, nếu nó quá khó hiểu, họ sẽ vô cùng bực mình. Đương nhiên, điều này chẳng có gì tốt đẹp cả!
Nói tóm lại, Clean Code có thể được đọc và phát triển bởi Developer khác trong cùng team một cách rõ ràng, với sự dễ hiểu, dễ thay đổi, bảo trì và mở rộng. Bạn nên quan tâm đến Code của mình để làm cho nó "thanh lịch" và đơn giản hơn.
Clean Code có đặc điểm gì?
Source Code phải "thanh lịch". Hãy hình dung đến hai chữ "thanh lịch", nó phải sạch sẽ và khiến cho người đọc cảm thấy hứng thú, chứ không phải nổi giận đâu nhé! Điều này cũng giống với lúc bạn chăm chú đọc một bài văn hay vậy.
- Code phải có tâm điểm: Mỗi fucntion (chức năng), mỗi class (lớp), mỗi module chỉ thực hiện một mục đích duy nhất, không bị phân tán bởi các chi tiết xung quanh.
- Clean Code có sự trau chuốt: Người viết ra nó đã dành thời gian để giữ cho nó luôn được đơn giản và có trật tự nhất có thể.
- Chạy tốt trên tất cả các test case: Đôi khi function được tạo ra chỉ chạy tốt trên case bình thường, còn case "khó nhằn" thì lại xảy ra lỗi.
- Clean Code có khả năng tối ưu số lượng các class, method, function…
- Clean Code không chứa sự trùng lặp.