https://book.naver.com/bookdb/book_detail.naver?bid=7390287

 

Clean Code

로버트 마틴은 이 책에서 혁명적인 패러다임을 제시한다. 그는 오브젝트 멘토(Object Mentor)의 동료들과 힘을 모아 ‘개발하며’ 클린 코드를 만드는 최상의 애자일 기법을 정제해 책 한 권에 담았

book.naver.com

 

 

나쁜 코드에 주석을 달지 마라.
주석은 나쁜 코드를 보완하지 못한다.
코드를 새로 짜라.

배배꼬인 스파게티 코드를 작성하고 주석으로 설명을 빙자한 변명을 단 경험이 많이 있을겁니다.

코드는 명확한 결과(성공하거나 에러를 띄우거나)를 알려주지만 주석은 아닙니다.

/* 완벽하게 잘 동작하는 코드 */ 라는 주석이 달려있다고 해서 그 코드가 정말 잘 동작할거란 보장은 없습니다.

오히려 주석을 달면서 생기는 실수로 인해 다른 프로그래머에게 오정보를 줄 수도 있습니다.

IDE는 코드의 문법상 에러는 찾아내지만 주석의 에러를 찾아내지는 못하니까요.

 

 

주석이 아니라 코드로 의도를 표현하라.
int[][] list = new int[N][3];

...

/* 직원중 1억 이상 고연봉자의 수를 세는 함수 */
for(int i = 0; i < list.length; i++){
	if(list[i][2] > 100_000_000){
    	count++;
    }
}

주석을 가리고 본다면 어떤 동작이 이루어지는지 파악하기 참 힘든 코드일겁니다.

1억이란 숫자는 무엇을 의미하는지, list 배열은 무슨 의미인지 알 수가 없습니다. 

 

Employee[] employeeList = new employeeList[N];
static int highSalary = 10_000_000;

...

for(int i = 0; i < employeeList.length; i++){
	if(employeeList[i].salary > highSalary){
    	count++;
    }
}

주석이 없지만 for문이 무슨 동작을 하는지 알수 있는 코드입니다.

적절한 이름을 통해 주석 없이도 코드를 설명할 수 있습니다.

 

 

필요한 주석

  1. 법적 권리, 저작권 라이센스 등 코드 외적인 내용을 알려주는 주석
    코드로는 설명 할 수 없는 내용을 코드 안에 표현하려면 주석밖엔 없겠죠.

  2. 경고의 의미를 담은 주석
    /*이 함수는 완료까지 8시간이 걸림*/
    /*이 작업은 주요 데이터를 삭제함*/
  3. TODO 주석
    /*어쩌구저쩌구한 기능을 구현할 곳*/

 

책에서는 좋지 않은 나쁜 주석도 알려주는데요.

너무 종류가 많아서 그냥 꼭 필요한걸 제외한 모든 주석이라고 생각하셔도 될 것 같습니다.

ㅋㅋㅋ

 

728x90

+ Recent posts