[Book] Clean Code: 3 ํจ์
ํด๋ฆฐ ์ฝ๋
์ ์์ผ ์ํํธ์จ์ด ์ฅ์ธ ์ ์
์ ์: ๋ก๋ฒํธ C. ๋งํด
3. ํจ์
page 39 ~ 66
๋ฃจํด๊ณผ ํ์ ๋ฃจํด
ํ๋ก๊ทธ๋จ - ํ์ ํ๋ก๊ทธ๋จ - ํจ์
๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋จ์๊ฐ ํจ์
ํจ์๋ฅผ ์ ๋ง๋๋ ๋ฒ ์๊ฐํ๋ ์ฅ
์๊ฒ ๋ง๋ค์ด๋ผ!
ํจ์๋ฅผ ๋ง๋๋ ๊ท์น์ ์ฒซ๋ฒ์งธ๋ โ์๊ฒ!โ, ๋๋ฒ์งธ๋ โ์๊ฒ!โ๋ค. 2~4์ค ์ ๋๋ฉด ์ ๋นํ๋ค.
๋ธ๋ก๊ณผ ๋ค์ฌ์ฐ๊ธฐ
if๋ฌธ ๋ฑ์ ๋ค์ด๊ฐ๋ ๋ธ๋ก์ ํ ์ค์ด์ด์ผ ํ๋ค.
ํ ๊ฐ์ง๋ง ํด๋ผ!
ํจ์๋ ํ ๊ฐ์ง๋ฅผ ํด์ผ ํ๋ค. ๊ทธ ํ ๊ฐ์ง๋ฅผ ์ ํด์ผ ํ๋ค. ๊ทธ ํ ๊ฐ์ง๋ง์ ํด์ผ ํ๋ค.
ํจ์ ๋ด ์น์
ํ ๊ฐ์ง ์์ ๋ง ํ๋ ํจ์๋ ์์ฐ์ค๋ฝ๊ฒ ์น์ ์ผ๋ก ๋๋๊ธฐ ์ด๋ ต๋ค.
ํจ์ ๋น ์ถ์ํ ์์ค์ ํ๋๋ก!
๊ทผ๋ณธ ๊ฐ๋ ๊ณผ ์ธ๋ถ์ฌํญ์ ๋ค์๊ธฐ ์์ํ๋ฉด, ๊นจ์ด์ง ์ฐฝ๋ฌธ์ฒ๋ผ ์ฌ๋๋ค์ด ํจ์์ ์ธ๋ถ์ฌํญ์ ์ ์ ๋ ์ถ๊ฐํ๋ค.
์์์ ์๋๋ก ์ฝ๋ ์ฝ๊ธฐ: ๋ด๋ ค๊ฐ๊ธฐ ๊ท์น
ํ ํจ์ ๋ค์์๋ ์ถ์ํ ์์ค
์ด ํ ๋จ๊ณ ๋ฎ์ ํจ์๊ฐ ์จ๋ค. ์ฆ, ์์์ ์๋๋ก ํ๋ก๊ทธ๋จ์ ์ฝ์ผ๋ฉด ํจ์ ์ถ์ํ ์์ค์ด ํ ๋ฒ์ ํ ๋จ๊ณ ์ฉ ๋ฎ์์ง๋ค.
Switch ๋ฌธ
switch ๋ฌธ์ ์ ์ฐจ์ ํด๋์ค์ ์จ๊ธฐ๊ณ ์ ๋๋ก ๋ฐ๋ณตํ์ง ์๋ ๋ฐฉ๋ฒ์ ์๋ค. ๋ฌผ๋ก ๋คํ์ฑpolymorphism
์ ์ด์ฉํ๋ค. page 48
์์ ์ ์ธ ์ด๋ฆ์ ์ฌ์ฉํ๋ผ!
์์ ์ ์ธ ์ด๋ฆ์ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์ ๋จธ๋ฆฟ์์์๋ ์ค๊ณ๊ฐ ๋๋ ทํด์ง๋ฏ๋ก ์ฝ๋๋ฅผ ๊ฐ์ ํ๊ธฐ ์ฌ์์ง๋ค.
includeSetupAndTeardownPages
, includeSetupPages
, includeSuiteSetupPage
, includeSetupPage
ํจ์ ์ธ์
์ด์์ ์ธ ์ธ์ ๊ฐ์๋ 0๊ฐ๋ค.
๋ง์ด ์ฐ๋ ๋จํญ ํ์
ํจ์์ ์ธ์ 1๊ฐ๋ฅผ ๋๊ธฐ๋ ์ด์ ๋ก ๊ฐ์ฅ ํํ ๊ฒฝ์ฐ๋ ๋ ๊ฐ์ง๋ค.
- ์ธ์์ ์ง๋ฌธ์ ๋์ง๋ ๊ฒฝ์ฐ
- ์ด๋ฒคํธ ํจ์
ํ๋๊ทธ ์ธ์
์ถํ๋ค.
์ดํญ ํจ์
์ขํ์ ๊ฒฝ์ฐ
์ผํญ ํจ์
์ฃผ์ถคํ๊ฒ ๋๋ค.
์ธ์ ๊ฐ์ฒด
๋ณ์๋ฅผ ๋ฌถ์ด ๋๊ธฐ๋ฉด ์ด๋ฆ์ ๋ถ์ฌ์ผ ํ๋ฏ๋ก ๊ฒฐ๊ตญ์ ๊ฐ๋ ์ ํํํ๊ฒ ๋๋ค.
์ธ์ ๋ชฉ๋ก
๋๋ก๋ ์ธ์ ๊ฐ์๊ฐ ๊ฐ๋ณ์ ์ธ ํจ์๋ ํ์ํ๋ค.
๋์ฌ์ ํค์๋
writeField(name)
assertExpectedEqualsActual(expected, actual)
๋ถ์ ํจ๊ณผ๋ฅผ ์ผ์ผํค์ง ๋ง๋ผ!
๋ถ์ ํจ๊ณผ๋ ๊ฑฐ์ง๋ง์ด๋ค.
์ถ๋ ฅ ์ธ์
appendFooter(s);
report.appendFooter();
๋ช ๋ น๊ณผ ์กฐํ๋ฅผ ๋ถ๋ฆฌํ๋ผ!
ํจ์๋ ๋ญ๊ฐ๋ฅผ ์ํํ๊ฑฐ๋ ๋ญ๊ฐ์ ๋ตํ๊ฑฐ๋ ๋ ์ค ํ๋๋ง ํด์ผ ํ๋ค.
์ค๋ฅ ์ฝ๋๋ณด๋ค ์์ธ๋ฅผ ์ฌ์ฉํ๋ผ!
try - catch
Try/Catch ๋ธ๋ก ๋ฝ์๋ด๊ธฐ
try/catch ๋ธ๋ก์ ๋ณ๋ ํจ์๋ก ๋ฝ์๋ด๋ ํธ์ด ์ข๋ค.
์ค๋ฅ ์ฒ๋ฆฌ๋ ํ ๊ฐ์ง ์์ ์ด๋ค.
ํจ์๊ฐ ํ ๊ฐ์ง ์์ ๋ง ํ๋ ๊ฒ๊ณผ ๊ฐ์ด ์ค๋ฅ ์ฒ๋ฆฌ ํจ์๋ ํ ๊ฐ์ง ์์ ์ ํ๋ค.
Error.java ์์กด์ฑ ์์
์ด๋์ ๊ฐ ์ค๋ฅ ์ฝ๋๋ฅผ ์ ์ํ๋ฉด ์์๊ณผ ๊ฐ์ด importํด ์ฌ์ฉํ๋ค.
๊ทธ๋์ ์ ์๋ ์ฝ๋ ๋ณ๊ฒฝ์ด ์ด๋ ค์์ง๋ค. ๊ทธ๋์ ๊ธฐ์กด ์ค๋ฅ ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉํ๋ค.
๋ฐ๋ณตํ์ง ๋ง๋ผ!
๋ชจ๋ ์ ์ ๊ทผ์์ด๋ค.
๊ตฌ์กฐ์ ํ๋ก๊ทธ๋๋ฐ
ํจ์๋ return๋ฌธ์ด 1๊ฐ์ฌ์ผ ํ๋ค.
ํจ์๋ฅผ ์ด๋ป๊ฒ ์ง์ฃ ?
๊ธ์ง๊ธฐ์ ๋น์ทํ๋ค.
์ด์์ ๊ธธ๊ณ ๋ณต์กํ๋ค.
๋จ์ ํ ์คํธ ์ผ์ด์ค๋ ๋ง๋ ๋ค.
์ฝ๋๋ฅผ ๋ค๋ฌ๊ณ , ํจ์๋ฅผ ๋ง๋ค๊ณ , ์ด๋ฆ์ ๋ฐ๊พธ๊ณ , ์ค๋ณต์ ์ ๊ฑฐํ๋ค. ๋ฉ์๋๋ฅผ ์ค์ด๊ณ ์์๋ฅผ ๋ฐ๊พผ๋ค. ๋๋ก๋ ์ ์ฒด ํด๋์ค๋ฅผ ์ชผ๊ฐ๊ธฐ๋ ํ๋ค.
์ด ์์ค์๋ ๋จ์ ํ ์คํธ๋ฅผ ํต๊ณผํ๋ค.
๊ฒฐ๋ก
๋๊ฐ ํ๋ก๊ทธ๋๋จธ๋ ์์คํ ์ (๊ตฌํํ ) ํ๋ก๊ทธ๋จ์ด ์๋๋ผ (ํ์ด๊ฐ) ์ด์ผ๊ธฐ๋ก ์ฌ๊ธด๋ค.
์ข ๋ ํ๋ถํ๊ณ ์ข ๋ ํํ๋ ฅ์ด ๊ฐํ ์ธ์ด๋ฅผ ๋ง๋ค์ด ์ด์ผ๊ธฐ๋ฅผ ํ์ด๊ฐ๋ค.