코드는 다른 사람이 그것을 이해하는데 들이는 시간을 최소화하는 방식으로 작성
1. 이름에 정보를 담는 방법
- 기본적으로 대상과 목적으로 작성한다. ex) ReadBook : Read 목적, Book 대상
- 한 단어에 대한 정보를 더 잘 나타내는 유의어를 사용하라.
- 인수에 단위가 포함되면 좋다. ex) angle (X) -> degree (O)
- 정보의 손실이 없는 선에서 불필요한 단어는 제거하는 것이 낫다. ex) ConvertToString (X) -> ToString (O)
- bool값의 정보는 true기준으로 작성하는 것이 좋다.
2. 코드 뭉치를 정리 하는 방법
- 여러 블록에 담긴 코드가 모두 비슷한 일을 수행하면 실루엣이 동일해보이게 만들어라.
- 의미 있는 순서를 정하여 모든 곳에서 그 순서를 지켜라. ex) A,B,C순으로 쓰고 있다면 B,C,A 순으로 쓰지 말라.
- 한 칸 띄워쓰게 하여 논리적으로 문단을 나눠라. 코드가 너무 뭉쳐있으면 보기에 좋지 않다.
3. 주석을 좋게 작성하는 방법
- 코드에서 빠르게 유추할 수 있는 내용은 주석으로 달지 말라.
- 나쁜 이름에는 주석을 달지 말고 이름을 바꾸는 것이 좋다.
- 코드에 대한 결함이나 개선해야될 사항등을 적어놓으면 좋다.
- 어떤 상수가 특정한 값을 갖게 된 '사연'
- 코드를 읽는 입장에서 이게 왜 이런것인가? 라는 의문을 해소해줄 주석을 달아라.
- 평범하지 않는 동작이라면 그것에 대한 내용을 기록하라.
- 그것, 이것과 같은 대명사가 여러가지를 지칭한다면 사용하지 않는 것이 좋다.
- 코드의 의도를 전달하되 명확하게 전달하라.
ex)리스트를 역순으로 반복한다. -> 각 가격을 높은 값에서 낮은 값 순으로 나타낸다.
4. 보기좋게 논리를 단순화하는 방법
- 부정이 아닌 긍정을 다루어라. ex) if(!debug) (X) -> if(debug) (O)
- 삼항연산은 아주 간단하게 이루어질 때만 사용한다.
- and와or을 이용해서 단순화해라 ex) if(!(x && !y)) (X) -> if(!x || y) (O)
5.변수의 범위를 좁게하라
- 클래스를 세분화하라 (각 클래스가 독립적일때유용)
- 변수들의 정의를 미리 다 하기보다는 사용하기 직전에 해놓는게 좋다.
- 변수의 할당이 최대한 적은것이 좋다.