3. 시인이 되지마라 함축성은 상상력을 자극하지만 코드는 의도를 분명하게 보여주는 설명문이여야 한다. int d; // 경과 시간 VS intelapsedTimeInDays; intdaySinceCreation; intdaySinceModification; intfileAgeInDays;
5. 개선) public List<int[]> getFlaggedCells() { List<int[]> flaggedCells = new ArrayList<int[]>(); for( int[] cell : gameBoard ) if( cell[STATUS_VALUE] == FLAGGED ) flaggedCells.add(cell); return flaggedCells; } cell[STATUS_VALUE] == FLAGGED는 잠정적인 중복의 우려가 있음. 멤버함수로 수정하는 것이 좋음.
6. HP? hypotenuse, health point, Hewlett-Packard어떤 의미? 일관성이 떨어지는 표기법 l, 1, O, 0 <- 좋은 폰트를 선택하라. 그릇된 정보를 제공하자 마라.
7. 컴파일러, 인터프리터를 위한 작명은 피하라! EX) publicstatic void copyChars( char a1[], char a2[] ) { for( int I = 0; I < a1.length; ++I ) { a2[i] = a1[i]; } } 코드 본문을 보기 전까지 어떤 인자가 복사 원본이고 어떤 인자가 복사 대상인지 모름.
12. 프로그래밍은 커뮤니케이션이다. 발음하기 쉬운 이름을 사용하라. Class DtaRcrd102 { private Date genymdhms; private Date modymdhms; private final String pszgint = “102”; /* … */ }
13. vs class Customer { private Date generationTimeStamp; private Date modificationTimeStamp; private final String recordId = “102”; /* … */ } 어떤 코드로 대화를 하는 것이 편할까?
14. 정보가 많을 수록 검색양은 줄어든다. EX)MAX_CLASSES_PER_STUDENT vs 7 ? 변수나 상수의 가시성의 범위가 넓을 수록 이름의 길이도 길어지는 것이 좋다. 검색하기쉬운 이름을 사용하라!
15. 인코딩은디코딩 규칙을 알아야 한다. 코드를 읽는 사람에게 추가적인 부담을 주지말자. 헝가리언 표기법 멤버 변수 접두어 인터페이스 클래스와 구현 클래스 를구분하기 위한 접두어를사용하지 말자.