[클린코드] 5장 형식 맞추기

JUN·2024년 7월 25일
0

클린코드

목록 보기
5/14

형식을 왜 맞출까?

코드 형식은 개발자들의 의사소통의 일환이며 의사소통은 개발자들의 1차적인 의무이기 때문.

코딩 컨벤션 규칙

1. 적절한 행 길이를 유지하라. IDE 불가능

500줄을 넘지 않고 대다수가 200줄 미만인 파일로도 거대한 시스템을 구축할 수 있다!

2. 개념은 빈 행으로 구별해라

일련의 행 묶음은 완결된 생각 하나를 표현한다.

빈행으로 구별해야할 개념들

  1. 패키지 선언부
  2. import 문
  3. 각 함수 사이

3. 서로 밀접한 코드 행은 가까이 두자! IDE 불가능

좋은 신문 기사를 읽을때처럼 중요도 기준으로 함수를 배치하자.

세로 밀집도

서로 밀접한 코드행을 세로롤 가까이 두자.

물론 밀접한 두 개념이 다른 파일에 속한다면 규칙이 통하지 않음 → protected 변수를 피해야하는 이유중 하나

protected변수를 피해야 하는 이유 중 하나는, 해당 변수가 다른 파일에서도 접근이 가능하므로 코드의 밀접성이 떨어질 수 있다는 것입니다. 즉, 밀접한 두 개념이 서로 다른 파일에 속하게 되면, 이들 사이의 밀접성을 유지하는 것이 어렵습니다. 이로 인해 코드의 가독성과 유지보수성이 떨어질 수 있습니다.

변수 선언

변수는 사용하는 위치에 최대한 가까이 선언한다.

  • 지역변수 : 각 함수 첫부분
  • 루프 제어 변수 : 루프문 내부에 선언
    • 예시: for(int i = 0; i < 10; i++) {...}
  • 긴 함수에서 블록 상단이나 루프 직전에 변수를 선언하는 경우도 있음
    • 예시:

      void longFunction() {
          int controlVariable;
          for(controlVariable = 0; controlVariable < limit; controlVariable++)    {...}
      }
  • 인스턴스 변수 : 각 클래스 첫부분
  • 종속 함수 : 호출하는 함수, 호출되는 함수순으로 배치.
    • 종속함수란?

      종속 함수:

      코딩에서 종속 함수란, 특정 함수 내에서 호출되어 그 함수의 동작이나 결과에 영향을 미치는 다른 함수를 말합니다. 이는 함수의 재사용성을 높이고, 코드의 가독성을 향상시키는 데 도움이 됩니다.

      void mainFunction() {
          // some code
          dependentFunction();
          // some more code
      }
      
      void dependentFunction() {
          // do something that affects mainFunction
      }
      

      여기서 dependentFunctionmainFunction의 종속 함수입니다. mainFunction이 실행될 때 dependentFunction도 함께 실행되며, mainFunction의 동작이나 결과에 영향을 미칩니다.

개념적 유사성을 띈 함수

  • 친화도가 높은 함수의 경우 (명명법이 똑같고 기본 기능이 유사하고 간단) 비슷한 위치에 선언한다.

4. 한 행의 길이는 짧게 유지하자. IDE 불가능

한 행의 길이를 120자 이하로 유지하자.

5. 코드 한 행에서 띄어쓰기는 어떻게 들어가야하나?

  • 할당 연산자 ( = ) : 할당문은 오른쪽, 왼쪽 요소가 명확히 나뉘니 좌우 공백을 둘것
  • 연산자 우선순위로 공백을 표시할 것
    public static double root2(int a, int b, int c) {
        double determinant = determinant(a, b, c);
        return (-b - Math.sqrt(determinant)) / (2*a);
    }
    곱셈은 우선순위가 높기에 공백이 없음. 1항 연산자의 - 와 2항연산자의 - 가 구별 가능 →하지만 코드 포멧터 도구들은 해당 기능이 없기에 똑같은 간격으로 유지시킴. 나중에 도구에서 없애는 경우가 흔함.

6. 들여쓰기

  • 간단한 if문, while문 등의 경우 한줄로 쓰고싶은 욕구가 들지만 제대로된 들여쓰기를 할것.
  • 빈 if문, while문의 경우 한줄로 쓰고 다음행에 ;를 둘것
    if (condition) 
    ;
    while (condition) 
    ;

관련 아티클

profile
순간은 기록하고 반복은 단순화하자 🚀

0개의 댓글