Monday, January 12, 2009

Java coding convention [2]

Trong bài đề cập về coding convention của Java (http://mediocre-ninja.blogspot.com/2008/11/java-coding-convention.html), hầu như các điểm đã nêu đều phù hợp với convention của Sun và bao quát gần hết các điểm đáng chú ý. Tuy nhiên thực tế cho thấy còn vài vấn đề thường gặp về coding style mà quy ước của Sun cũng chưa đề cập, hoặc ngay cả bộ sun-JDK cũng không nhất quán (inconsistent).

Chẳng hạn, một vấn đề về quy ước đặt tên (naming convention) khi đặt tên lớp (class name) hoặc tên phương thức (method name), theo Sun thì class sẽ capitalize theo PascalCase (UpperCamelCase), còn method thì theo camelCase (lowerCamelCase) :

Class names should be nouns, in mixed case with the first letter of each internal word capitalized.
Methods should be verbs, in mixed case with the first letter lowercase, with the first letter of each internal word capitalized.


nhưng trường hợp class/method có dùng các từ viết tắt (quen thuộc) như: HTTP, XML, URL,... thì sao? Liệu chúng ta nên viết hoa toàn bộ (all uppercase) cụm từ đó, hay là chuyển nó thành CamelCase ? Trong bộ JDK thì Sun có dùng cả 2 cách, trong đó cách thứ nhất chiếm số lượng nhiều hơn.

Theo tôi thì 2 chọn lựa trên mỗi cách đều có ưu và khuyết điểm :

+ Viết hoa toàn bộ cụm viết tắt: đang được Sun ủng hộ, các ưu nhược điểm: ...

+ Viết cụm đó thành dạng CamelCase : được cộng đồng Open Source (Apache, Spring, Hibernate, ... ) ủng hộ, có các ưu nhược điểm: ...


Vậy chúng ta nên chọn cách nào ?



Well, tôi ủng hộ cách thứ 2, tức là cách always use strict camelCase for naming method, bởi vì:

No comments: