πŸ’»μš©λ‡½ 개발 λ…ΈνŠΈπŸ’»
article thumbnail
λ°˜μ‘ν˜•

Clean Code TIL Day 20, 21

Day 20, 21

πŸ”– 였늘 읽은 λ²”μœ„ :  10μž₯ 클래슀(p.172 ~ p.192)


πŸ˜ƒ μ±…μ—μ„œ κΈ°μ–΅ν•˜κ³  싢은 λ‚΄μš©

  • 클래슀λ₯Ό λ§Œλ“€ λ•Œ 첫번째 κ·œμΉ™μ€ 크기닀. ν΄λž˜μŠ€λŠ” μž‘μ•„μ•Ό ν•œλ‹€. 두 번째 κ·œμΉ™λ„ 크기닀. 더 μž‘μ•„μ•Ό ν•œλ‹€.(p.172)
  • 클래슀 μ„€λͺ…은 만일("if"), 그리고("and"), -(ν•˜)λ©°("or), ν•˜μ§€λ§Œ("but")을 μ‚¬μš©ν•˜μ§€ μ•Šκ³ μ„œ 25단어 λ‚΄μ™Έλ‘œ κ°€λŠ₯ν•΄μ•Ό ν•œλ‹€.(p.175)
  • 단일 μ±…μž„ 원칙은 ν΄λž˜μŠ€λ‚˜ λͺ¨λ“ˆμ„ λ³€κ²½ν•  μ΄μœ κ°€ ν•˜λ‚˜, 단 ν•˜λ‚˜λΏμ΄μ–΄μ•Ό ν•œλ‹€λŠ” 원칙이닀.(p.175)
  • 관심사λ₯Ό λΆ„λ¦¬ν•˜λŠ” μž‘μ—…μ€ ν”„λ‘œκ·Έλž¨λ§Œμ΄ μ•„λ‹ˆλΌ ν”„λ‘œκ·Έλž˜λ° ν™œλ™μ—μ„œλ„ λ§ˆμ°¬κ°€μ§€λ‘œ μ€‘μš”ν•˜λ‹€.(p.176)
  • "도ꡬ μƒμžλ₯Ό μ–΄λ–»κ²Œ κ΄€λ¦¬ν•˜κ³  싢은가? μž‘μ€ μ„œλžμ„ 많이 두고 κΈ°λŠ₯κ³Ό 이름이 λͺ…ν™•ν•œ μ»΄ν¬λ„ŒνŠΈλ₯Ό λ‚˜λˆ  λ„£κ³  싢은가? μ•„λ‹ˆλ©΄ 큰 μ„œλž λͺ‡ 개λ₯Ό 두고 λͺ¨λ‘λ₯Ό 던져 놓고 싢은가?"(p.177)
  • ν΄λž˜μŠ€λŠ” μΈμŠ€ν„΄μŠ€ λ³€μˆ˜ μˆ˜κ°€ μž‘μ•„μ•Ό ν•œλ‹€. 각 클래슀 λ©”μ„œλ“œλŠ” 클래슀 μΈμŠ€ν„΄μŠ€ λ³€μˆ˜λ₯Ό ν•˜λ‚˜ 이상 μ‚¬μš©ν•΄μ•Ό ν•œλ‹€. (p.177)
  • λͺ‡λͺ‡ ν•¨μˆ˜κ°€ λͺ‡λͺ‡ λ³€μˆ˜λ§Œ μ‚¬μš©ν•œλ‹€λ©΄ λ…μžμ μΈ 클래슀둜 뢄리해도 λ˜μ§€ μ•ŠλŠ”κ°€? λ‹Ήμ—°ν•˜λ‹€. ν΄λž˜μŠ€κ°€ 응집λ ₯을 μžƒλŠ”λ‹€λ©΄ μͺΌκ°œλΌ!(p.179)
  • OCPλž€ ν΄λž˜μŠ€λŠ” ν™•μž₯에 개방적이고 μˆ˜μ •μ— 폐쇄적이어야 ν•œλ‹€λŠ” 원칙이닀.(p.188)
  • μƒˆ κΈ°λŠ₯을 μˆ˜μ •ν•˜κ±°λ‚˜ κΈ°μ‘΄ κΈ°λŠ₯을 λ³€κ²½ν•  λ•Œ κ±΄λ“œλ¦΄ μ½”λ“œκ°€ μ΅œμ†ŒμΈ μ‹œμŠ€ν…œ ꡬ쑰가 λ°”λžŒμ§ν•˜λ‹€.(p.188)

πŸ€” μ˜€λŠ˜ 읽은 μ†Œκ°κ³Ό λ– μ˜€λ₯΄λŠ” 생각

μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ 클래슀λ₯Ό 많이 μ‚¬μš©ν•˜μ§€ μ•Šμ•„μ„œ 와닿은 뢀뢄이 λ”±νžˆ μ—†μ—ˆμ§€λ§Œ μ „λ°˜μ μœΌλ‘œ μ–΄λ–€ μ‹μœΌλ‘œ 클래슀λ₯Ό ꡬ성해야 할지 그림을 μ•Œκ²Œ λ˜μ—ˆλ‹€.

πŸ”Ž κΆκΈˆν•œ λ‚΄μš©μ΄ μžˆκ±°λ‚˜, 잘 μ΄ν•΄λ˜μ§€ μ•ŠλŠ” λ‚΄μš©

μžλ°” κΈ°μ€€ 객체지ν–₯ 클래슀 μ½”λ“œμ˜ˆμ œκ°€ λ§Žμ•„μ„œ μ½”λ“œλΆ€λΆ„μ΄ μ΄ν•΄λ˜μ§€ μ•Šμ•˜λ‹€.

μ†Œκ° 3쀄 μš”μ•½

  • ν΄λž˜μŠ€λŠ” μž‘μ•„μ•Ό ν•œλ‹€.
  • 관심사λ₯Ό λΆ„λ¦¬ν•˜λŠ” μž‘μ—…μ€ μ€‘μš”ν•˜λ‹€.
  • μƒˆ κΈ°λŠ₯을 μˆ˜μ •ν•˜κ±°λ‚˜ κΈ°μ‘΄ κΈ°λŠ₯을 λ³€κ²½ν•  λ•Œ κ±΄λ“œλ¦΄ μ½”λ“œκ°€ μ΅œμ†ŒμΈ μ‹œμŠ€ν…œ ꡬ쑰가 λ°”λžŒμ§ν•˜λ‹€.
λ°˜μ‘ν˜•
profile

πŸ’»μš©λ‡½ 개발 λ…ΈνŠΈπŸ’»

@μš©λ‡½

ν¬μŠ€νŒ…μ΄ μ’‹μ•˜λ‹€λ©΄ "μ’‹μ•„μš”β€οΈ" λ˜λŠ” "κ΅¬λ…πŸ‘πŸ»" ν•΄μ£Όμ„Έμš”!