Skip to content

Commit 222a849

Browse files
authored
2장 문희상
1 parent 300e61c commit 222a849

File tree

1 file changed

+89
-0
lines changed

1 file changed

+89
-0
lines changed

2장/문희상.md

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
### p.22 의도를 분명히 밝혀라
2+
3+
- 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다
4+
- 변수의 존재 이유는? 수행 기능은? 사용 방법은?에 대해서 코드만으로 답변이 가능해야한다
5+
- 코드의 단순성이 중요한 것이 아니라 코드의 함축성이 중요하다
6+
- 코드 맥락이 코드 자체에 명시적으로 드러나지 않는다
7+
- 단순히 이름만 고쳤는데도 함수가 하는 일을 이해하기 쉬워진다
8+
9+
### p.24 그릇된 정보를 피해라
10+
11+
- 프로그래머는 코드에 그릇된 단서를 남겨서는 안된다
12+
- 서로 흡사한 이름을 사용하지 않도록 주의한다
13+
- 유사한 개념은 유사한 표기법을 사용해야하며, 일관성이 떨어지는 표기법은 그릇된 정보다
14+
- 소문자 L이나 대문자 )는 조심하자
15+
16+
### p.25 의미 있게 구분하라
17+
18+
- 연속적인 숫자를 덧붙인 이름은 아무런 정보를 제공하지 못하는 이름이다
19+
- 불용어를 추가한 이름 역시 아무런 정보를 제공하지 못한다
20+
- Info나 Data는 a, and, the와 마찬가지로 의미가 불분명한 불용어다
21+
- 읽는 사람이 차이를 명확하게 알 수 있도록 이름을 지어라(moneyAmount vs money)
22+
23+
### p.27 발음하기 쉬운 이름을 사용하라
24+
25+
- 발음하기 어려운 이름은 토론하기도 어렵다
26+
- 프로그래밍은 사회 활동이다
27+
- 또한 지적인 대화가 가능해진다
28+
29+
### p.28 검색하기 쉬운 이름을 사용하라
30+
31+
- 문자 하나를 사용하는 이름과 상수는 텍스트 코등서 쉽게 눈에 띄지 않는다는 문제점이 있다
32+
- 숫자 7은 7이 들어가는 파일 이름이나 수식이 모두 검색되기 때문에 까다롭다
33+
- e는 영어에서 가장 많이 쓰이는 문자로 변수 이름으로 적합하지 못하다
34+
- 이름 길이는 범위 크기에 비례해야 한다
35+
- 여러 곳에서 사용한다면 검색하기 쉬운 이름이 바람직하다
36+
37+
### p.29 인코딩을 피하라
38+
39+
- 유형이나 범위 정보까지 인코딩에 넣으면 그만큼 이름을 해독하기 어려워진다
40+
- 인코딩은 불필요한 정신적 부담이다
41+
- 또한 거의 발음하기 어려우며 오타가 생기기도 쉽다
42+
- 클래스와 함수는 점차 작아지는 추세다
43+
- 멤버 변수에 m_ 이라는 접두어를 붙일 필요도 없다
44+
- 또한 인터페이스의 경우에도 이름에 접두러를 붙이지 않는 편이 좋다
45+
46+
### p.31 자신의 기억력을 자랑하지 마라
47+
48+
- 코드를 읽으며 변수 이름을 자신이 아는 이름으로 변환해야 한다면 그 변수 이름은 바람직하지 못하다
49+
- 문자 하나만 사용하는 변수 이름은 루프 범위가 아주 작고 다른 이름과 충돌하지 않을 때만 괜찮다
50+
- 전문가 프로그래머는 명료함이 최고라는 사실을 이해한다
51+
52+
### p.32 클래스 및 메서드 이름
53+
54+
- 클래스 이름과 객체 이름은 명사나 명사구가 적합하다
55+
- Manage, Processor, Data, Info 등과 같은 단어는 피하고, 동사는 사용하지 않는다
56+
- 메서드 이름은 동사나 동사구가 적합하다
57+
- postPayment, deletePage, save 등이 좋은 예다
58+
- 생성자를 중복정의할 때는 정적 팩토리 메서드를 사용한다
59+
- 생성자 사용을 제한하려면 해당 생성자를 private로 선언한다
60+
61+
### p.33 한 개념에 한 단어를 사용하라
62+
63+
- 똑같은 메서드를 클래스마다 fetch, retrieve, get으로 제각각 부르면 혼란스럽다
64+
- 인텔리제이 같은 최신 IDE는 문맥에 맞는 단서를 제공한다
65+
- 마찬가지로, 동일 코드 기반에 controller, manager, driver를 섞어 쓰면 혼란스럽다
66+
67+
### p.34 말장난을 하지 마라
68+
69+
- 프로그래머가 같은 맥락이 아닌데도 ‘일관성’을 고려해 add라는 단어를 선택한다
70+
- 다른 맥락이라면 insert나 append 라는 이름이 적당하다
71+
- 대충 훑어봐도 이해할 코드 작성이 목표다
72+
73+
### p.34 해법 영역에서 가져온 이름을 사용하라
74+
75+
- 전산 용어, 알고리즘 이름, 패턴 이름, 수학 용어 등을 사용해도 괜찮다
76+
- 기술 개념에는 기술 이름이 가장 적합한 선택이다
77+
78+
### p.35 의미 있는 맥락을 추가하라
79+
80+
- 클래스, 함수, 이름 공간에 넣어 맥락을 부여해도 의미가 분명하지 않다면 접두어를 붙이자
81+
- 독자가 맥락을 유추해야 이해가 가능한 경우 변수의 의미가 불분명하다는 것이다
82+
- 맥락을 개선하면 함수를 쪼개기가 쉬워지므로 알고리즘도 더 명확해진다
83+
84+
### p.37 불필요한 맥락을 없애라
85+
86+
- Gas Station Deluxe라는 애플리케이션을 짠다고 모든 클래스 이름을 GSD로 시작하면 안된다
87+
- 이는 IDE를 방해하는 행위다
88+
- 일반적으로 짧은 이름이 긴 이름보다 좋다. 단, 의미가 분명한 경우에 한해서다
89+
- 이름에 불필요한 맥락을 추가하지 않도록 주의하자

0 commit comments

Comments
 (0)