|
The Art of Readable Code ( 읽기 좋은 코드가 좋은 코드다 ) -Dustin Boswell and Trevor Foucher
+정말이지 프로그래머라면 반드시 읽어야 되는 책중에 하나라고 생각합니다.
코드는 읽기가 좋아야 나중에 유지보수도 쉽고 개발중에도 더 빠른속도로 파악이 가능하며 생산성도 높습니다.
가독성 향상을 위한 작명법,주석, 빈줄 삽입등 간단한 규칙만 지키면 코드를 더 읽기 쉽고 유지보수가 쉽게 만들수가 있다. 아래는 간단히 정리하였지만 꼭 1독 이상을 권장합니다.
[핵심적인 내용들]
1.tmp나 rtval 같은 보편적인 이름을 사용하지 말고 변수값을 설명하는 이름을 사용하라.
보편적인 이름을 사용하려면 꼭 그렇게 해야하는 이유가 있어야한다.
2.명확한 변수명을 사용하면 가독성도 좋을 뿐만 아니라 버그도 줄일수 있다.(변수명에 sum 인데 -를 하는경우등)
3.변수명에 단위를 포함하거나 중요한 속성을 포함해서 작성한다.
dealy->delay_secs , size->size_mb / html_utf8
4.변수명의 약어를 정할 때는 팀에 새로 합류한 사람이 변수가 의미하는 바를 이해할 수 있다면 좋은 작명이다.
5.클래스 표기법
-클래스명은 Camel 표기법
-클래스 member 변수는 _로 끝남
-클래스 메소드는 대문자로 시작(? 소문자 아닌가?)해서 Camel표기법
6.변수명은 부정어 보단 긍정어를 사용하라 ( isNotExist => isExist )
7.메서드명은 해당 작업이 어떤식으로 진행되는지 표현이 가능해야 한다. 보통 get으로 시작하는 메소드는 가벼운 접근자로 생각한다.그런데 이러한 메소드에 상당히 시간이 걸리는 작업을 하게 되면 문제가 발생할 수 있다.
8.비슷한 코드는 비슷하게 보여야 한다. 일관성과 간결성을 위해서 줄 바꿈이나 공백등을 도입하라. 필요하다면 헬퍼 메소드를 이용해서 간결하게 처리하라. 빈줄을 이용해서 커다란 블록을 논리적인 문단으로 나눠라.
9.일관성있는 스타일은 '올바른'스타일 보다 더 중요하다.
10.코드의 한곳에서 A,B,C가 순서대로 언급이 되면 다른곳에서도 동일한 순서를 지켜라
11.코드에서 빠르게 유추할 수 있는 내용은 주석으로 달지 마라
12.좋은 코드 > 나쁜 코드 + 좋은 주석
13. 코드에 주석 달 때 프로그래머 사이에서 널리 사용되는 표시
-TODO: 아직 하지 않은 일
-FIXME:오동작을 일으킨다고 알려진 코드
-HACK:아름답지 않은 해결책
-XXX:위험! 여기 큰 문제가 있다.
-TextMate :ESC
14.조건문에서 왼쪽 : 유동적인 '질문을 받는'표현 , 오른쪽 : 더 고정적인 값으로, 비교대상으로 사용되는 표현
if(bytes_received > bytes_expected) vs if(bytes_expected > bytes_received)
15.기본적으로 if/else를 사용하고 ?:를 이용하는 삼항연산은 매우 간단할 때만 사용하라
16.중첩을 최소화 하고, 함수 중간에서 반환하여 중첩을 제거하라.
17.변수는 함수의 시작 상단에서 모두 정의하지 말고 필요한 시점 바로 전에 정의해서 사용하라
18.할머니에게 설명할 수 없다면 당신은 제대로 이해한 게 아닙니다. - 알버트 아인슈타인
19.매일 15분씩 자신의 표준 라이브러리에 있는 모든 함수/모듈/형들의 이름을 읽어라. 이미 존재하는 라이브러리로 자신의 문제를 풀 수있는 상황이 많다는것을 잘 모른다. Don't reinvent the Wheel
'책 후기 > 2.프로그래밍 관련' 카테고리의 다른 글
[5분만에 책 한권 읽기] 프로그래머의 리더십 (어느날 갑자기 프로젝트 관리자가 되었다. 뜨~아악!)-정영훈 (0) | 2017.03.10 |
---|---|
[5분만에 책 한권 읽기] 나는 프로그래머다 -2편 (0) | 2017.03.10 |
[5분만에 책 한권 읽기] C# 코딩의 기술 기본편 - 가와마타 아키라 (0) | 2017.03.10 |
[5분만에 책 한권 읽기] 훌륭한 프로그래머 되는법 ( Becomming a Better Programmer ) - Pete Goodliffe (0) | 2017.03.10 |
[5분만에 책 한권 읽기] 나는 프로그래머다 #1 (0) | 2017.03.06 |