Clean Code 2μž₯

Clean Code 독후감

Posted by Bangjinhyuk on August 26, 2021 · 4 mins read

Clean code 2μž₯

의미 μžˆλŠ” 이름을 μ§“λŠ” 방법

1. μ˜λ„λ₯Ό λΆ„λͺ…νžˆ λ°νžŒλ‹€.

  • ν”νžˆ κ°„λ‹¨ν•˜κ²Œ μ„ μ–Έν•˜λŠ” λ³€μˆ˜ μ„ μ–Έ
     int d;
     int tmp = 0;
    
  • μœ„ μ½”λ“œ λŒ€μ‹  μ˜λ„λ₯Ό λΆ„λͺ…νžˆ λ‚˜νƒ€λ‚΄λŠ” 단어듀을 μ‘°ν•©ν•˜μ—¬ 이름을 λ§Œλ“€μ–΄μ€€λ‹€.

2. κ·Έλ¦‡λœ 정보λ₯Ό ν”Όν•œλ‹€.

  • λ‹¨μ–΄μ˜ μ•½μ–΄λ₯Ό λ§ˆμŒλŒ€λ‘œ μ‚¬μš©ν•˜μ§€ μ•Šκ³  혼용의 μš”μ†Œκ°€ μžˆλŠ”μ§€ νŒŒμ•…μ„ ν•œλ‹€.
  • ListλΌλŠ” νŠΉμˆ˜ν•œ λ‹¨μ–΄λŠ” μ‹€μ œλ‘œ 리슀트 λ³€μˆ˜κ°€ μ•„λ‹ˆλ©΄ μ‚¬μš©μ„ ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • μ„œλ‘œ ν‘μ‚¬ν•œ 이름을 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • μœ μ‚¬ν•œ κ°œλ…μ€ μœ μ‚¬ν•œ ν‘œκΈ°λ²•μœΌλ‘œ.. ν•˜μ§€λ§Œ 일관성은 μœ μ§€ν•˜λ©΄μ„œ ν‘œκΈ°ν•œλ‹€.

3. 의미있게 ꡬ뢄 ν•œλ‹€.

  • λ³€μˆ˜λ₯Ό λ°”κΏ”μ•Ό ν• κΉ¨ λ‹¨μˆœνžˆ 뒀에 숫자λ₯Ό λΆ™μ΄λŠ” 방법은 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.(a1,a2,a3..)=> λ³€μˆ˜κ°€ 달라지면 μ˜λ―Έλ„ 달라져야 ν•œλ‹€.
  • pinData, pinInfo 와 같이 같은 μ˜λ―Έκ°™μ§€λ§Œ λ‹€λ₯Έ λ³€μˆ˜λŠ” μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€. (pins 객체와 pinsObject 객체 λ“± λ©”μ„œλ“œλ“€λ„ 포함)
  • 고둜 쓸데없이 λ³Όν•„μš”ν•œ λ‹¨μ–΄λŠ” 이어 뢙이지 말자. λΆ™μ—¬μ„œ μ˜λ―Έκ°€ 달라진닀면 μ˜ˆμ™Έ

4. λ°œμŒν•˜κΈ° μ‰¬μš΄ 이름을 μ‚¬μš©ν•˜λΌ.

  • 코딩은 μ‚¬νšŒ ν™œλ™μ΄λ‹€.
  • 고둜 λ³€μˆ˜ 이름은 λ‹€λ₯Έ μ‚¬λžŒκ³Ό 함꼐 ꡐλ₯˜ν• λ•Œ 읽기 μ’‹μ•„μ•Ό ν•œλ‹€.
  • 쓸데없이 μ—¬λŸ¬ 단어듀을 μ€„μ΄κ±°λ‚˜ μ•½μžλ₯Ό 이어 뢙이지 μ•Šκ³  의미λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 단어듀을 읽기 μ’‹κ²Œ λΆ™μ—¬μ•Ό ν•œλ‹€.

5. κ²€μƒ‰ν•˜κΈ° μ‰¬μš΄ 이름을 μ‚¬μš©ν•΄λΌ.

  • λ§Œμ•½ μ–΄λ–€ ν”„λ‘œκ·Έλž¨μ—μ„œ μ΅œλŒ€ λ‚˜μ΄λ₯Ό 40으둜 μ •ν•΄ κ·Έλƒ₯ μ½”λ“œμ— 40으둜 λ°”λ‘œ λ„£μ—ˆλ‹€λ©΄?
  • λ‚˜μ€‘μ— μ΅œλŒ€ λ‚˜μ΄ μˆ˜μ •μ„ μœ„ν•΄ 40을 κ²€μƒ‰ν–ˆλŠ”λ° 40μ΄λΌλŠ” μˆ«μžκ°€ λ§Žλ‹€λ©΄??
  • 이λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ 검색이 쉽도둝 λ‹€μŒκ³Ό 같이 λ³€μˆ˜λ₯Ό μ„ μ–Έν•΄μ£Όλ©΄ κ²€μƒ‰ν•˜κΈ° μ’‹μœΌλ©° 의미 νŒŒμ•…μ΄ 쉽닀.
     const int MAX_AGE = 40;
    

6. 인코딩을 피해라.

  • μ’€ μ΄ν•΄ν•˜κΈ° νž˜λ“  λΆ€λΆ„μ΄μ—ˆλ‹€. μ˜›λ‚  λ°©μ‹μ²˜λŸΌ λ³€μˆ˜μ΄λ¦„μ— νƒ€μž…μ„ 인코딩할 ν•„μš”κ°€ μ—†λ‹€λŠ”κ²ƒ κ°™λ‹€.
  • λ˜ν•œ 멀버 λ³€μˆ˜μ— 접두어λ₯Ό 뢙일 ν•„μš”κ°€ μ—†λ‹€λŠ”κ²ƒ κ°™λ‹€.
  • λ˜ν•œ μΈν„°νŽ˜μ΄μŠ€ ν΄λž˜μŠ€μ™€ κ΅¬ν˜„ ν΄λž˜μŠ€λŠ” ~FactoryImpl, ~Factory둜 인코딩을 ν•΄μ£ΌλŠ”κ²Œ μ’‹μ„λ•Œκ°€ μžˆλ‹€.

7. κΈ°μ–΅λ ₯에 μ˜μ‘΄ν•˜μ§€ 말아야 λœλ‹€.

  • μžμ‹ μ΄ μ•„λŠ” μ΄λ¦„μœΌλ‘œ 자기만 μ•„λŠ” 단어λ₯Ό λ§Œλ“€μ–΄ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.

8. 클래슀 이름

  • 클래슀 이름은 λͺ…μ‚¬λ‚˜ λͺ…μ‚¬κ΅¬λ‘œ Manager,data,info 같은 λ‹¨μ–΄λŠ” ν”Όν•΄μ€€λ‹€.

9. 클래슀 이름

  • λ©”μ„œλ“œ 이름은 λ™μ‚¬λ‚˜ λ™μ‚¬κ΅¬λ‘œ λ©”μ„œλ“œ 이름은 인자λ₯Ό μ„€λͺ…ν•˜λŠ”κ²Œ μ’‹λ‹€.

10. κΈ°λ°œν•œ 이름은 피해라.

  • λ§Œμ•½ 농담과 같이 κΈ°λ°œν•œ μ΄λ¦„μœΌλ‘œ λ§Œλ“ λ‹€λ©΄ κ·Έ 농담이 κΈ°μ–΅ν• λ•Œλ§Œ κ·Έ μ΄λ¦„μ˜ 의미λ₯Ό κΈ°μ–΅ν• μˆ˜ 있게 λœλ‹€.
  • μ˜λ„λ₯Ό λΆ„λͺ…ν•˜κ³  μ†”μ§ν•˜κ²Œ μ§„μ§€ν•˜κ²Œ ν‘œν˜„ν•˜κΈ°

11. ν•œκ°œλ…μ— ν•œλ‹¨μ–΄λ₯Ό μ‚¬μš©ν•˜κΈ°.

  • λ§Œμ•½ controllerλΌλŠ” 단어λ₯Ό μ‚¬μš©ν•˜λŠ”λ° 같은 λ¬Έλ§₯상 의미의 manager,driver 같은 단어λ₯Ό ꡳ이 μ‚¬μš©ν•  ν•„μš”κ°€ μ—†λ‹€.
  • controllerλ₯Ό μ‚¬μš©ν–ˆλ‹€λ©΄ μ­‰ 일관성 있게 controller만 μ‚¬μš©ν•œλ‹€.

12. 말μž₯λ‚œμ„ ν•˜μ§€ μ•ŠλŠ”λ‹€.

  • μœ„μ— ν•œκ°œλ…μ— ν•œλ‹¨μ–΄λ§Œ μ‚¬μš©ν•œλ‹€ν•΄μ„œ λ§₯락이 λ‹€λ₯Έλ° 무쑰건 ν•œ λ‹¨μ–΄λ§Œ μΌκ΄€μ„±μžˆκ²Œ μ‚¬μš©ν•  ν•„μš”λŠ” μ—†λ‹€.
  • 이 λ‚΄μš©νžˆ 살짝 ν˜Όλ™ 될 μš”μ†Œκ°€ μžˆλŠ”κ²ƒ κ°™λ‹€. 많이 이름을 λ§Œλ“€μ–΄ λ³΄λ©΄μ„œ μ°¨μ°¨ μ•Œμ•„μ•Ό κ² λ‹€.

13. 해법 μ˜μ–΅μ—μ„œ κ°€μ Έμ˜¨ 이름을 μ‚¬μš©ν•œλ‹€.

  • μ½”λ“œλ₯Ό μ½λŠ” μ‚¬λžŒμ€ μ–Έμ œλ‚˜ ν”„λ‘œκ·Έλž˜λ¨Έμ΄κΈ° λ•Œλ¬Έμ— μ•Œκ³ λ¦¬μ¦˜ 이름, νŒ¨ν„΄μ΄λ¦„λ“±μ„ μ‚¬μš©ν•΄λ„ λœλ‹€.
  • 문제 μ˜μ—­μ—μ„œ 이름을 κ°€μ Έμ˜¨λ‹€λ©΄ λ‚˜μ€‘μ— λͺ¨λ₯΄λ©΄ ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ 물어봐야 ν•œλ‹€.

14. 문제 μ˜μ—­μ—μ„œ κ°€μ Έμ˜¨ 이름을 μ‚¬μš©ν•˜λΌ.

  • μ μ ˆν•œ ν”„λ‘œκ·Έλž˜λ¨Έ μš©μ–΄κ°€ μ—†κ±°λ‹ˆ 문제 μ˜μ—­κ³Ό κ΄€λ ¨κΉŠμ€ μ½”λ“œλΌλ©΄ 해법 μ˜μ—­ λŒ€μ‹  문제 μ˜μ—­μ—μ„œ 단어λ₯Ό 가져와 μ‚¬μš©ν•œλ‹€.

15. μ˜λ―ΈμžˆλŠ” λ§₯락을 μΆ”κ°€ν•΄μ•Ό ν•œλ‹€.

  • 예λ₯Όλ“€μ–΄ μ£Όμ†Œμ™€ κ΄€λ ¨λœ 것이라면 κ·Έ 의미λ₯Ό λΆ„λͺ…νžˆ ν•˜κΈ°μœ„ν•΄ μ•žμ— Addrλ₯Ό λΆ™μ΄λŠ”κ²Œ μ’‹λ‹€.

16. λΆˆν•„μš”ν•œ λ§₯락을 없애라.

  • μœ„μ— μ˜λ―ΈμžˆλŠ” λ§₯락을 μΆ”κ°€ν•΄μ•Ό ν•œλ‹€ ν•΄μ„œ 쀑볡적인 의미의 λ§₯락듀을 넣을 ν•„μš”λŠ” μ—†λ‹€.

2μž₯을 읽고 μ½”λ“œμ˜ 가독성을 μœ„ν•΄ μ˜λ―ΈμžˆλŠ” 이름이 μ€‘μš”ν•˜λ‹€λŠ” 것도 μ˜λ―ΈμžˆλŠ” 이름 μž‘μ„±λ²•μ„ 배우게 λ˜μ—ˆλ‹€. λ‚΄μš©μ€‘μ— μ΄λ ‡κ²Œ ν•΄μ•Όν•˜μ§€λ§Œ λ„ˆλ¬΄ μ΄λ ‡κ²Œ ν•˜λ©΄ μ•ˆλœλ‹€ λ“± μΌμ’…μ˜ 선을 λ§Œλ“€μ–΄ 쀀것같닀. 이 λ‚΄μš©λ“€μ„ 지킀기 μœ„ν•΄μ„œ λ§Žμ€ μ—°μŠ΅κ³Ό κ³ λ―Όκ³Ό μ˜λ‹¨μ–΄ 곡뢀가 ν•„μš”ν•œκ²ƒ κ°™λ‹€.

λ§¨μœ„λ‘œπŸ‘†