- Viết hàm ngắn gọn
Cố gắng viết method ngắn và tập trung, điều đó giúp giảm thiểu việc sử dụng lại các đoạn code nhiều lần không cần thiết.
- Giữ cho dòng code ngắn
Cố gắng viết mỗi dòng code ngắn lại trừ trường hợp nhập text hoặc url hoặc những dòng lệnh bắt buộc phải cùng trên 1 dòng
- Các classes bắt đầu với chữ viết HOA
public class SomeClass {}- Hằng số tất cả phải viết HOA
public static final String GOOGLE_HOME_URL = "http://www.google.com";- Tất cả các thành phần khác đều bắt đầu bằng chữ cái viết thường
Biến toàn cục, biến cục bộ, tham số hàm, package name, hàm...
- Sử dụng 1 chữ cái viết hoa cho từ viết tắt, không viết hoa tất cả
Yes
private void getUrl(){}No
private void getURL(){}- Sử dụng JavaDoc khi mới bắt đầu
Đừng chờ đợi đến khi hoàn thành mà hãy viết ngay khi bắt đầu class hoặc một hàm.
- Sử dụng document khắp nơi trong dự án
/**
* GET [/api/v1/student] Get student from service
*
* @param context application Context
* @param listener callBack listener
*/;
public static void getStudent(@NonNull Context context,
@NonNull final ApiClient.OnResponseListener<Student> listener) {}-
Sử dụng document ở những nơi dùng public biến, hàm, biến toàn cục.
-
Giới hạn phạm vi của biến nhỏ nhất có thể
Các biến cần được khai báo trong khối sâu nhất có thể. Ví dụ: một biến chỉ dùng trong điều kiện thì nên khai báo nó trong khối điều kiện.
if (...) {
double d = someCalculation(…);
doSomethingWith(d);
} else {
// No use of d
}-No
double d = 0;
if (…){…}else{…}- Luôn dùng ngoặc nhọn cho khối điều kiện if ngay cả khi chỉ có một dòng lệnh
-Yes
if (…) {
doSomething();
}-No
if (…)
doSomething();-Nếu trường hợp quá đặc biệt nếu muốn sử dụng thì tất cả phải đặt trên một dòng(Không khuyến khích điều này)
if (…) doSomething();- Sử dụng //TODO cho những nơi cần sửa đổi, bổ sung sau này
Ví dụ:
//TODO Remove after api finishTrong android studio có thể mở lên cửa sổ danh sách các todo chưa làm, thói quen này giúp cho lập trình viên không bỏ sót các chức năng chưa hoàn thành.
- Sử dụng dấu mở ngoặc nhọn { trên cùng dòng mệnh đề, không nằm riêng một dòng
-Yes
public void foo() {
if (...) {
doSomething();
}
}-No
public void foo()
{
if (...)
{
doSomething();
}
}- Sử dụng 4 khoảng trắng cho bắt đầu một khối code
-Yes
public void foo() {
if (...) {
doSomething();
}
}-No
public void foo() {
if (...) {
doSomething();
}
}• Sử dụng 8 khoảng trắng khi nhảy dòng -Yes
String s =
somethingVeryLong(…);-No
String s =
somethingVeryLong(…);- Sử dụng “m” đứng đầu cho biến non-public và non-static
-Yes
private String mFirstName;
private boolean mIsMarried;-No
private String firstName;
private boolean isMarried;- Đặt 's' đứng đầu cho biến static(non-final)
-Yes
private static double sBiggestRadius;-No
private static double biggestRadius;- Tránh sử dụng khối catch rỗng
Thường xuyên nhưng không phải luôn luôn. -Yes
try {
…
} catch(SomeException se) {
doSomethingReal();
}-No
try {
…
} catch(SomeException se) { }- Đừng catch exception chung
-Yes
try {
…
} catch(ExceptionType1 et1) {
…
} catch(ExceptionType2 et2) {
…
}-No
try {
…
} catch(Exception e) {
…
}- Đặt tên views ID theo camel-case
ví dụ: btnLogin, tvCaption
- Các prefix cho id trong XML
• Button - btn
• EditText - edt
• TextView - tv
• Checkbox - chk
• RadioButton - rb
• ToggleButton - tb
• Spinner - spn
• Menu - mnu
• ListView - lv
• GalleryView - gv
• LinearLayout -ll
• RelativeLayout – rl
• Calendar ==> calendar
• Datepicker => datePicker
• Timepicker => timePicker
• Videoview=> videoView
• Seekbar==> seekBar
• RatingBar==> ratingBar
• Processbar => processBar
• ImageView,==> img
• ImageButton=> imgBtn
• Layout parent => container
• LayoutChild ==> ll,rl,fr
• RecycleView =>recycleView
• CardView =>cardView
• ScrollView => scrollView- Đơn vị của chữ tùy theo yêu cầu của khách hàng mà dùng để sp hay dp
- Cách đặt tên cho file XML
• Item cho list view: item_list_*
• Item cho grid view: item_grid_*
• Custom cho view: custom_*
• Custom cho dialog: dialog_*Ví dụ:
@+id/tvSubjectQuestions
@+id/ivTakeCamera- Đặt tên resource string, color, dimen
Yes
<string name="network_error">Network error</string>
<string name="call_failed">Call failed</string>
<string name="map_failed">Map loading failed</string>- Đặt tên cho hình ảnh sử dụng:
o icon: ic_*
o background: bg_*
o Image: img_*- 1 số quy ước đặt tên khác:
o ArrayList: thêm s vào cuối từ ví dụ như: mStudents
o Tên model: rõ ràng ví dụ như: Student, Teacher
o Activity Name: *Activity ví dụ: UserActivity
o Fragment Name: *Fragment ví dụ: HomeFragment
o Adapter: *Adapter ví dụ PageAdapter