Link
Today
Total
10-17 00:15
Archives
관리 메뉴

초보개발자 긍.응.성

(Clean Code) 5장 - 형식 맞추기 본문

책 정리/Clean Code

(Clean Code) 5장 - 형식 맞추기

긍.응.성 2021. 1. 19. 23:29
반응형

프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야한다. 코드 형식을 맞추기 위해 간단한 규칙을 정하고 그 규칙을 착실히 따라야 한다.

형식을 맞추는 목적

  • 코드의 형식은 중요하다
  • 오늘 구현한 기능이 다음 버전에서 바뀔 확률은 아주 높으며, 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 미친다

적절한 행 길이를 유지해라

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

신문 기사 처럼 작성하라

  • 이름은 간단하면서도 설명이 가능하게 짓는다
  • 소스 파일 첫 부분은 고차원 개념과 알고리즘을 설명한다
  • 아래로 내려갈수록 의도를 세세하게 묘사한다

개념은 빈 행으로 분리하라

  • 일련의 행 묶음은 완결된 생각 하나를 표현한다
  • 생각 사이는 빈 행을 넣어 분리해야 한다
  • 빈 행은 새로운 개념을 시작한다는 시각적 단서로 주어야 한다

세로 밀집도

  • 줄 바꿈이 개념을 분리한다면 세로 밀집도는 연관성을 의미한다
  • 의미 없는 주석으로 인스턴스 변수들을 떨어뜨려 놓지 말자

수직 거리

  • 서로 밀접한 개념은 세로로 가까이 둬야 한다
  • 두 개념이 사로 다른 파일에 속한다면 규칙이 통하지 않지만, 타당한 근거가 없다면 서로 밀접한 개념은 한 파일에 속해야 한다
  • 변수 선언, 변수는 사용하는 위치에 최대한 가까이 선언한다
  • 인스턴스 변수, 인스턴스 변수는 클래스 맨 처음에 선언한다
  • 종속 함수, 한 함수가 다른 함수를 호출한다면 두 함수는 세로로 가까이 배치한다. 또한 가능하다면 호출하는 함수를 호출되는 함수보다 먼저 배치한다
  • 개념적 유사성, 개념적인 친화도가 높을수록 코드를 가까이 배치해야 한다

세로 순서

  • 일반적으로 함수 호출 종속성은 아래 방향으로 유지한다
  • 호출되는 함수를 호출하는 함수보다 나중에 배치한다

가로 형식 맞추기

  • 프로그래머는 명백하게 짧은 행을 선호한다
  • 120자 정도로 행 길이를 제한하여 사용하자

가로 공백과 밀집도

  • 가로 공백을 이용해 밀접한 개념과 느슨한 개념을 표현할 수 있다
  • 복잡한 수식의 가독성을 높여줄 수 있다
int lineSize += line.lenght(); // 할당문의 왼쪽 오른쪽 요소가 나뉜다는 사실을 표현 (느슨한표현)

lineWidthHistogram.addLine(lineSize, lineCount); // 함수와 인수는 밀접하다

private static double root(int a, int b, int c) {
    double determinant = determinant(a, b, c);
    return (-b - Math.sqrt(determinant)) / (2*a); // 공백을 통해 수식을 읽기 편해졌다
}

가로 정렬은 할 필요가 없다

들여 쓰기

  • 짧은 if, while 문에서도 들여 쓰기를 무시하지 말자
  • scope로 이루어진 계층을 표현하기 위해 들여쓰기를 한다

팀 규칙

  • 팀은 한 가지 규칙에 합의해야 한다
  • 그리고 모든 팀원은 그 규칙을 따라야 한다
반응형

'책 정리 > Clean Code' 카테고리의 다른 글

(Clean Code) 6장 - 객체와 자료 구조  (0) 2021.01.28
(Clean Code) 4장 - 주석  (0) 2021.01.18
(Clean Code) 3장 - 함수  (0) 2021.01.17
(Clean Code) 2장 - 의미있는 이름  (0) 2021.01.16
Comments