Học cách viết code sạch đẹp

5987

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.

Và code sạch đẹp thể hiện một developer tài năng

Có 2 con đường để đạt được những điều trên – Kiến thức và kinh nghiệm làm việc. Kiến thức dạy cho bạn các mô hình, nguyên tắc, phương pháp. Nhưng kiến ​​thức này cần phải được nghiền ngẫm và thấm vào bạn bằng cách luyện tập và làm việc 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”

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 đó việc đặt tên cũng trở thành một trong những chướng ngại quan trọng nhất trong việc 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à 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 đó.

Luôn luôn 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à: tại sạo 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.

Nói cách khác, hãy hạn chế tối đa việc làm các function 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. Kỹ thuật này làm 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. Không có gì có thể hữu ích hơn một comment tốt. 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ự GREAT.

Chúng ta muốn mọi người phải ấn tượng bởi trật tự, chi tiết và sự rõ ràng trong tư tưởng. Nhưng trong khi nhìn vào code, nếu họ thấy một khối code không rõ đâu là bắt đầu và kết thúc, vô cùng xáo trộn thì đó đúng là một thảm họa.

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”

Error handling là quá trình mà các lập trình viên đều phải làm qua. Bởi các giá trị và kết quả có thể không chính xác dù nó vẫn cho rằng 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à một trong những cách để làm điều này là bằng cách dùng các khối try-catch. 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.

Vì lý do này, tôi khuyến sử dụng lệnh try-catch-finally khi 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.

Nó chỉ cho chúng ta thấy rõ ràng rằng, chỉ đơn giản là nướng một chiếc bánh thì sẽ không giúp ích gì nếu bạn dùng phân chó để trang trí lên nó.

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.

Techtalk via Medium

CHIA SẺ