장인 정신을 익히는 과정 두 단계
- 장인에게 필요한 원칙, 패턴, 기법, 경험이라는 지식을 습득해야 한다.
- 열심히 일하고 연습해 지식을 몸과 마음으로 체득해야 한다.
설계 원칙
- SRP(Single Responsibility Principle)
- OCP(Open Closed Principle)
- DIP(Dependency Inversion Principle)
의미 있는 이름
- 의도를 분명히 밝혀라
int elapsedTimeInDays;
int daysSinceCreation;
int daysSinceModification;
int fileAgeInDays;
public List<Cell> getFlaggedCells() {
List<Cell> flaggedCells = new ArrayList<Cell>();
for (Cell cell : gameBoard)
if (cell.isFlagged())
flaggedCells.add(cell);
return flaggedCells;
}
발음하기 쉬운 이름을 사용하라
class Customer {
private Date generationTimestamp;
private Date modificationTimestamp;
private final String recordId = "102";
}
검색하기 쉬운 이름을 사용하라
int realDaysPerIdealDay = 4;
const int WORK_DAYS_PER_WEEK = 5;
int sum = 0;
for (int j=0; j < NUMBER_OF_TASKS; j++) {
int realTaskDays = taskEstimate[j] * realDaysPerIdealDay;
int realTaskWeeks = (realTaskDays / WORK_DAYS_PER_WEEK);
sum += realTaskWeeks;
}