Skip to content

Commit f18e049

Browse files
committed
주석 part1
1 parent 15d8b89 commit f18e049

File tree

1 file changed

+92
-0
lines changed

1 file changed

+92
-0
lines changed

4. 주석/Readme.md

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,94 @@
11

22
# 주석
3+
## 나쁜 코드에 주석을 달지 마라. 새로 짜라.
4+
- 브라이언 W. 커니핸, P.J 플라우거
5+
주석은 나쁜 코드를 보완하지 못한다.
6+
7+
### 코드로 의도를 표현하라
8+
ex)
9+
```
10+
// 직원에게 복지 혜택을 받을 자격이 있는지 검사한다.
11+
if ((empoyee.isWorkHard) && (employee.age > 65)
12+
```
13+
->
14+
```
15+
if (employee.isEligibleForFullBenefits()) {
16+
...
17+
}
18+
19+
func isEligibleForFullBenefits() -> Bool {
20+
return ((self.isWorkHard) && (self.age > 65)
21+
}
22+
```
23+
24+
### 좋은 주석
25+
1. 법적인 주석
26+
```
27+
//
28+
// ViewController.swift
29+
// AutoScrollHeightTest
30+
//
31+
// Created by hanwe lee on 2020/07/30.
32+
// Copyright © 2020 hanwe. All rights reserved.
33+
//
34+
```
35+
요즘엔 IDE에서 자동으로 만들어줌...
36+
37+
2. 정보를 제공하는 주석
38+
```
39+
// kk:mm:ss EEE, MMM dd, yyyy형식이다
40+
Pattern timeMatcher = Pattern.compile("\\d*:\\d*:\\d* \\w*, \\w* \\d*, \\d*")
41+
```
42+
-> 하지만 Date형태의 데이터를 리턴한다면? 이방법이 좋다고는 되어있는데 최선은 아니라고 한다.
43+
44+
3. 의도를 설명하는 주석
45+
```
46+
func compareTo(Obj o) -> myEnumValue {
47+
if (o is MyWikiMember) {
48+
var returnValue = .notYetSeleted
49+
...
50+
return returnValue
51+
}
52+
return .first //오른쪽 유형이므로 정렬순위가 더 높다.
53+
}
54+
```
55+
56+
4. 의미를 명료하게 밝히는 주석
57+
```
58+
func testCompareTo() {
59+
...
60+
assertTrue(a.compareTo(a) == 0) // a == a
61+
assertTrue(a.compareTo(b) != 0) // a != b
62+
assertTrue(a.compareTo(ab) == 0) // ab == ab
63+
}
64+
```
65+
-> 좋은 주석이라고 말은 할 수 있지만 주석을 잘못달 경우 찾기 엄청 힘들다
66+
67+
5. 결과를 경고하는 주석
68+
```
69+
public static SimpleDateFormat makeStandardHttpDateForamt() {
70+
// SimpleDateFormat은 스레드에 안전하지 못하다.
71+
// 따라서 각 인스턴스를 독립적으로 생성해야한다.
72+
...
73+
}
74+
```
75+
-> 그나마 합리적인 주석
76+
77+
6. todo 주석
78+
```
79+
//todo-MdM 현재 필요하지 않다.
80+
// 체크아웃 모델을 도입하면 함수가 필요없다.
81+
func makeVersion() -> String {
82+
...
83+
}
84+
```
85+
-> 만약 필요없는 코드라면 지우는게 더 낫다
86+
87+
7. 중요성을 강조하는 주석
88+
```
89+
String listItemContent = match.group(3).trim();
90+
// 여기서 trim은 정말 중요하다. trim 함수는 문자열에서 시작 공백을 제거한다.
91+
// 문자열에서 시작 공백이 있으면 다른 문자열로 인식되기 때문이다.
92+
...
93+
```
94+

0 commit comments

Comments
 (0)