Clean code a handbook of agile software craftsmanship



tải về 0.5 Mb.
Chế độ xem pdf
trang10/20
Chuyển đổi dữ liệu02.02.2023
Kích0.5 Mb.
#54161
1   ...   6   7   8   9   10   11   12   13   ...   20
I-II
12-KTXH-VUONG QUOC DUY(105-113)
 
 
 
 
 
CHƯƠNG 2 
*** 
NHỮNG CÁI TÊN 
RÕ NGHĨA 
Viết bởi Tim Ottinger 
 
 


15 
Giới thiệu 
Những cái tên có ở khắp mọi nơi trong phần mềm. Chúng ta đặt tên cho các biến, các hàm, các 
đối số, các lớp và các gói của chúng ta. Chúng ta đặt tên cho những file mã nguồn và thư mục chứa 
chúng. Chúng ta đặt tên cho những file *.jar, file *.war,... Chúng ta đặt tên và đặt tên. Vì chúng ta đặt 
tên rất nhiều, nên chúng ta cần làm tốt điều đó. Sau đây là một số quy tắc đơn giản để tạo nên những cái 
tên tốt. 
Dùng những tên thể hiện được mục đích 
Điều này rất dễ. Nhưng chúng tôi muốn nhấn mạnh rằng chúng tôi nghiêm túc trong việc này. 
Chọn một cái tên “xịn” mất khá nhiều thời gian, nhưng lại tiết kiệm (thời gian) hơn sau đó. Vì vậy, hãy 
quan tâm đến cái tên mà bạn chọn và chỉ thay đổi chúng khi bạn sáng tạo ra tên “xịn” hơn. Những người 
đọc code của bạn (kể cả bạn) sẽ sung sướng hơn khi bạn làm điều đó. 
Tên của biến, hàm, hoặc lớp phải trả lời tất cả những câu hỏi về nó. Nó phải cho bạn biết lý do 
nó tồn tại, nó làm được những gì, và dùng nó ra sao. Nếu có một comment đi kèm theo tên, thì tên đó 
không thể hiện được mục đích của nó. 
int
d;
// elapsed time in days
Tên d không tiết lộ điều gì cả. Nó không gợi lên cảm giác gì về thời gian, cũng không liên quan 
gì đến ngày. Chúng ta nên chọn một tên thể hiện được những gì đang được cân đo, và cả đơn vị đo của 
chúng: 
int
elapsedTimeInDays; 
int
daysSinceCreation; 
int
daysSinceModification; 
int
fileAgeInDays;
Việc chọn tên thể hiện được mục đích có thể làm cho việc hiểu và thay đổi code dễ dàng hơn 
nhiều. Hãy đoán xem mục đích của đoạn code dưới đây là gì? 
public
List
<
int
[]> getThem() { 
List
<
int
[]> list1 = 
new
ArrayList
<
int
[]>(); 
for
(
int
[] x 
:
theList) 
if
(x[
0
] == 
4

list1.add(x); 
return
list1; 
}
Tại sao lại nói khó mà biết được đoạn code này đang làm gì? Không có biểu thức phức tạp, 
khoảng cách và cách thụt đầu dòng hợp lý, chỉ có 3 biến và 2 hằng số được đề cập. Thậm chí không có 
các lớp (class) và phương thức đa hình nào, nó chỉ có một danh sách mảng (hoặc thứ gì đó trông giống 
vậy). 


16 
Vấn đề không nằm ở sự đơn giản của code mà nằm ở ý nghĩa của code, do bối cảnh không rõ ràng. 
Đoạn code trên bắt chúng tôi phải tìm câu trả lời cho các câu hỏi sau: 

tải về 0.5 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   6   7   8   9   10   11   12   13   ...   20




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương