코드 형식은 개발자들간의 의사소통이다
원활한 소통을 위한 코드 형식들이 있다
일반적으로 큰 파일보다 작은 파일이 이해하기 쉽다
실제로 뛰어난 프로젝트인 JUnit, Time 등의 평균 행길이는 200줄 미만이다
하나의 행 묶음은 완결한 상태의 주장이어야 한다
빈행은 새로운 개념의 시작을 알리는 방법으로 이용한다
연관성을 의미하는 개념이다
밀접한 코드 행들은 세로로 가깝게 위치해야 한다
인스턴스 변수의 경우, 클래스 맨 처음에 선언하며 세로간 거리를 두지 않는다
일반적인 변수는 사용하는 위치에 최대한 가깝게 선언한다
호출하는 함수는 호출되는 함수보다 먼저 위치한다
이름은 간단하지만, 전체적인 설명이 가능하도록
첫 부분은 전체적인 내용의 핵심(고차원 개념 혹은 알고리즘)을 설명
마지막은 저차원 함수들과 세부 구현 내용을 나열
밑으로 갈수록 의도를 자세하게 서술한다
public class CodeAnalyzer implements JavaFileAnalysis {
private int lineCount;
private int maxLineWidth;
private int widestLineNumber;
private LineWidthHistogram lineWidthHistogram;
private int totalChars;
public CodeAnalyzer() {
lineWidthHistogram = new LineWidthHistogram();
}
public static List<File> findJavaFiles (File parentDirectory) {
List<File> files = new ArrayList<File>();
findJavaFiles(parentDirectory, files);
return files;
}
private static void findJavaFiles(File parentDirectory, List<File> files) {
for (File file : parentDirectory.listFiles()) {
if (file.getName().endWith(".java"))
files.add(file);
else if (file.isDirectory())
findJavaFile(file, files);
}
}
}
한줄이라도 들여쓰기 밑 괄호를 제대로 사용하라