Clean Code: 형식 맞추기

jiffydev·2021년 5월 28일
0

Clean Code

목록 보기
4/13

오늘 구현한 기능이 다음 버전에서 바뀔 확률은 아주 높다. 그런데 오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 끼친다.
오랜 시간이 지나 원래 코드의 흔적을 더 이상 찾아보기 어려울 정도로 코드가 바뀌어도 맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미친다.

원활한 소통을 장려하는 코드 형식은 다음과 같다.

1. 적절한 행 길이

  • 200줄 정도의 파일로도 커다란 시스템을 구축할 수 있다.

  • 작은 파일이 이해하기 쉽다.

  • 신문기사처럼 작성하라.
    위에서 아래로, 이름은 간단하면서도 내용을 설명하는 것으로, 내용은 고차원 개념과 알고리즘에서 시작하여 마지막에는 저차원 함수와 세부내역이 나오도록

  • 개념은 빈 행으로 분리
    패키지 선언부, import, 각 함수 사이는 빈 행을 넣는다.

  • 세로 밀집도
    밀접한 코드끼리는 세로로 가까이 놓는다.

// BAD
public class ReporterConfig{
    /**
    * 리포터 리스너의 클래스 이름
    */
    private String m_className;
    
    /**
    * 리포터 리스너의 속성
    */
    private List<Property> m_properties = new ArrayList<Property>();
    public void AddProperty(Property property) {
        m_properties.add(property);
    }
}

// GOOD
public class ReporterConfig{
    private String m_className;
    private List<Property> m_properties = new ArrayList<Property>();
    
    public void AddProperty(Property property) {
        m_properties.add(property);
    }
}
  • 수직 거리
    • 변수는 사용하는 위치에 가까이 선언
    • 인스턴스 변수는 (보통) 클래스 맨 처음에 선언
    • 종속함수는 호출하는 함수를 호출되는 함수보다 먼저 배치
    • 종속 관계가 아니더라도, 친화도가 높은 함수끼리는 가까이 배치
  • 가로 형식 맞추기
    보통 120자를 넘어가지 않도록 한다.

  • 가로 공백과 밀집도
    공백은 통해 두 요소가 확실히 나뉜다는 것을 보여준다.

private void measureLine(String line) {
  lineCount++;
  int lineSize = line.length(); //할당연산자 강조
  totalChars += lineSize; //할당연산자 강조
  recordWidestLine(lineSize); //함수와 인수는 밀접하므로 공백 없음
  lineWidthHistogram.addLine(lineSize, lineCount); //인수들은 별개라는 사실을 보여주기 위해 공백으로 분리
}
  • 팀 규칙
    개발자 개개인이 선호하는 규칙이 있겠지만, 팀으로 일하게 된다면 팀 규칙을 우선해야 한다. 한 코드에서 봤던 형식이 다른 코드에서도 쓰이리라는 신뢰감을 줌으로써 가독성을 높인다.
profile
잘 & 열심히 살고싶은 개발자

0개의 댓글