Thứ Năm, 22 tháng 2, 2018

Làm sao để viết code sạch đẹp

Bất cứ khi nào tôi làm code review, tâm trí tôi sẽ luôn phát ra ba cảm xúc khác biệt:
  • Cái quái gì thế? (chán nản) – Code này có cần thiết đâu!
  • Cái quái gì thế? (ngưỡng mộ) – thằng viết dòng code này hay thật!
  • Cái quái gì thế? (bực bội) – nó viết cái gì thế này?
Vậy chúng ta muốn thấy điều gì khi làm code review là gì?

CODE SẠCH ĐẸP.

code sạch đẹp thể hiện một developer tài năng. Tất nhiên, bất cứ một lập trình viên nào cũng mong muốn đạt được những mục tiêu phái trên. Để đạt được mục tiêu phía trên  bạn cần có 2 yếu tố : kiến thức và kinh nghiệm làm việc.
Kiến thức cung cấp cho bạn nền tảng vững chắc về các mô hình, nguyên tắc và phương pháp. Tuy nhiên, để sử dụng những kiến thức này mọt cách hiệu quả đòi hỏi  bạn phải có ựu luyện tập và thực hành chăm chỉ.
Vì vậy, học cách viết code sạch sẽ là công việc khó khăn rất khó khăn. Bạn phải đổ mồ hôi vì nó. Bạn phải thực hành, vấp ngã, thất bại và làm chủ, sau đó lặp đi lặp lại các bước trên cho đến khi bạn làm đúng. Sẽ không có cách thức dễ dàng hay đường tắt. Mọi thứ đều đến từ sự cố gắng của chính bạn.
Và sau đây là một số cách mà bạn có thể học để viết code sạch và đẹp.

“Mọi thứ đều bắt đầu từ một cái tên”

" Cái tên bắt đầu tất cả"


Tên ở khắp mọi nơi trong phần mềm. Chúng ta đặt tên cho các functions, classes, arguments, packages và nhiều thứ khác nữa. Ta cũng đặt tên cho source files và các thư mục cũng như tất cả mọi thứ trong đó. Do vậy, việc đặt tên được coi là một vấn đề quan trọng nhất trong quá trình giữ cho code sạch.
Tên bạn đặt nên có ý nghĩa và mục đích rõ ràng. Chọn tên đẹp mất nhiều thời gian nhưng tiết kiệm được nhiều thời gian hơn cho sau này. Vì vậy, hãy chăm sóc tên của bạn và có thể thay đổi chúng khi bạn tìm thấy tên tốt hơn. Mọi người đọc code của bạn sẽ rất biết ơn vì điều đó.
Bạn cần phải luôn ghi nhớ rằng tên của bất kỳ variable, function hoặc class nào cũng có thể trả lời được ba câu hỏi lớn là: lí do nó tồn tại, nó hoạt động ra sao và nó được sử dụng như thế nào.
Điều này không chỉ đòi hỏi kỹ năng mô tả tốt mà còn là nền tảng văn hoá chia sẻ vượt qua ranh giới và không ai có thể dạy cho bạn điều này tốt hơn bản thân bạn.

“Function chỉ nên có một chức năng thôi”

Mỗi hệ thống được xây dựng từ một ngôn ngữ cụ thể theo miền được thiết kế để mô tả nó một cách thích hợp. Function là các động từ của ngôn ngữ đó và class là những danh từ. Function thường là dòng đầu tiên trong bất kỳ ngôn ngữ lập trình và nếu bạn viết nó tốt thì code của bạn cũng sẽ tốt theo.
Chỉ có hai quy tắc vàng để viết các function sạch đẹp:
  • Chúng nên nhỏ gọn
  • Chúng chỉ nên tập trung duy nhất vào một việc/chức năng.
Các function nên  được hạ chế độ tối đa độ dài. Do đó, mức thụt lề của một hàm không được lớn hơn một hoặc hai. Việc sưa đổi kỹ thuật kĩ lưỡng như vậy sẽ giúp cho việc đọc , hiểu và tiêu hóa chúng dễ dàng hơn.
Các lập trình viên kinh nghiệm nghĩ về các chức năng như những câu chuyện được kể chứ không phải là code được viết ra.
Họ sử dụng các tool của ngôn ngữ lập trình được lựa chọn của họ để xây dựng một khối code phong phú hơn, biểu cảm hơn và “sạch” hơn.

Comment ​​không phải là lí do để viết code xấu

Comment giống như một con dao hai lưỡi. Một comment tốt sẽ đem lại rất nhiều lợi ích , tuy nhiên, sẽ có những comment phù phiếm, vô dụng và có thể ảnh hưởng tới  Không có gì có thể hữu ích hơn một comment mang tích cực có tính xây dựng, đóng góp. Mặt khác, không có gì có thể lộn xộn hơn những comment phù phiếm, vô dụng và tiêu tốn không gian. Nhưng tồi tệ nhất là những comment lan truyền những thông tin sai lạc và dối trá.
Vì vậy, comment có thể xem như là một tội ác. Tại sao? Bởi hầu hết thời gian, các comment càng cũ, sẽ càng khó khăn để duy trì chúng bởi hầu hết các lập trình viên thường chả quan tâm tới chúng bằng code của họ.
Code luôn phát triển và tiến hóa. Comment thì ​​không và sẽ trở thành vấn đề cho sau này!
Luôn luôn nhớ rằng code sạch với vài dòng comment sẽ luôn tuyệt hơn là code xấu và một đống comment không cần thiết. Đừng phí thời gian viết comment giải thích đống code tởm lợm. Thay vào đó hãy xử lí vấn đề từ tận gốc rễ: viết code thật sạch.

“Code formatting là ưu tiên hàng đầu”

Có lẽ điều này tuyên bố trên không thể được hiểu và là một trong những đặc điểm quan trọng nhất của một nhà phát triển thực sự tuyệt vời.
Chúng ta luôn mong muốn những dòng code của mình gây ấn tượng được với mọi người bởi trật tựu, chi tiết và sự so sánh rõ ràng trong tư tưởng.Tuy nhiên, đó sẽ thực sự là một thảm họa nếu họ thấy một khối code không rõ đâu là nơi bắt đầu và kết thúc, vô cùng xáo trộn. 
Chức năng mà bạn tạo ra ngày hôm nay sẽ bị thay đổi trong phiên bản tiếp theo nhưng sự sạch sẽ trong code của bạn sẽ không bao giờ thay đổi.
coding style và tính dễ đọc sẽ tiếp tục ảnh hưởng đến khả năng bảo trì của code lâu dài.

Hãy sử dụng lệnh “try-catch-finally”

Các lập trình viên đều phải trải qua thực hiện quá trình Error handling. Bởi trong một số trường hợp các giá trị và kết quả dù không chính xác nhưng vẫn được nó ghi nhận là đã "đúng". 
Tuy vậy, vấn đề không nằm ở Error handling mà là cách thực hiện nó thật “sạch”.
Và việc sử dụng các khối try-catch được coi là một trong những cách để giải uyết vấn đề trên. Khi bạn execute code trong phần try của câu lệnh try-catch-finally, điều đó cũng có nghĩa là execution có thể hủy bất cứ khi nào và bắt đầu lại tại catch.
Do đó, Lệnh try-catch -finally được khuyến khích sử dụng khi các bạn viết mã.
Luôn luôn nhớ rằng mỗi ngoại lệ bạn đưa ra phải chứa đủ ngữ cảnh để xác định nguồn và vị trí của lỗi. Các thông báo lỗi thông tin sáng tạo sẽ được nhớ lâu hơn ngay cả khi bạn đã đã rời công ty.

Mang tất cả lại với nhau

Theo Robert Martin, “viết code sạch đòi hỏi việc sử dụng rất nhiều kỹ thuật được áp dụng thông qua một cảm giác về” sạch sẽ ” trong code. Do đó nó còn được gọi là giác quan code “
Một số chúng ta được sinh ra với nó và một số phải bỏ rất nhiều công sức để nhận được nó thông qua thực hành, kiên trì và nhẫn nại. Giác quan code này không chỉ giúp chúng ta phân biệt giữa code tốt và code xấu mà nó cũng giúp chúng ta trong việc hình thành các phương pháp để biến code xấu thành code tốt.
Giác quan code giúp lập trình để lựa chọn các variation và công cụ tốt nhất để tạo ra code đẹp và sạch.
Nói cách khác, Developer với giác quan code sẽ như một họa sĩ với khả năng biến màng hình màu đen thành một kiệt tác sẽ trường tồn với thời gian.



EmoticonEmoticon