Clean code 2μ₯
μλ―Έ μλ μ΄λ¦μ μ§λ λ°©λ²
1. μλλ₯Ό λΆλͺ
ν λ°νλ€.
- νν κ°λ¨νκ² μ μΈνλ λ³μ μ μΈ
- μ μ½λ λμ μλλ₯Ό λΆλͺ
ν λνλ΄λ λ¨μ΄λ€μ μ‘°ν©νμ¬ μ΄λ¦μ λ§λ€μ΄μ€λ€.
2. κ·Έλ¦λ μ 보λ₯Ό νΌνλ€.
- λ¨μ΄μ μ½μ΄λ₯Ό λ§μλλ‘ μ¬μ©νμ§ μκ³ νΌμ©μ μμκ° μλμ§ νμ
μ νλ€.
- ListλΌλ νΉμν λ¨μ΄λ μ€μ λ‘ λ¦¬μ€νΈ λ³μκ° μλλ©΄ μ¬μ©μ νμ§ μλλ€.
- μλ‘ ν‘μ¬ν μ΄λ¦μ μ¬μ©νμ§ μλλ€.
- μ μ¬ν κ°λ
μ μ μ¬ν νκΈ°λ²μΌλ‘.. νμ§λ§ μΌκ΄μ±μ μ μ§νλ©΄μ νκΈ°νλ€.
3. μλ―Έμκ² κ΅¬λΆ νλ€.
- λ³μλ₯Ό λ°κΏμΌ ν κΉ¨ λ¨μν λ€μ μ«μλ₯Ό λΆμ΄λ λ°©λ²μ μ¬μ©νμ§ μλλ€.(a1,a2,a3..)=> λ³μκ° λ¬λΌμ§λ©΄ μλ―Έλ λ¬λΌμ ΈμΌ νλ€.
- pinData, pinInfo μ κ°μ΄ κ°μ μλ―Έκ°μ§λ§ λ€λ₯Έ λ³μλ μ¬μ©νμ§ μλλ€. (pins κ°μ²΄μ pinsObject κ°μ²΄ λ± λ©μλλ€λ ν¬ν¨)
- κ³ λ‘ μΈλ°μμ΄ λ³Όνμν λ¨μ΄λ μ΄μ΄ λΆμ΄μ§ λ§μ. λΆμ¬μ μλ―Έκ° λ¬λΌμ§λ€λ©΄ μμΈ
4. λ°μνκΈ° μ¬μ΄ μ΄λ¦μ μ¬μ©νλΌ.
- μ½λ©μ μ¬ν νλμ΄λ€.
- κ³ λ‘ λ³μ μ΄λ¦μ λ€λ₯Έ μ¬λκ³Ό ν¨κΌ κ΅λ₯ν λ μ½κΈ° μ’μμΌ νλ€.
- μΈλ°μμ΄ μ¬λ¬ λ¨μ΄λ€μ μ€μ΄κ±°λ μ½μλ₯Ό μ΄μ΄ λΆμ΄μ§ μκ³ μλ―Έλ₯Ό λνλ΄λ λ¨μ΄λ€μ μ½κΈ° μ’κ² λΆμ¬μΌ νλ€.
5. κ²μνκΈ° μ¬μ΄ μ΄λ¦μ μ¬μ©ν΄λΌ.
- λ§μ½ μ΄λ€ νλ‘κ·Έλ¨μμ μ΅λ λμ΄λ₯Ό 40μΌλ‘ μ ν΄ κ·Έλ₯ μ½λμ 40μΌλ‘ λ°λ‘ λ£μλ€λ©΄?
- λμ€μ μ΅λ λμ΄ μμ μ μν΄ 40μ κ²μνλλ° 40μ΄λΌλ μ«μκ° λ§λ€λ©΄??
- μ΄λ₯Ό λ°©μ§νκΈ° μν΄ κ²μμ΄ μ½λλ‘ λ€μκ³Ό κ°μ΄ λ³μλ₯Ό μ μΈν΄μ£Όλ©΄ κ²μνκΈ° μ’μΌλ©° μλ―Έ νμ
μ΄ μ½λ€.
6. μΈμ½λ©μ νΌν΄λΌ.
- μ’ μ΄ν΄νκΈ° νλ λΆλΆμ΄μλ€. μλ λ°©μμ²λΌ λ³μμ΄λ¦μ νμ
μ μΈμ½λ©ν νμκ° μλ€λκ² κ°λ€.
- λν λ©€λ² λ³μμ μ λμ΄λ₯Ό λΆμΌ νμκ° μλ€λκ² κ°λ€.
- λν μΈν°νμ΄μ€ ν΄λμ€μ ꡬν ν΄λμ€λ ~FactoryImpl, ~Factoryλ‘ μΈμ½λ©μ ν΄μ£Όλκ² μ’μλκ° μλ€.
7. κΈ°μ΅λ ₯μ μμ‘΄νμ§ λ§μμΌ λλ€.
- μμ μ΄ μλ μ΄λ¦μΌλ‘ μκΈ°λ§ μλ λ¨μ΄λ₯Ό λ§λ€μ΄ μ¬μ©νμ§ μλλ€.
8. ν΄λμ€ μ΄λ¦
- ν΄λμ€ μ΄λ¦μ λͺ
μ¬λ λͺ
μ¬κ΅¬λ‘ Manager,data,info κ°μ λ¨μ΄λ νΌν΄μ€λ€.
9. ν΄λμ€ μ΄λ¦
- λ©μλ μ΄λ¦μ λμ¬λ λμ¬κ΅¬λ‘ λ©μλ μ΄λ¦μ μΈμλ₯Ό μ€λͺ
νλκ² μ’λ€.
10. κΈ°λ°ν μ΄λ¦μ νΌν΄λΌ.
- λ§μ½ λλ΄κ³Ό κ°μ΄ κΈ°λ°ν μ΄λ¦μΌλ‘ λ§λ λ€λ©΄ κ·Έ λλ΄μ΄ κΈ°μ΅ν λλ§ κ·Έ μ΄λ¦μ μλ―Έλ₯Ό κΈ°μ΅ν μ μκ² λλ€.
- μλλ₯Ό λΆλͺ
νκ³ μμ§νκ² μ§μ§νκ² νννκΈ°
11. νκ°λ
μ νλ¨μ΄λ₯Ό μ¬μ©νκΈ°.
- λ§μ½ controllerλΌλ λ¨μ΄λ₯Ό μ¬μ©νλλ° κ°μ λ¬Έλ§₯μ μλ―Έμ manager,driver κ°μ λ¨μ΄λ₯Ό κ΅³μ΄ μ¬μ©ν νμκ° μλ€.
- controllerλ₯Ό μ¬μ©νλ€λ©΄ μ μΌκ΄μ± μκ² controllerλ§ μ¬μ©νλ€.
12. λ§μ₯λμ νμ§ μλλ€.
- μμ νκ°λ
μ νλ¨μ΄λ§ μ¬μ©νλ€ν΄μ λ§₯λ½μ΄ λ€λ₯Έλ° 무쑰건 ν λ¨μ΄λ§ μΌκ΄μ±μκ² μ¬μ©ν νμλ μλ€.
- μ΄ λ΄μ©ν μ΄μ§ νΌλ λ μμκ° μλκ² κ°λ€. λ§μ΄ μ΄λ¦μ λ§λ€μ΄ 보면μ μ°¨μ°¨ μμμΌ κ² λ€.
13. ν΄λ² μμ΅μμ κ°μ Έμ¨ μ΄λ¦μ μ¬μ©νλ€.
- μ½λλ₯Ό μ½λ μ¬λμ μΈμ λ νλ‘κ·Έλλ¨Έμ΄κΈ° λλ¬Έμ μκ³ λ¦¬μ¦ μ΄λ¦, ν¨ν΄μ΄λ¦λ±μ μ¬μ©ν΄λ λλ€.
- λ¬Έμ μμμμ μ΄λ¦μ κ°μ Έμ¨λ€λ©΄ λμ€μ λͺ¨λ₯΄λ©΄ ν΄λΌμ΄μΈνΈμκ² λ¬Όμ΄λ΄μΌ νλ€.
14. λ¬Έμ μμμμ κ°μ Έμ¨ μ΄λ¦μ μ¬μ©νλΌ.
- μ μ ν νλ‘κ·Έλλ¨Έ μ©μ΄κ° μκ±°λ λ¬Έμ μμκ³Ό κ΄λ ¨κΉμ μ½λλΌλ©΄ ν΄λ² μμ λμ λ¬Έμ μμμμ λ¨μ΄λ₯Ό κ°μ Έμ μ¬μ©νλ€.
15. μλ―Έμλ λ§₯λ½μ μΆκ°ν΄μΌ νλ€.
- μλ₯Όλ€μ΄ μ£Όμμ κ΄λ ¨λ κ²μ΄λΌλ©΄ κ·Έ μλ―Έλ₯Ό λΆλͺ
ν νκΈ°μν΄ μμ Addrλ₯Ό λΆμ΄λκ² μ’λ€.
16. λΆνμν λ§₯λ½μ μμ λΌ.
- μμ μλ―Έμλ λ§₯λ½μ μΆκ°ν΄μΌ νλ€ ν΄μ μ€λ³΅μ μΈ μλ―Έμ λ§₯λ½λ€μ λ£μ νμλ μλ€.
2μ₯μ μ½κ³ μ½λμ κ°λ
μ±μ μν΄ μλ―Έμλ μ΄λ¦μ΄ μ€μνλ€λ κ²λ μλ―Έμλ μ΄λ¦ μμ±λ²μ λ°°μ°κ² λμλ€.
λ΄μ©μ€μ μ΄λ κ² ν΄μΌνμ§λ§ λ무 μ΄λ κ² νλ©΄ μλλ€ λ± μΌμ’
μ μ μ λ§λ€μ΄ μ€κ²κ°λ€.
μ΄ λ΄μ©λ€μ μ§ν€κΈ° μν΄μ λ§μ μ°μ΅κ³Ό κ³ λ―Όκ³Ό μλ¨μ΄ 곡λΆκ° νμνκ² κ°λ€.
맨μλ‘π