Clear Code & Practices to Name Variables, Methods, Classes and Packages

**Clear Code & Practices to Name Variables, Methods, Classes and Packages **

Do quá trình làm việc teamwork và với khách hàng, việc các đoạn code sạch , dễ dàng cho các programmers đọc và hiểu nó là điều quan trọng. Dưới đấy là một số cách giúp cho code của bạn sạch sẽ và dễ hiểu hơn. Bài viết dưới góc độ của 1 Java developer .

  1. Tránh những tên vô nghĩa. (Pointless Names) Pointless Names hay tên biên như là abc, temp, dt etc..không bộc lộ được ý nghĩa của các biến . Khiến cho đoạn code của bạn trở nên khó hiểu. Chúng chỉ thích hợp cho các chương trình demo ngắn , các đoạn test và có số lượng code nhỏ hơn 50 dòng. Bạn không nên sử dụng các tên biên vô nghĩa trong một dự án thực tế. Why? Bởi vì một dự án thực tế không chỉ phát triển và mantained trong một năm mà nó được duy trì .. Và rất nhiều dev cùng phát triển trên dự án .
  2. Đưa ra tên có ý nghĩa Khi bạn đã có ý niệm tại sao chúng ta không nên sử dụng những tên vô nghĩa chúng ta sẽ đến với các đặt tên hiệu quả. Khi các biến các hàm được đặt ý nghĩa, nó sẽ thể hiện chính xác chức năng của chúng. Ex MEthod với tên getPayDate() sẽ tốt hơn nhiều so với gpd() hoặc getPD() bởi vì khi tôi đọc getPayDate() ở bất kì đâu trong code tôi có thể biết được medhod này sẽ trả lại cho tôi pay date (thậm trí sau nhiều năm) nhưng nó không thể với gpd() hoặc getPD(). Một số lập trình viên lại cho rầng khi họ thiết kế các private method , nó chỉ có thể truy cập trong class và không ai có thể thấy nó và họ không cần sử dụng các biến có nghĩa. Tuy nhiên sau một khoảng thời gian dài không làm việc trên project và khi bạn quay lại với nó . Chắc hẳn bạn sẽ tốn rất nhiều thời gian để đọc lại nó. Nhất là với các class có nhiều hơn 400 dòng.
  3. Nên sử dụng các tên ngắn hơn là các tên dài nếu nó diễn đạt đủ ý nghĩa. Việc sử dụng các tên ngắn cho các method là tuyetj vời, lý do duy nhất nếu nó diễn đạt được ý nghĩa của method. Ex giữa getPaydate() và retreivePaymentDate() , cả 2 đều thể hiện ý nghĩa , nhưng đối với getPayDate ta có thể dễ dàng đọc và viết method. Nhưng đừng quên luôn phải theo quy tắc của Java convertion.
  4. Tranh tên giống nhau Không gì tệ hơn là sử dụng các tên giống nhau, ví dụ có hai biến employee và employees , chúng gần như nhau chỉ khác nhau kí tự cuối. Rất khó để phân biệt chúng và nó sẽ ẩn chứa tiềm tàng bug. Nếu bạn sử dụng nó để đặt cho một mảng , bạn nên đặt là listOfEmployess or bunchOfEmoloyees.
  5. Sử dụng tên mô tả hơn là tên ngắn Như chúng ta đã đã lập luận từ trước về một số các đặt tên tốt nhât , tuy thế đối với các trường hợp method thực hiện nhiều công việc ta nên tách riêng chúng ra hơn là sử dụng 1 tên cho tất cả. Ex: loadAndUpdateAllInstrumentRecords() ->loadInstruments() and updateInstruments().
  6. Tuân theo Java coding convention. Nếu bạn đang làm việc với ngôn ngữ Java, bạn cần phải tuần theo Java coding convention. Nó càng quan trọng nếu bạn đang viết open source. Nó được thống nhất giữa các các nhà phát triển Java. Một trong các điểm chính của nó là :
  • Tên bắt đầu của class là 1 ký tự viết hoa ex: Employee,Student.Thread.
  • Tên của phương thức bắt đầu là 1 kí tự viết thường tuân theo cú pháp lạc đà. (canel) ex: getEmployee(),getPayDate().
  • Sử dụng cú pháp lạc đà trong đặt tên biên : price,quantity
  • Sử dụng viết hoa toàn bộ cho hàng số
  1. Tránh sử dụng các từ đồng nghĩa Một lưu ý khác cho việc đặt tên tốt hơn đấy là tránh sử dụng các từ đồng nghĩa. Chương trình của bạn sẽ tốt hơn nếu bạn có sử thống nhất giữa các tên biến. Ex: destroy(),kill(),finish().. thay vì dùng chúng ta có thể sử dụng destroy() cho toàn bộ các method. Mps sẽ khiên cho api thêm hữu dụng và programemer sẽ hoàn hảo , dễ tìm kiếm. Nó cũng giúp bạn giữ các method tại 1 vị trí và không bị duplication code. Trong khi code luôn phải nhớ DRY(don’t repeat yourseft).
  2. Tuân theo classical programming Convention. Ngay từ đầu tiên, khi nêu ra các đặt tên tốt nhất tôi đã lưu ý với các bạn tránh sử dụng các tên vô nghĩa, nhưng đây là 1 ngoại lệ. i , j được sử dụng để đếm số lặp trong vòng lặp(for) Ex: for(int i=0;i<10;i++){ //your code } Programmer quen thuộc với nó, họ có thể thấy ngạc nhiên khi bạn sử dụng 1 tên khác cho vòng lặp . Tương tự với getter và setter…
  3. Trong Java, tên class thường là 1 danh từ. Tên class của bạn sẽ là danh từ và được đặt cho cái mà class đại diện Ex: Employee,Thread… Về thông thường thì method sẽ bắt đầu với 1 verb ex set get … Interface name nên đặt diễn tả có thể làm gì. Package name thường đặt theo cấu trúc của company. Ex org.ccompany.project.module. (bạn có thể follow cách đặt tên theo các lib được cung cấp bơi apache)
  4. Tránh các kí tự như _ , .m… Một số programmers có su hướng đặt tên với các kí tự đặc biệt như dấu ., _ … để phân biệt biến và local biến. Bạn không nên làm thế bởi vì nó nhìn thật khó hiểu. thay vì đó để làm chương trình của bạn tốt hơn, nên sử dụng các tên có ý nghĩa và duy nhất. Theo cách này. Nêu dự án của bạn đang sử dụng các kí tự đã nếu trên, tốt nhất bạn nên refactor lại chúng. Bởi vì dự án của bạn sẽ khó có thể kiểm tra hoặc chính xác. Và nó càng xấu hơn nếu có thêm các convention tại các phần khác của dự án. Nhiều programmer sử dụng Hungarian notation e.x Exit for Boolean variable, iMax for integer variables. Cái này cũng không tồi nếu bạn kế thừa code. Nhưng nếu bạn bắt đầu từ đầu thì không nên sử dụng chúng
  5. Tránh sử dụng các kí tự không có trong bảng mã AscII Khi sử dụng bất kì kí tự nào ngoài bảng ASCII , nhất là không phải English thì đó thật dở. Không bao giờ nên sử dụng các kí tự từ other languages, bản thân nó không được hỗ trợ trên tất cả các platform, IDE và cấc máy khác. Thông thường , đừng sử dụng local langeages. Ex: Japan, French … English là ngôn ngữ quốc tế cho chương trình , nó không đản bảo có nhưng người tiếp nhận công việc của bạn và maintain chúng, có thể hiểu các ngôn ngữ đấy. Tốt nhất leave it 
  6. Sử dụng tốt các từ phổ biến như is has can … Tôi có thể tìm thấy tên biến và method với is , has, can .. và có thể improves code. Các nethod như isAlive(), hasNext(),canExecute() nó dễ dang hiểu và sử dụng chúng

Trên đây là tất cả những quy tắc đặt tên tốt nhất bạn luôn phải ghi nhớ khi coding. Việc sử dụng chúng không chỉ trong code , bạn nên nhớ và áp dụng vào cả các công việc khác như viết các thủ tục SQL stored procedures .. Việc viết code và sử dụng nó cần được luyên tập trong thời gian dài. Hay luôn có gắng đọc lại đoạn code của bạn viết và giúp nó tốt hơn. Good lunck.

Tham khảo: Clean-Code-Handbook-Software-Craftsmanship
Clean-Code-V2.2 </br> 10-java-best-practices-to-name-variables-methods-classes-packages.html