본문 바로가기
전공공부

CleanCode 4장, 5장

by 시아나 2024. 11. 14.

4장. 주석

주석은 나쁜 코드를 보완하지 못한다.

주석을 유지보수하기는 불가능 하기 때문에
주석은 오래 될 수록 코드에서 멀어진다.
주석을 사용하기 보다는 코드를 명확하게 작성하는 것이 좋다.

좋은 주석은 무엇인가?

  • 법적인 주석 
    ex) 저작권 정보, 표준 라이센스 등
  • 정보를 제공하는 주석
  • 의도를 설명하는 주석
// 스레드를 대량 생성하는 방법으로 어떻게든 경쟁 조건을 만들려 시도한다.
for(int i = 0;i<25000;i++){
	...
    Thread thread = new Thread(widgetBuilderThread);
    thread.start();
}
  • 결과를 경고하는 주석
    ex) // 여유 시간이 충분하지 않으면 실행하지 마시오
  • TODO 주석
  • 중요성을 강조하는 주석

 

5장. 형식 맞추기

코드 형식은 의사소통의 일환

오늘 구현한 코드는 바뀔 가능성이 높고
오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 영향을 미친다.

좋은 형식의 코드란?

  • 세로 형식 : 적절한 행 길이를 유지해라 (500줄을 넘지 않도록)
  • 가로형식
    한 행당 글자수는 많은 프로젝트에서 20~60자가 40%, 10자 미만이 30%이다.
    100자 ~ 120자 이상의 글자는 좋지 않다.
  • 세로 밀집도, 수직거리, 종속함수
    연관성이 높은 코드, 서로 밀접한 개념, 호출하는 함수는 세로로 가까이 놓여야 한다.
    한 함수가 다른 함수를 호출한다면 호출당하는 함수는 호출하는 함수 아래에 두는 것이 좋다.
function startRunning(){
	run();
}
run(){};
  • 세로 순서
    세세한 사항은 가장 마지막에 표현

 

  • 변수는 사용하는 위치에 최대한 가깝게 선언
    ex) vue 2 에서는 변수를 data 내부에 한꺼번에 선언했다
    하지만 가독성을 위해 vue 3 에서는 코드 어디서든 선언할 수 있도록 업데이트 하였다.
// vue 2
new Vue({
...
            data: {
            	appleCnt : 0
            },
            methods: {
            	eatApple: function () {
                    appleCnt -= 1
                }
            }
        })

// vue 3
function printStar(){...}

const appleCnt = 0

function buyApple(){
	appleCnt += 1
}

 

  • 신문기사처럼 작성
    이름은 간단하면서 설명가능하게
    소스 파일의 첫부분은 알고리즘을 설명
    아래로 내려갈수록 의도를 세세하게 묘사하는 것이 좋다.

 

  • 개념은 빈 행으로 분리해라
    이 코드 보다는
public void printStar(){...}
public void printApple(){...}

      이 코드가 더 좋은 코드다

public void printStar(){...}

public void printApple(){...}