본문 바로가기

클린코드/클린코드 애장일 소프트웨어 장인 정신

클린코드 5장 형식맞추기

프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야한다. 코드 형식을 맞추기 위한 간단한 규칙을 정하고 그 규칙을 따라야 한다. 팀으로 일한다면 팀이 합의해 규칙을 정하고 따라야한다. 필요하다면 규칙을 자동으로 적용하는 도구를 활용한다.

<형식을 맞추는 목적>

코드가 바뀌어도 맨처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수와 확정성에 영향을 끼치기에 중요하다.

<적절한 행 길이를 유지하라>

대표 프로젝트 junit, fitnesse 등도 500줄을 넘지않고 200줄 정도의 파일로도(한 클래스의 코드수) 커다란 시스템을 구축할 수 있다!!!. 일반적으로 큰 파일보다 작은 파일이 이해하기 쉽다.

<신문 기사처럼 작성하라>

신문을 읽을때 독자는 위에서 아래로 읽는다. 최상단에 기사를 몇마디로 요약하는 표제가 나온다. 독자는 표제르 ㄹ보고서 기사를 읽을지 말지 결정한다. 첫문단은 전체 기사 내용을 요약한다. 세세한 사실은 숨기고 커다란 그림을 보여준다. 쭉 읽으며 내려가면 세세한 사실이 조금씩 드러난다.

소스도 신문기사와 비슷하게 작성한다. 이름만 보고도 올바른 모듈을 살펴보고 있는지 아닌지를 판단할 정도로 신경써서 짓는다. 소스파일 첫 부분은 고차원개념과 알고리즘을 설명한다. 아래로 갈수록 의도를 세세하게 묘사하고 마지막에는 가장 저차원함수와 세부내역이 나온다.

<수직거리>

종속함수 : 한 함수가 다른 함수를 호출한다면 두 함수는 세로로 가까이 배치한다. 호출하는 함수를 불리는 함수보다 먼저 배치하고 바로 아래에 배치된다면 가독성이 높아진다.

<개념적 유사성>

친화력이 높은 함수끼리는 가까이 배치한다. EX) assertTrue, assertFalse

<가짜범위>

때로는 빈 while문이나 for문을 접한다. 이런구조는 피하는 것이 좋고 빈 while을 쓸때는 아래와 같이 다음줄에 ';'를 쓴다.

while(dis.read(buf, 0, readBufferSize) != -1)

;

<팀규칙>

팀 규칙을 합의하여 IDE 코드 형식기를 설정한후 사용하도록 하자.