Bài đăng nổi bật


Giới thiệu
Coding convention là thuật ngữ mà có lẽ bất kì một lập trình viên nào cũng từng nghe nói tới. Dù trên thực tế, việc có tuân thủ theo coding convention hay không hầu như không ảnh hưởng đến kết quả công việc. Hàm vẫn chạy, code vẫn thực thi đúng, và sản phẩm sẽ chẳng có gì khác biệt.
Tuy nhiên, với các hệ thống lớn, được thiết kế và bảo trì qua nhiều giai đoạn, với nguồn nhân lực khác nhau, thì việc tuân theo một coding convention thực sự là vấn đề sống còn. Người đọc code chắc chắn sẽ hạnh phúc và tiết kiệm thời gian hơn rất nhiều, khi đọc một đoạn code với các biến được đặt tên rõ ràng như userName, job, ... thay vì a, b, c.
Trong phần này sẽ giúp chúng ta hiểu được các điều phải tuân thủ khi lập trình, để tạo sự thống nhất giữa các nhóm khi làm việc với nhau, cũng như tạo điều kiện thuận lợi cho người đi sau trong việc bảo trì, phát triển hệ thống.
Quy định về code
Qui định chung về đặt tên
Mọi định danh (tên biến, hằng, phương thức, lớp, đối tượng v.v.) nên bằng tiếng anh, đúng chính tả, và có nghĩa.
Tên ở đây bao gồm tên class, tên biến, tên hằng số, tên hàm, tên file.
  • Viết tên bằng tiếng anh trong lúc lập trình, gần như là yêu cầu bắt buộc khi bước vào làm ở bất kì công ty nào. Hãy tập cho mình một thói quen chuyên nghiệp, từ những việc nhỏ nhất.
  • Đúng chính tả, có thể xem đây là một cách để mọi người luyện thêm vốn từ vựng của mình.
  • Có nghĩa, tức là tên phải gắn liền với đặc điểm, chức năng của đối tượng tương ứng. Ví dụ: $userName để thể hiện tên người dùng, $image để thể hiện ảnh đại diện...
Lưu ý: Các biến chạy trong vòng lặp (for, while) không cần tuân theo quy tắc này, vì trên thực tế, các biến $i, $j đã trở thành chuẩn.
Qui định về Naming convention
Khai báo
Quy định
Ví dụ
Tên lớp
Tên class sẽ theo dạng UpperCamelCase, viết hoa chữ đầu tiên của mỗi từ.
class Raster;
class ImageSprite;
Tên phương thức/hàm
Tên hàm/phương thức sẽ theo chuẩn lowerCamelCase, từ đầu tiên viết thường, các từ tiếp sau viết hoa chữ cái đầu.
run();
runFast();
getBackground();
Tên biến
Tương tự như tên hàm.
int i;
int currentUserLog;
float myWidth;
Tên hằng
Viết hoa tất cả kí tự, các từ cách nhau bằng
dấu “_”
final static int MAX_PARTICIPANTS = 10;
Chú thích khi code
Giới thiệu
Nếu có ai hỏi bạn, tại sao tất cả ngôn ngữ lập trình, đều có kí tự để “comment” một dòng, hoặc một đoạn code (ví dụ trong Java hay C++ là // /* */). Có lẽ câu trả lời đầu tiên của không ít người là để tạm thời xóa bỏ đi đoạn code không muốn sử dụng.
Nhưng đó chỉ là một phần của vấn đề, trên thực tế, ý nghĩa quan trọng hơn rất nhiều của các kí tự này là để giải thích, ghi chú, hay nói chung là document cho code. Hãy thử tượng tượng bạn sẽ khó chịu thế nào, khi sử dụng một hàm nào đó của Java mà lại không có bất kì lời giải thích nào khi rê chuột vào tên hàm!
Vì thế, hãy tập cách document đầy đủ cho bất kì sản phẩm nào của mình khi code, vì có thể, bạn đã giúp ích rất nhiều cho người đi sau.
Sau đây là một số qui tắc mà chúng ta sẽ thống nhất khi code trong hệ thống.
Các qui tắc
a) Qui tắc chung
Document nên viết bằng tiếng anh, đúng chính tả và càng rõ ràng càng tốt.
b) Với class và hàm
Document theo chuẩn, với mọi lớp và hàm.
Document với Lớp
Ví dụ: Bạn cần viết một lớp HelloWorl
/**
 * The HelloWorld program implements an application that 
 * simply displays "Hello World!" to the standard output. 
 * @author Codelean 
 * @version 1.0
 * @since 2019-11-06  
 */
 public class HelloWorld {
     public static void main(String[] args) {
        // Prints Hello, World! on standard output.        
        System.out.println("Hello World!");
     }
 }
Dòng đầu tiên chính là lời giải thích cho class, hãy giải thích càng rõ càng tốt, bằng tiếng anh, và... đúng chính tả.
Các dòng phía sau là các thông tin khác của class, tối thiểu các bạn hãy để tên tác giả theo mẫu trên.
Document với phương thức/hàm
Các hàm trong class cũng được thể hiện một cách tương tự, ngoại trừ có phần giải thích thêm cho các thông số truyền vào.
Bạn hãy đọc hàm sau đây và cảm nhận sẽ dễ hiểu như thế nào:

/** 
 * This method is used to add two integers. This is 
 * a the simplest form of a class method, just to 
 * show the usage of various javadoc Tags. 
 * @param firstNumber This is the first paramter to addNum method 
 * @param secondNumber This is the second parameter to addNum method 
 * @return int This returns sum of firstNumber and secondNumber. 
 */
public int addNum(int firstNumber,int secondNumber){
    return firstNumber+secondNumber;
c) Với biến và hằng
Document chức năng của mọi biến, hằng trước khi khai báo
Đây là điều rất cần thiết, nhất là với người đọc code. Ví dụ, chúng ta cần khai báo các thuộc tính tên, tuổi và nghề nghiệp cho class user, đồng thời khai báo một hằng tên công ty. Chúng ta sẽ thực hiện như sau:
//Company name, same for all user.
const WEBSITE_NAME = "codeLean.vn";
//User’s name
private String userName;
//User’s age
private int age;
d) Với các dòng code
Ghi chú càng rõ ràng, dễ hiểu càng tốt cho các dòng code
Các dòng xử lí lặp, rẽ nhánh, giải quyết vấn đề... đều phải được giải thích rõ ràng. Hãy xem phiên bản hàm add được trình bày ở trên, với các lời giải thích rõ ràng:
public int addNum(int firstNumber,int secondNumber){
    // If the first parameter is 0, return 0.    
    if(firstNumber==0){
        return 0;
    }else{
        // If the second parameter is 0, return 1.        
        if(secondNumber==0
           return 1;
        else            
           return firstNumber+secondNumber;
    }
}
FORMAT CODE
Ở khía cạnh nào đó, thì một file mã nguồn cũng là một văn bản thuần túy, và hiển nhiên, vẫn có những cách format mà chúng ta phải tuân thủ. Một trong những qui tắc có thể kể ra như sau:
  • Vị trí hai kí tự mở hàm ({) và kết thúc hàm (}) tương ứng.
  • Giữa biến và phép toán phải có một khoảng chắn (Ví dụ: a == b thay vì a==b).
  • Chữ cái đầu tiên của câu comment cách kí tự comment một khoảng chắn.
Tất nhiên, còn khá nhiều qui tắc nhỏ nhặt khác, và chắc chắn sẽ rất kinh khủng và mất thời gian nếu mỗi người lập trình viên phải tuân theo các qui tắc này.
Tuy nhiên, bạn không cần phải nhớ, và cũng không cần phải làm, vì các IDE sẽ làm giúp bạn.
Chúng ta có qui tắc cuối cùng:
Sau khi code xong và thực hiện tất cả các qui tắc trên, format code bằng IDE
Cách format code sẽ khác nhau tùy vào IDE, ví dụ, trên các IDE có nhân Eclipse sẽ là Ctrl + Shift + F, trên Netbeans là Alt + Shift + F.

Post a Comment

Mới hơn Cũ hơn