Clean Code - 1
π λ μνκΈ°
γν΄λ¦°μ½λγ 1 ~ 4μ₯ λ μ νκΈ°
- 1μ₯. κΉ¨λν μ½λ
- 2μ₯. μλ―Έ μλ μ΄λ¦
- 3μ₯. ν¨μ
- 4μ₯. μ£Όμ
μ΄λ€ κ°λ° μΈμ΄λ₯Ό μ¬μ©νλλ νΉμ μ§λ¬΄κ° μ΄λ»λλμ κ΄μ¬μμ΄ κ°λ°μλΌλ©΄ νν μ½μ΄λ΄μΌνλ€λ λ°μ΄λΈ κ°μ μ± μ λλμ΄ μ½κ² λμλ€.
λΆλλ¬μ΄ μκΈ°μ§λ§ κ°λ° μμ νκΆμ μ¨μ νκ² A-Z μλ ν΄λ³Έμ μ΄ μλ€. π₯
μ€μ λ‘ λͺλͺ μ±
λ€μ νμνκ±°λ ν₯λ―Έλ‘μ΄ λΆλΆλ§ μ½μ λ€μ λ΄ν½κ²¨μΉκ³ λͺ¨λν° λ°μΉ¨λλ‘ μ°μ΄κ³€νκ³ , (μ΄κ±΄ κ·Έλλ§ ννΈμ΄ λ«λ€.) μΌλΆ μ±
λ€μ μ±
μ₯μ μ΄μ¬ν μ₯μνλλ°μλ§ νμ μκ³ μλ μ€μ΄λ€.
μ€μ€λ‘ λ°μ±νλ μλ―Έλ‘ βνΌλλ κΈ°λΆβμ λ μ£Όκ³ κ²½νν μ μμ μ μλ γν΄λ¦°μ½λγ μμ μ μ νν΄μ μ½μ΄λ³΄λ €νλ€.
1. κΉ¨λν μ½λ
μ΄ μ₯μμ κΈ°μ΅μ λ¨λ 문ꡬλ₯Ό κΌ½μλ©΄ μλμ λ¬Έμ₯μ κΌ½μ κ² κ°λ€.
"κΉ¨λν μ½λλ μ μ΄ λ¬Έμ₯μ²λΌ μ½νμΌνλ€."
μ¬μ€ 머리λ‘λ μλλ° μ°Έ μ μ©νκΈ° νλ€λ€.
2μ£Όλ§ μ§λλ μλ, κΈμμΌμ μ§ μ½λλ₯Ό μ£Όλ§μ 보λ΄κ³ μμμΌ μΆκ·Ό ν λ€μ μ΄ν΄ λ³Ό λμλ μ μ μ½ν (λ΄κ° μ§ μ½λμΈλ°..) λκ° μλ€.
κ·Έλ° μν©μ λ§μ£Όνμ λ λ³΄ν΅ λκ°μ§ λΆκΈ°λ‘ λλ μ§λ€.
-
βμ΄ λΆλΆμ λμ€μ 리ν©ν λ§ νλλ‘ νκ³ μ°μ μλΉμ€ κ°λ°μ μ§μ€νμ.β
- μ¨λ΄λ €κ° μ½λμ κΈΈμ΄κ° κΈΈκ³ μλΉμ€ λ‘μ§μ μ€μν λΆλΆμΈ κ²½μ°.. κ·Έλλ§ λ«λ€.
(μκ°μ΄λΌλ νλ€.)
- μ¨λ΄λ €κ° μ½λμ κΈΈμ΄κ° κΈΈκ³ μλΉμ€ λ‘μ§μ μ€μν λΆλΆμΈ κ²½μ°.. κ·Έλλ§ λ«λ€.
-
무λ 무μ π³
κΈνκ² μκ°μ νλ¦λλ‘ λ§λ€μ΄λΈ λ΄ μ½λλ€μ΄ μΌμΌν€λ λΆννμ λλ¬Έμ μ μ΄ λ¬Έμ₯μ²λΌ μ½νκΈ°λ 컀λ
μΈκ΅μ΄ μμ μ 보λ κΈ°λΆμ λλΌκ²νλ€. (κ·Έλ¦¬κ³ λ³΄ν΅ μ λ¬ν μ½λλ€λ‘ μΈν΄ κ°μ’
λ²κ·Έλ€μ΄ μ λ°λλ€.)
λ¨μν μΌμ μ ννλ©° λ΄ μ½λμ ν리ν°λ₯Ό ν¬κΈ°ν기보λ€λ μ΄λ¬ν μλͺ»λ μ½λλ‘ μΈν μλΉμ€μ μνμ±μ λλ£μκ² κ³΅μ νκ³ κ΄λ¦¬μμκ² μ΄ν΄μν€λ©° μΌμ μ νλλ €μ μ½λ νμ§μ ν¬κΈ°νλ μλμ μΈ μμΈλ³΄λ€λ γν΄λ¦°μ½λγ λ₯Ό μ§ν€κΈ° μν μμΈλ₯Ό κ°μ ΈμΌκ² λ€λΌλ μκ°μνλ€.
2. μλ―Έ μλ μ΄λ¦
μ΄ μ₯μμ κΈ°μ΅μ λ¨λ 문ꡬλ₯Ό κΌ½μλ©΄ μλμ λ¬Έμ₯μ κΌ½μ κ² κ°λ€.
"μ’μ μ΄λ¦μ μ§μΌλ €λ©΄ μκ°μ΄ 걸리μ§λ§ μ’μ μ΄λ¦μΌλ‘ μ μ½νλ μκ°μ΄ ν¨μ¬ λ λ§λ€."
μ¬κΈ΄ λ무 곡κ°μ΄ μ½κ² λμλ€.
μ€μ λ‘ μ 무μκ° λμ ν¬λ‘¬ νμμ PAPAGOμ κ΅¬κΈ λ²μκΈ°λ νμ κΊΌμ§μ§ μλ νμ΄λ€.
λ³μλ₯Ό μ§κ±°λ λ©μλ λͺ μ μ§λλ°μλ μ€μ λ‘ λ§μ κ³ λ―Όμ νκ³ μμΌλ©°, κ³ λ―Όμ΄ κΈΈμ΄μ§ λμλ λλ£μκ² βλ³μ μλͺ μ΄μ(?)βλ₯Ό 곡μ ν΄μ λ―Όμ£Όμ£Όμμ μΈ μ μ°¨λ₯Ό κ±°μ³ μ μ νκ³ μλ€.
λ€μ΄λ° λΆλΆμ μ΄λ―Έ μ(κ·Έλλ§) νκ³ μλ€ μκ°νμ§λ§, μ±
μμ μ μνλ λν
μΌν λΆλΆλ€ λν μ°Έκ³ νκΈ° μ’μμ λͺκ°μ§λ§ λμ΄ν΄λ³΄λ €νλ€.
-
ν΄λμ€λͺ μ λͺ μ¬ νΉμ λͺ μ¬κ΅¬λ‘ ꡬμ±νμ.
-
λ©μλλͺ μ λμ¬λ‘ ꡬμ±νμ.
νΉν λ©μλλͺ μμλ get(μ κ·Όμ) / set(λ³κ²½μ) / is(쑰건μ)λ±μ μ λμ¬κ° μμ£Ό μ°μΈλ€.
-
κΈ°λ°ν μ΄λ¦μ νΌνμ.
βμ±λͺ βμ βμ±βκ³Ό βμ΄λ¦β λκ°μ§ λ³μλ‘ κ΅¬λΆν΄μΌνλ€λ©΄..
μ±μ
name1
μ΄λ¦μname2
μΌλ‘ μ§λ κΈ°λ°ν(?) νμλ νΌνμ.firstName / lastName
μ΄λΌλ μ’μ μ νμ§κ° μλ€.
νλ‘κ·Έλλ° μμμμ μ’μ μ΄λ¦μ μ ννλ κ³Όμ μ νν μμμμλ βλ¬μ¬λ₯Ό μνλ€.β μ¬μ§ μμμμλ βꡬλλ₯Ό μ μ‘λλ€.β μ λΉμ·νλ€ λκ»΄μ§λ€.
κ°λ°μ μνκ³ μ λͺ»νκ³ μλ 무κ΄νκ² μ¬μ€ μ΄λ° μ’μ μ΄λ¦μ μ ννλ λ₯λ ₯μ κΈ°λ₯΄λ건 μ΄λ €μ΄ μΌμ΄λΌ λκ»΄μ§λ€.
λμ βμΆ©λΆν κ³ λ―Όνλ€!β λΌλ μ§μ¬μ λκ»΄μ§κ² λ μ΄λ¦μ μ§λ μ΅κ΄μ λ€μ¬λ³΄λλ‘νκ² λ€.
3. ν¨μ
μ΄ μ₯μμ κΈ°μ΅μ λ¨λ 문ꡬλ₯Ό κΌ½μλ©΄ μλμ λ¬Έμ₯μ κΌ½μ κ² κ°λ€.
"ν¨μλ ν κ°μ§λ₯Ό μν΄μΌ νλ€. κ·Έλ¦¬κ³ κ·Έ ν κ°μ§λ₯Ό μ ν΄μΌ νλ€."
μ λ¬Έμ₯μ νν μ΄μ λ₯Ό νκ°μ§λ§ λ§ν΄λ³΄λΌνλ©΄..
βμ½λκ° κΈΈμ΄μ§κ³ μ¬λ¬ κΈ°λ₯μ΄ λ¬Άμ¬μ κΉμ΄κ° κΉμ΄μ§ μλ‘ λ²κ·Έκ° μ¨μ΄λ€ 곡κ°μ΄ λ§μμ§λ€.β λΌλ μ΄μ λ₯Ό λ§ν κ² κ°λ€.
κ·Έλ¦¬κ³ ν΄κ²°μ± μ λ§ν΄λ³΄λΌνλ©΄..
첫째 κ·μΉμ βμκ²!β λμ§Έλ βμκ²!β κΈ°λ₯ λ¨μλ‘ μ½λλ₯Ό ν¨μλ‘ λ¬Άμ λ€, κ·Έ ν¨μλ₯Ό μ λ ν μ€νΈλ±μ ν΅ν΄ κ°κ°μ λΆλΆλ€μ΄ μ ννκ² λμνλμ§ νμΈν΄μΌ νλ€λΌκ³ λ§ν κ² κ°λ€.
λλ μ μκ° μ΄ 3μ₯μ λͺ©μ μ μΈμ§λ νκ³ μλ€.. (μ€μ²μ μν λΏ)
κΉν λ°μ±μνκ³ λ€μ μ₯μΌλ‘ μ½μ΄λ΄λ €κ°λ€.
4. μ£Όμ
μ£Όμ λΆλΆμ μλ²½μ νΌμ νΌμνΌμ μμΌλ©° μ½μ΄λ΄λ €κ°λ€.
μ¬λ°κ³ μ μ½νμλ μμ§λ§ βμ΄μ© μ΄λ κ² μ 곑μ μ°λ₯΄μ§?β λΌλ κ°μ λλ¬Έμ μ½λ λ΄λ΄ μ€μκ° λμλ€.
μ΄ μ₯μμ κΈ°μ΅μ λ¨λ 문ꡬλ₯Ό κΌ½μλ©΄ μλμ λ¬Έμ₯μ κΌ½μ κ² κ°λ€. (μ΄λ²μλ μΈμ©λ¬Έμ΄λ€.)
"λμ μ½λμ μ£Όμμ λ¬μ§λ§λΌ. μλ‘ μ§λΌ" λΈλΌμ΄μΈ W. 컀λνΈ, P.J νλΌμ°κ±°
κ°μΈμ μΌλ‘ μ£Όμμ μ λ€λ건 λΉμ°ν μ’μ μ΅κ΄μ΄λΌ μκ°νλλ°, κ·Έλ³΄λ€ λ μ€μν건 μ’μ μ½λλ₯Ό λ¨Όμ μ°λκ±°λ€.
μ 1 ~ 3μ₯μμ μ μν μμΉλλ‘ μ μ§μΌ°λ€κ³ κ°μ μ ν΄λ³΄μ.
βλ¬Έμ₯μ²λΌ μ μ½νλ μ½λλ‘ μ§μ¬μ§ μλ―Έμλ μ΄λ¦μ κ°μ§ μμ ν¨μλ€λ‘ μ±μμ§ μλ¦λ€μ΄ λͺ¨λβ μ΄ μλ€λ©΄, λμ§λμ§ μ£Όμμ΄ κ³Όμ° νμν κΉ?λΌλ μκ°μ΄ λ λ€.
κ·Έλμ βμ΅κ΄μ± μ£Όμ μ¦νκ΅°(?)β λ§λ₯ λ¬μμ¨ μ£Όμλ€μ΄ μ°½νΌν΄μ‘λ€.
λ΄μΌλΆν° λΆνμν μ£Όμμ λ€λλ° μκ°μ ν μ ν기보λ€λ κ·Όλ³Έμ μΈ λ³Έμ§(κΉ¨λν μ½λ, μλ―Έ μλ λ€μ΄λ°, κΈ°λ₯ λ¨μλ‘ μκ² μͺΌκ°μ§ ν¨μ) μ λ Έλ ₯μ μμ νν¨ λ§νΌμ΄λΌλ λ μ¨λ³΄λλ‘ μ€μ²ν΄λ΄μΌκ² λ€.