Clean code a handbook of agile software craftsmanship



tải về 0.5 Mb.
Chế độ xem pdf
trang11/20
Chuyển đổi dữ liệu02.02.2023
Kích0.5 Mb.
#54161
1   ...   7   8   9   10   11   12   13   14   ...   20
I-II
12-KTXH-VUONG QUOC DUY(105-113)
1. theList chứa cái gì? 
2. Ý nghĩa của chỉ số 0 trong phần tử của theList? 
3. Số 4 có ý nghĩa gì? 
4. Danh sách được return thì dùng kiểu gì? 
Câu trả lời không có trong code, nhưng sẽ có ngay sau đây. Giả sử chúng tôi đang làm game dò mìn
Chúng tôi thấy rằng giao diện trò chơi là một danh sách các ô vuông (cell) được gọi là theList. Vậy 
nên, hãy đổi tên nó thành gameBoard.
Mỗi ô trên màn hình được biểu diễn bằng một sanh sách đơn giản. Chúng tôi cũng thấy rằng chỉ số 
của số 0 là vị trí biểu diễn giá trị trạng thái (status value), và giá trị 4 nghĩa là trạng thái được gắn cờ 
(flagged). Chỉ bằng cách đưa ra các khái niệm này, chúng tôi có thể cải thiện mã nguồn một cách đáng 
kể: 
public
List
<
int
[]> getFlaggedCells() { 
List
<
int
[]> flaggedCells = 
new
ArrayList
<
int
[]>(); 
for
(
int
[] cell 
:
gameBoard) 
if
(cell[STATUS_VALUE] == FLAGGED) 
flaggedCells.add(cell); 
return
flaggedCells; 
}
Cần lưu ý rằng mức độ đơn giản của code vẫn không thay đổi, nó vẫn chính xác về toán tử, hằng 
số, và các lệnh lồng nhau,…Nhưng đã trở nên rõ ràng hơn rất nhiều. 
Chúng ta có thể đi xa hơn bằng cách viết một lớp đơn giản cho các ô thay vì sử dụng các mảng 
kiểu int. Nó có thể bao gồm một hàm thể hiện được mục đích (gọi nó là isFlagged – được gắn cờ 
chẳng hạn) để giấu đi những con số ma thuật (Từ gốc: magic number – Một khái niệm về các hằng số, 
tìm hiểu thêm tại 
https://en.wikipedia.org/wiki/Magic_number_(programming)
 ). 
public
List
getFlaggedCells() { 
List
<
Cell
> flaggedCells = 
new
ArrayList
<
Cell
>(); 
for
(
Cell
cell 
:
gameBoard) 
if
(cell.isFlagged()) 
flaggedCells.add(cell); 
return
flaggedCells; 
}
Với những thay đổi đơn giản này, không quá khó để hiểu những gì mà đoạn code đang trình bày. 
Đây chính là sức mạnh của việc chọn tên tốt. 


17 

tải về 0.5 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   7   8   9   10   11   12   13   14   ...   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