<Clean Code> Day 6

์ดํ˜„์ •ยท2022๋…„ 1์›” 25์ผ
0

Day 6

๐Ÿ”– ์˜ค๋Š˜ ์ฝ์€ ๋ฒ”์œ„: 3์žฅ ํ•จ์ˆ˜(p.40~54)

๐Ÿ˜ƒ ์ฑ…์—์„œ ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ์„ ์จ๋ณด์„ธ์š”.

(p.40) ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ดˆ์ฐฝ๊ธฐ์—๋Š” ์‹œ์Šคํ…œ์„ ๋ฃจํ‹ด๊ณผ ํ•˜์œ„ ๋ฃจํ‹ด์œผ๋กœ ๋‚˜๋ˆด๋‹ค. ํฌํŠธ๋ž€๊ณผ PL/1 ์‹œ์ ˆ์—๋Š” ํ”„๋กœ๊ทธ๋žจ์„, ํ•˜์œ„ ํ”„๋กœ๊ทธ๋žจ, ํ•จ์ˆ˜๋กœ ๋‚˜๋ˆด๋‹ค. ์ง€๊ธˆ์€ ํ•จ์ˆ˜๋งŒ ์‚ด์•„๋‚จ์•˜๋‹ค. ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์ด๋“  ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋‹จ์œ„๊ฐ€ ํ•จ์ˆ˜์ด๋‹ค.

(p.42) ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ์ฒซ์งธ ๊ทœ์น™์€ '์ž‘๊ฒŒ!'๋‹ค. ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๋‘˜์งธ ๊ทœ์น™์€ '๋” ์ž‘๊ฒŒ!'๋‹ค.

(p.44) ํ•จ์ˆ˜๋Š” ํ•œ ๊ฐ€์ง€๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ ํ•œ ๊ฐ€์ง€๋ฅผ ์ž˜ ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ ํ•œ ๊ฐ€์ง€๋งŒ์„ ํ•ด์•ผํ•œ๋‹ค.

(p.46) ํ•จ์ˆ˜ ํ•˜๋‚˜์— ์ถ”์ƒ ๊ฐœ๋…์€ ํ•˜๋‚˜ ์ด์ƒ์ด ๋˜๋ฉด ์•ˆ๋œ๋‹ค. getHTML()์€ ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ์•„์ฃผ ๋†’๋‹ค. ๋ฐ˜๋ฉด String pagePathName = PathParseer.render(pagepath);๋Š” ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ์ค‘๊ฐ„์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  .append("\n")์™€ ๊ฐ™์€ ์ฝ”๋“œ๋Š” ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ์•„์ฃผ ๋‚ฎ๋‹ค.

(p.46) ์ฝ”๋“œ๋Š” ์œ„์—์„œ ์•„๋ž˜๋กœ ์ด์•ผ๊ธฐ์ฒ˜๋Ÿผ ์ฝํ˜€์•ผ ์ข‹๋‹ค.

(p.49) ๋‚˜๋Š” private ํ•จ์ˆ˜์—๋„ isTestable, includesetupAndTeardownPages ๋“ฑ๊ณผ ๊ฐ™์ด ์„œ์ˆ ์ ์ธ ์ด๋ฆ„์„ ์ง€์—ˆ๋‹ค. ์ข‹์€ ์ด๋ฆ„์ด ์ฃผ๋Š” ๊ฐ€์น˜๋Š” ์•„๋ฌด๋ฆฌ ๊ฐ•์กฐํ•ด๋„ ์ง€๋‚˜์น˜์ง€ ์•Š๋Š”๋‹ค.

(p.50) ํ•จ์ˆ˜์—์„œ ์ด์ƒ์ ์ธ ์ธ์ˆ˜ ๊ฐœ์ˆ˜๋Š” 0๊ฐœ(๋ฌดํ•ญ)๋‹ค. ๋‹ค์Œ์€ 1๊ฐœ(๋‹จํ•ญ)์ด๊ณ , ๋‹ค์Œ์€ 2๊ฐœ(์ดํ•ญ)๋‹ค. 3๊ฐœ(์‚ผํ•ญ)๋Š” ๊ฐ€๋Šฅํ•œ ํ”ผํ•˜๋Š” ํŽธ์ด ์ข‹๋‹ค. 4๊ฐœ ์ด์ƒ(๋‹คํ•ญ)์€ ํŠน๋ณ„ํ•œ ์ด์œ ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ํŠน๋ณ„ํ•œ ์ด์œ ๊ฐ€ ์žˆ์–ด๋„ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋œ๋‹ค.

(p.53) ์ธ์ˆ˜๊ฐ€ 2-3๊ฐœ ํ•„์š”ํ•˜๋‹ค๋ฉด ์ผ๋ถ€๋ฅผ ๋…์ž์ ์ธ ํด๋ž˜์Šค ๋ณ€์ˆ˜๋กœ ์„ ์–ธํ•  ๊ฐ€๋Šฅ์„ฑ์„ ์งš์–ด๋ณธ๋‹ค.

(p.54) ๋‹จํ•ญ ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜์™€ ์ธ์ˆ˜๊ฐ€ ๋™์‚ฌ/๋ช…์‚ฌ ์Œ์„ ์ด๋ค„์•ผ ํ•œ๋‹ค. ex) writeField(name)

(p.54) ํ•จ์ˆ˜ ์ด๋ฆ„์— ํ‚ค์›Œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ํ˜•์‹์ด๋‹ค. ์ฆ‰, ํ•จ์ˆ˜ ์ด๋ฆ„์— ์ธ์ˆ˜ ์ด๋ฆ„์„ ๋„ฃ๋Š”๋‹ค. ex) assertEquals -> assertExpectedEqualsActual(expected, actual)

๐Ÿค” ์˜ค๋Š˜ ์ฝ์€ ์†Œ๊ฐ์€? ๋– ์˜ค๋ฅด๋Š” ์ƒ๊ฐ์„ ๊ฐ€๋ณ๊ฒŒ ์ ์–ด๋ณด์„ธ์š”

์•„์ง ๋‹ค์–‘ํ•œ ํ•จ์ˆ˜๋ฅผ ๋‹ค๋ค„๋ณด์ง€ ์•Š์•„์„œ ์ต์ˆ™์น˜ ์•Š์•„์„œ ๊ทธ๋Ÿฐ์ง€ ์•ž ์žฅ์˜ ํด๋ž˜์Šค๋ช…๋งŒํผ ์ž˜ ์™€๋‹ฟ์ง€๋Š” ์•Š์•˜๋‹ค. ์ผ๋‹จ ์ˆ™์ง€ํ•ด๋‘๊ณ  ์•ž์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ์“ธ ๋•Œ๋งˆ๋‹ค '์•„, ํด๋ฆฐ ์ฝ”๋“œ์—์„œ ์ด๋ ‡๊ฒŒ ์“ฐ๋žฌ์ง€!'ํ•˜๊ณ  ์ƒ๊ธฐ์‹œํ‚ฌ ์ˆ˜ ์žˆ์œผ๋ฉด ํ•œ๋‹ค.

๐Ÿ”Ž ๊ถ๊ธˆํ•œ ๋‚ด์šฉ์ด ์žˆ๊ฑฐ๋‚˜, ์ž˜ ์ดํ•ด๋˜์ง€ ์•Š๋Š” ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ์ ์–ด๋ณด์„ธ์š”.

- switch ๋ฌธ: ์ผ๋ฐ˜์ ์œผ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์กฐ๊ฑด๋ฌธ์€ if ๋ฌธ์ด๋‹ค. switch ๋ฌธ๋„ if ์™€ ๊ฑฐ์˜ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์กฐ๊ฑด๋ฌธ์ด๋‹ค. switch ๋ฌธ์˜ ๊ฒฝ์šฐ if ๋ฌธ๊ณผ ๋‹ฌ๋ฆฌ ๋ชจ๋“  ์กฐ๊ฑด์„ ํ™•์ธํ•˜์ง€ ์•Š๊ณ , ๋งž๋Š” ๊ตฌ๋ฌธ์„ ๋งŒ๋‚˜๋ฉด break ๋ฅผ ํ†ตํ•ด ์ฆ‰์‹œ ๋ฃจํ”„์—์„œ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. (์ถœ์ฒ˜)

์†Œ๊ฐ 3์ค„ ์š”์•ฝ

  • ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ์ฒซ์งธ ๊ทœ์น™์€ '์ž‘๊ฒŒ!'๋‹ค. ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๋‘˜์งธ ๊ทœ์น™์€ '๋” ์ž‘๊ฒŒ!'๋‹ค.
  • ํ•จ์ˆ˜๋Š” ํ•œ ๊ฐ€์ง€๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ ํ•œ ๊ฐ€์ง€๋ฅผ ์ž˜ ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ ํ•œ ๊ฐ€์ง€๋งŒ์„ ํ•ด์•ผํ•œ๋‹ค.
  • ์ฝ”๋“œ๋Š” ์œ„์—์„œ ์•„๋ž˜๋กœ ์ด์•ผ๊ธฐ์ฒ˜๋Ÿผ ์ฝํ˜€์•ผ ์ข‹๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€