Thống nhất các tiêu chuẩn của Java Coding Conventions

Java Coding Conventions là kiến thức mà các nhà tuyển dụng thường không hỏi đến khi phỏng vấn, trong các dự án thường không thống nhất một Conding Conventions chung cho tất cả các developer, mà thường dựa vào thói quen hay kinh nghiệm có sẵn. Sau thời gian nghiên cứu các tài liệu của Sun hay Oracle, cũng như kinh nghiệm lập trình các dự án, tôi ghi lại ngắn gọn các tiêu chuẩn quốc tế từ tài liệu được đọc và kinh nghiệm đặt tên biến để source của bạn được người khác đọc vào dễ hiểu hơn và nhanh hơn.

Câu hỏi vui: Tại sao chúng ta phải nên theo tiêu chuẩn của Sun hay Oracle đề xuất?

Trả lời: Vì họ tạo ra Java.

Đặc điểm chung về cách đặt tên trong ngôn ngữ Java:

  • Các tên trong java được việt theo dạng camelCase(con lạc đà), từc là chữ đầu tiên của một từ là viết Hoa, ví du như: LuxuryCar, drivingCar(),…
  • Các level thụt đầu dòng luôn là 4 spaces, hạn chế dùng tab để thụt đầu dòng.
  • Các ký tự trong code đều cách nhau 1 space, ví dụ:

Sai convention:

class Student{}

getStudent(){}

Student student=new Student();

if(true){}

Đúng convention:

class Student {}

getStudent() {}

Student student = new Student();

if (true) {}

1. package:

Tên package thì bạn nên viết thường tất cả, nó là danh từ, và nên viết tắt nếu có thể

Phân chia các package cho các class có đặc điểm giống nhau, thường thì mọi project đều có các package kiểu như thế này:

net.mr4.java.enum: gom các enum vào package này

net.mr4.java.bean: gom các bean classes vào package này

net.mr4.java.service: gom các service classes vào package này

net.mr4.java.constant: gom các constant classes vào package này

net.mr4.java.util: gom các util classes vào package này

Trong tiếng anh, số nhiều sẽ thêm s phía sau, nhưng bạn không cần thêm s cho tên package, bạn có thể tham khảo các thư viện của Oracle java.util.*, java.lang.* họ cũng không thêm s cho tên package, trong nó gọn hơn, tất nhiên trong mỗi package thường có nhiều class bên trong.

2. LớpClass:

Tên class nên là 1 Danh từ, chữ cái đầu phải viết Hoa, phần phía sau theo kiểu camelCase

Ví dụ: BabyDog, PrimaryStudent, ActionFilm,…

3. interface:

  • Tên interface nên là 1 Tính từ hoặc là một Danh từ, chữ cái đầu phải viết Hoa, phần phía sau theo kiểu camelCase
  • Thường các interface có chữ I(i hoa) phía trước để phân biệt với class trùng tên.

Ví dụ:

Runnable

Eatable

IStudentDAO(class StudentDAO sẽ implement interface này)

4. Phương thức – Method:

  • Chữ cái đầu tiên của method nên là chữ in thường, phần phía sau theo kiểu camelCase
  • Tên method nên là cặp: động từ + danh từ, ví dụ: getBalance, doCalculation, setCustomerName,…
  • Nếu tên method của bạn viết rõ ràng, thì bạn không cần viết comment cho method đó. Ví dụ: getStudent(), findAddressWithValue(String value),…

5. Các biến – Variables:

Giống như các method, kiểu camelCase nên được sử dụng, chữ cái đầu tiên nên là một ký tự chữ, tên nên có ý nghĩa, rõ ràng, dễ hiểu cho người đọc.

Ví dụ:

Integer houseWidth;

String addressCustomer;

boolean isActive;

*Bạn chú ý kiểu boolean/Boolean bạn nên là isXXX hoặc hasXXX, vì nó sẽ chỉ có 2 kết quả true hoặc false, và null cho kiểu Boolean, ý nghĩa như là chỉ đúng hoặc sai, và có hoặc không.

Trường hợp bạn không biết đặt tên biến làm sao cho có ý nghĩa, thì tôi khuyên bạn làm cách đơn giản sau đối với các kiểu dữ liệu referent: bạn chỉ cần copy tên class, rồi đổi chữ cái đầu thành chữ thường.

Ví dụ: Student student;

TechnologyInformationClassEntity technologyInformationClassEntity;

Rất dễ dàng và dễ đọc cho developer khác đọc vào!

6. Constants:

  • Các Constants được tạo bằng cách đánh dấu static final. Chúng nên được đặt tên bằng chữ in hoa với dấu gạch dưới(_) phân cách các ký tự, như:

public static final String DA_NANG_POST_CODE = “55000”;

public static final int ZERO_NUMBER = 0;

  • Thêm private constructor(private Constants() {}) để không nơi nào có thể new object một class Constant.
  • Hay dùng kiểu dữ liệu nguyên thủy(int, double, float,…) để khai báo cho các số liệu, tiết kiệm bộ nhớ và chương trình có thể chạy nhanh hơn vì không cần phải unswap từ kiểu tham chiếu sang kiểu nguyên thủy khi Runtime.

7. Comments:

Nhận định chung: Nếu bạn đặt trên class, method, tên biến đã rõ ràng rồi thì bạn không cần phải viết comment để giải thích nữa như vậy sẽ tiết kiệm thời gian để viết và source không quá nhiều comment để phải đọc. Ví dụ những trường hợp như bên dưới:

class Student, getStudent(Integer id), Student student,..

Vì vậy để giảm bớt comment lặp lại, bạn nên đặt tên cho các thành phần nên rõ ràng, nhưng không quá dài dòng.

Một số trường hợp logic hay business phức tạp thì bạn vẫn nên viết comment để giải thích nếu bạn nhận định người khác đọc vào sẽ khó hiểu.

Trên đầu class, bạn nên comment author người tạo, mục đích sau này nếu có thắc mắc sẽ dễ dàng tìm người tạo ra nó để hỏi.

Phương thức set, get cũng không nên viết comment làm gì.

Tiêu chuẩn Coding Covention cho Java Bean mình viết chi tiết ở bài khác!

Related Posts
Kiểu dữ liệu Nguyên thủy(Primitive)

1. Tổng quan Trong ngôn ngữ lập trình Java có 2 kiểu dữ liệu chúng ta cần nắm và phân Read more

So sánh ArrayList và LinkedList

Giống nhau giữa ArrayList và LinkedList Cả hai lớp ArrayList và LinkedList đều được implements từ List Interface và duy trì thứ tự của Read more

Bộ nhớ Stack và Heap trong Java

Trong Java, quản lý bộ nhớ là một quá trình quan trọng. Nó được quản lý bởi Java một cách tự động. JVM chia Read more

Kiểu dữ liệu Tham chiếu(Reference)

Tổng quan Java cung cấp hai loại dữ liệu kiểu Nguyên thủy và kiểu dữ liệu Tham chiếu . Các kiểu dữ liệu Nguyên thủy được Read more

Hãy bình luận đầu tiên

Để lại một phản hồi