Clean code 3μ₯
ν¨μ
1. μκ² λ§λ€μ΄λΌ.
- ν¨μλ μμμλ‘ μ’λ€. μ΄ μ±
μλ 20μ€λ κΈΈλ€κ³ λ§νλ€. νμ¬ κ°λ°μ€μΈ νλ‘μ νΈμμ μ€μ κΈ°λ₯ ν¨μκ° 160μ€ μ λμ΄λ€β¦
- ifλ¬Έ, elseλ¬Έ, while λ¬Έμ λ€μ΄κ°λ λΈλ‘μ νμ€μ΄μ΄μΌ νλ€. κ·Έ νμ€μ λ€μ λκ° ν¨μλ₯Ό νΈμΆνλ€.
2. νκ°μ§λ§ ν΄λΌ.
- ν¨μλ νκ°μ§λ₯Ό ν΄μΌ νλ€. κ·Έ νκ°μ§λ₯Ό μν΄μΌ νλ€. κ·Έ ν κ°μ§λ§μ ν΄μΌνλ€.
3. ν¨μ λΉ μΆμν μμ€μ νλλ‘.
- ν ν¨μ λ΄μ μΆμν μμ€μ μμΌλ©΄ μ½λλ₯Ό μ½λ μ¬λμ΄ ν·κ°λ¦°λ€.
- λ΄λ €κ°κΈ° κ·μΉ: μμμ μλλ‘ μ΄μΌκΈ°μ²λΌ μ½νλ λ°©μ -> μμμ μλλ‘ λ΄λ €κ°μλ‘ ν¨μ μΆμν μμ€μ΄ νλ¨κ³μ© λ΄λ €κ°λ€.
4. Switch λ¬Έ
- μ½κ³ μ΄ν΄νκΈ° μ΄λ €μ λ λΆλΆμ΄λ€.
- switch λ¬Έμ μΆμ ν©ν 리μ μ¨κΈ°λ©΄ λλ€λ λ»μ΄λ€. μΆμ ν΄λμ€λ₯Ό λ§λ€μ΄ ν¨μλ₯Ό μμ±νμ¬ μΈν°νμ΄μ€λ₯Ό ν΅ν΄ νΈμΆλλ κ³Όμ μ΄λ€.
5. μμ μ μΈ μ΄λ¦μ μ¬μ©νλΌ.
- ν¨μ μ΄λ¦μ ν¨μκ° νλ μΌμ λ μ ννν μ μκ² λ§λ€μ΄λΌ.
- μ΄λ¦μ λΆμΌλλ μΌκ΄μ±λ μ€μνλ€.
6. ν¨μ μΈμ
- μ΄μμ μΈ μΈμλ 0κ°μ΄λ€. μΈμλ μ μμλ‘ μ’λ€.
- λ¨ν νμ : μΈμμ μ§λ¬Έμ λμ§λ κ²½μ°, μΈμλ₯Ό λκ°λ‘ λ³νν΄ κ²°κ³Όλ₯Ό λ°ννλ κ²½μ°, λ κ²½μ°λ₯Ό μ μΈνκ³ μ¬μ©μ κ°κΈμ νΌνλ€.
- νλκ·Έ μΈμ: ν¨μλ‘ bool κ°μ λκΈ°λ νμ, μ¬μ©νμ§ λ§μ
- μ΄νν¨μ: μΈμκ° λ¬΄μ‘°κ±΄ λκ°μ¬μΌ νλ κ²½μ°λ₯Ό μ μΈνκ³ λ¨νν¨μλ‘ λ°κΎΈκ³ μ λ
Έλ ₯μ ν΄μΌνλ€.
- μΌνν¨μ: μΌνν¨μλ λ³Όλλ§λ€ μ΄ν΄νκΈ° μ¬λ ΅λ€. κ·Έλ¬λ―λ‘ μ λ§λ‘ νμν λλ§ μ°μ
- μΈμ κ°μ²΄: κ°μ²΄λ₯Ό μμ±νμ¬ μΈμλ₯Ό μ€μ΄λ λ°©μλ μ’λ€. κ°μ²΄λ₯Ό μμ±νλκ² μμ²΄κ° κ°λ
μ μ€λͺ
νλκ²κ³Ό κ°κΈ° λλ¬Έμ΄λ€.
- λμ¬μ ν€μλ: λ¨ν ν¨μλ ν¨μμ μΈμκ° λμ¬/ λͺ
μ¬μμ μ΄λ€μΌ νλ€. ex) writeField(name), λ€ν ν¨μλ€μ ν¨μ μ΄λ¦μ μΈμλ€μ ν€μλλ₯Ό λ£μ΄μ£Όλ©΄ μμλ₯Ό κΈ°μ΅μν΄λ λλ―λ‘ μ’λ€.
7. λΆμ ν¨κ³Όλ₯Ό μΌμΌν€μ§ λ§μλΌ.
- ν¨μ μ΄λ¦μΌλ‘ μμ μλ κΈ°λ₯λ€ μ΄μΈμ μμ κΈ°λ₯μ΄λΌλ ν¬ν¨λμ§ μμμΌ νλ€.
- μλ₯Όλ€μ΄ λΉλ°λ²νΈ νμΈμ΄λΌλ ν¨μμμ μΈμ
μ μ΄κΈ°ν νλ κΈ°λ₯μ λ£μ§ μλκ²μ΄ μ’λ€. μμν μ μκΈ° λλ¬Έμ.
8. λͺ
λ Ήκ³Ό μ‘°νλ₯Ό λΆλ¦¬νλΌ.
- ν¨μλ λκ°λ₯Ό μννκ±°λ λκ°μ λ΅νκ±°λ λμ€ νλλ§ ν΄μΌνλ€.
9. μ€λ₯μ½λ 보λ€λ μμΈλ₯Ό μ¬μ©νμ.
- μ΄λ ν ν¨μμμ μ€λ₯ μ½λλ₯Ό 리ν΄νλκ²λ³΄λ€ μμΈ μ²λ¦¬λ₯Ό ν΅ν΄ μ²λ¦¬ νλκ²μ΄ κΉλνλ€.
- νμ§λ§ ν¨μμ κ·Έλ₯ λ£μΌλ©΄ μ½λμ νΌλμ΄ μΌκΈ° λ μ μκΈ°λλ¬Έμ try/catchλ¬Έμ λ°λ‘ ν¨μλ‘ λΉΌλκ²μ΄ μ’λ€. ->μ€λ₯ μ²λ¦¬λ νκ°μ§ μμ
μ μνλ€.
10. λ°λ³΅νμ§ λ§μλΌ.
- λ°λ³΅λλ μκ³ λ¦¬μ¦μ μ€μΈλ€. μκ³ λ¦¬μ¦μ΄ λ°λλ©΄ λͺ¨λ μ½λλ₯Ό μμ ν΄μΌ νλ€.
11. ꡬ쑰μ νλ‘κ·Έλλ°
- μμ ν¨μμμ return,break,continueλ₯Ό μ¬λ¬μ°¨λ‘ μ¬μ©ν΄λλμ§λ§ goto λ¬Έμ μμ νλκ²μ΄ μ’λ€.
12. ν¨μλ₯Ό μ§λλ°©λ²
- μ²μμλ κΈΈκ³ λ³΅μ‘ν ν¨μλ₯Ό μμ±
- νμ§λ§ κ·Έ μ½λλ€μ λͺ¨λ ν
μ€νΈ νλ λ¨μ ν
μ€νΈ μΌμ΄μ€ μμ± νκΈ°
- μ½λλ₯Ό λ€λ¬κ³ ν¨μλ₯Ό λ§λ€κ³ , μ΄λ¦μ λ°κΎΈκ³ , μ€λ³΅μ μ κ±°νκ³ , λ©μλλ₯Ό μ€μ΄κ³ μμλ₯Ό λ°κΎΈλ©° λ¨μν
μ€νΈλ₯Ό λͺ¨λ ν΅κ³Όνλλ‘ λ§λ€μ΄μ€λ€.
3μ₯μ μ½κ³ ν¨μλ₯Ό μ§λ λ°©λ²μ λν΄μ λ°°μ°κ² λμλ€. νμ¬ μ§ννλ νλ‘μ νΈμ ν¨μλ€λ νμ¬ μ€λ³΅λ μκ³ λ¦¬μ¦μ΄ λ§κ³ μ΄λ¦λ κ·μΉμ΄ μμΌλ©° ν ν¨μλ λ§μ μΌλ€μ νκ³ λ€λ¬μ΄ μ§μ§ μμ μνμ΄λ€. λ°λΌμ λλ μ΄μ 3μ₯μμ λ°°μ΄ λ΄μ©λ€μ λ΄κ° μ§ννλ νλ‘μ νΈ ν¨μμ μ μ©μμΌ ν¨μλ₯Ό μ λ§λ€μ΄ λ΄μΌκ² λ€.
맨μλ‘π