Trang Chủ

Clean Code

Clean Code - Chapter 17

Clean Code - Chapter 17

Viết bởi Administrator

18, TH 04, 2023

Chương 17: Dấu hiệu của mã xấu và Kinh nghiệm thực tiễn 

1. Các chú thích - Comments

Tóm tắtMô tả
C1Thông tin không phù hợp 
C2Chú thích lạc hậu 
C3Chú thích thừa thãi  
C4Chú thích được viết không tốt 
C5Mã ở dạng ghi chú 

2. Môi trường - Environment

Mã Tóm tắt Mô tả
E1Build hệ thống với nhiều bước 
E2Kiểm thử hệ thống với nhiều bước 

3. Các hàm - Functions

Mã Tóm tắtMô tả
F1Quá nhiều đối sốCác hàm nên có ít đối số. Tốt nhất là sử dụng các hàm không có đối số, sau đó là hàm với một, hai hoặc ba đối số. Sử dụng nhiều hơn ba đối số là có vấn đề và phải ghi nhớ luôn luôn tránh trường hợp này.
F2Đối số đầu ra 
F3Đối số cờ hiệuĐối số này chứng tỏ hàm thực thi nhiều hơn 1 nhiệm vụ.
F4Hàm chết 

4. Tổng quát - General

Mã Tóm tắtMô tả 
G1Sử dụng nhiều ngôn ngữ trong một tập tin mã nguồn 
G2Không thực hiện các hành vi hiển nhiên 
G3Hành vi không chính xác tại các biên phạm viCác lập trình viên thường viết các hàm mà họ cho rằng chúng sẽ hoạt động, và sau đó tin vào trực giác của mình hơn là nỗ lực để chứng minh rằng chúng hoạt động.
G4Lờ đi các điều hiện an toànTắt các cảnh báo của trình biên dịch để build thành công chương trình.
G5Sự trùng lặpXếp hạng nguyên tắc này ở vị trí thứ 2, sau nguyên tắc mọi bài kiểm thử đều phải thỏa mãn.
G6Sai mức trừu tượng 
G7  
 
Các lớp cơ sở phụ thuộc vào các lớp kế thừa 
G8Quá nhiều thông tin 
G9Mã chết 
G10Sự phân chia theo chiều dọc  
G11Không nhất quán 
G12 Sự lộn xộn 
G13Liên kết giả 
G14Sự xâm lấn tính năng 
G15Các đối số là bộ chọn 
G16Ý định mập mờKhông viết tắt
G17Nhiệm vụ đặt sai chỗ 
G18Sử dụng static không phù hợp 
G19Sử dụng tên biến có tính giải thích 
G20 Tên hàm nển thẻ hiện chức năng của hàm 
G21Hiểu thuật toán 
G22Hữu hình hóa các phụ thuộc logic 
G23Sử dụng tính đa hình thay vì câu lệnh if/else hoặc switch/case 
G24 Tuân theo các quy ước chuẩn 
G25Thay thế con số đặc biệt bằng biến hằng số có tên 
G26Hãy chính xác 
G27Cấu trúc quan trọng hơn quy ước 
G28Đóng gói các điều kiện 
G29Tránh các điều kiện phủ định 
G30Mỗi hàm chỉ nên thực hiện một nhiệm vụ 
G31Các ghép nối thời gian ẩn 
G32Đừng tùy tiệnCó lý do cho các tổ chức code của bạn.
G33Đóng gói các điều kiện biên 
G34Nên viết cách hàm lùi xuống chỉ một mức độ trừu tượng 
G35Đặt các thông số cấu hình ở cấp cao 
G36Tránh việc chuyển tiếp bắc cầu 

5. Tên gọi - Names

Mã Tóm tắt Mô tả
N1Chọn tên diễn đạt rõ nghĩa 
N2Chọn tên phù hợp với mức độ trừu tượng 
N3Sử dụng thuật ngữ ở nơi có thể 
N4Những cái tên rõ ràng

Bad: doRename()

Good: renamePageAndOptionallyAllReferences()

N5Sử dụng các tên dài cho các phạm vi lớn 
N6Tránh việc mã hóa 
N7Tên nên mô tả tác dụng phụ

VD: Nếu trong hàm có khởi tạo object

Bad: GetObject()

Good: GetOrCreateObject()

6. Các kiểm thử - Tests

Mã Tóm tắtMô tả
T1Các kiểm thử không đầy đủ 
T2Sử dụng công cụ kiểm soát độ bao phủ!Coverage Tool
T3Đừng bỏ qua các kiểm thử không quan trọng 
T4Mỗi một kiểm thử bị bỏ qua là một câu hỏi về sự mơ hồ 
T5Kiểm tra các điều kiện 
T6Kiểm tra triệt để các lỗi ở gần nhau 
T7Nhìn vào các khuôn mẫu của của các kiểm thử thất bại 
T8Nhìn vào các khuôn mẫu của độ bao phủ kiểm thử 
T9Các kiểm thử nên chạy nhanh 

Bài viết liên quan

Hiện tại chưa có bài viết nào