Mã sạch
• Chạy tất cả các kiểm thử;
• Không có sự trùng lặp;
• Diễn đạt tất cả các ý tưởng thiết kế có trong hệ thống;
• Có tối thiểu số lượng các lớp, phương thức, chức năng, và những thứ tương tự.
ScaffoldingPackage Management
Names
Functions
Comments
Formatting
Object and Data Structure
~
~
~
~
~
Error Handling
Boundaries
Unit Tests
Class
Systems
~
~
~
~
~
Emergence
Concurrency
Successive Refinement
Class
Systems
~
~
~
~
~
Naming
Clean Code, Chapter 2: Meaningful Names
Language
File
Function
Class
Python
file_name
functionName
ClassName
Use Intention-Revealing Names
# NOT
int d; // elapsed time in days
# HOT
int elapsedTimeInDays;
int daysSinceCreation;
int daysSinceModification;
int fileAgeInDays;
Avoid Disinformation
# NOT1
accountList // in case accountList is not a real List
# HOT1
accountGroup
# NOT2
// lower-case L or uppercase O as variable names, especially in combination
int a = l;
if ( O == l )
a = O1;
else
l = 01;
Design Principles
SOLID
Single Responsibility Principle (đơn nhiệm)
Open Close Principle (mở đóng)
Liskov's Substitution Principle
Interface Segregation Principle
Dependency Inversion Principle (đảo ngược sự phụ thuộc)
Scaffolding Package Management
Naming
Design Principles
SOLID
The Productivity Practices Stack
References