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문이 무슨 동작을 하는지 알수 있는 코드입니다.
적절한 이름을 통해 주석 없이도 코드를 설명할 수 있습니다.
필요한 주석
- 법적 권리, 저작권 라이센스 등 코드 외적인 내용을 알려주는 주석
코드로는 설명 할 수 없는 내용을 코드 안에 표현하려면 주석밖엔 없겠죠. - 경고의 의미를 담은 주석
/*이 함수는 완료까지 8시간이 걸림*/
/*이 작업은 주요 데이터를 삭제함*/ - TODO 주석
/*어쩌구저쩌구한 기능을 구현할 곳*/
책에서는 좋지 않은 나쁜 주석도 알려주는데요.
너무 종류가 많아서 그냥 꼭 필요한걸 제외한 모든 주석이라고 생각하셔도 될 것 같습니다.
ㅋㅋㅋ
728x90
'잡동사니 > 독후감&자격증' 카테고리의 다른 글
[Clean Code 클린 코드] 클린코드는 여기까지... (0) | 2022.07.21 |
---|---|
[Clean Code 클린 코드] 5장. 형식 맞추기 (0) | 2022.07.19 |
[Clean Code 클린 코드] 3장. 함수 (0) | 2022.07.15 |
[Clean Code 클린 코드] 2장. 의미 있는 이름 (0) | 2022.07.12 |
[Clean Code 클린 코드] 1장. 깨끗한 코드 (0) | 2022.07.11 |