YesCoding

Go to English
search:

[Refactoring 2판] Chapter 6-2 ν•¨μˆ˜ μΈλΌμΈν•˜κΈ°

thumbnail_refactor

λ¦¬νŒ©ν„°λ§ 2νŒμ„ 보고 μ •λ¦¬ν•œ κΈ€λ‘œ, μƒλž΅λœ 뢀뢄이 μžˆκ±°λ‚˜ 잘λͺ» μ΄ν•΄ν•œ 뢀뢄이 μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

κ°œλ…κ³Ό 원칙

ν•¨μˆ˜ λ³Έλ¬Έμ½”λ“œλ₯Ό μΈλΌμΈν•΄μ„œ 써버리고 ν•¨μˆ˜ 이름과 block 을 μ œκ±°ν•˜λŠ” 것이 ν•¨μˆ˜ 인라인이닀. μ½”λ“œλ₯Ό λ…λ¦½λœ ν•¨μˆ˜λ‘€ μΆ”μΆœν•˜λŠ” 6-1 ν•¨μˆ˜ μΆ”μΆœκ³Ό λ°˜λŒ€λ˜λŠ” κ°œλ…μ΄λ‹€. 이 방법은 μ„€λͺ…λ³΄λ‹€λŠ” μ½”λ“œλ₯Ό λ¨Όμ €λ³΄λŠ”κ²Œ 이해가 λΉ λ₯΄λ‹€.

μ½”λ“œ μ˜ˆμ‹œ

λ¦¬νŒ©ν† λ§ μ „

function getRating(driver) { return moreThanFiveLateDeliveries(driver) ? 2 : 1; } function moreThanFiveLateDeliveries(driver) { // 이 ν•¨μˆ˜μ—μ„œλŠ” λ³„λ„μ˜ 데이터 가곡이 μžˆλŠ” 것도 μ•„λ‹ˆκ³  return 둜직이 κ°„λ‹¨ν•˜λ‹€. // 이런 κ²½μš°μ—λŠ” ν•¨μˆ˜λ‘œ μ΄λ ‡κ²Œ λ”°λ‘œ μΆ”μΆœν•˜λŠ”κ²Œ λΉ„νš¨μœ¨μ μ΄λ‹€. return driver.numberOfLateDeliveries > 5; }

λ¦¬νŒ©ν† λ§ ν›„

function getRating(driver) { return (driver.numberOfLateDeliveries > 5) ? 2 : 1; }

절차

  1. λ‹€ν˜• λ©”μ„œλ“œμΈμ§€ ν™•μΈν•œλ‹€.

    μ„œλΈŒ ν΄λž˜μŠ€μ—μ„œ μ˜€λ²„λΌμ΄λ“œ ν•˜λŠ” λ©”μ„œλ“œλŠ” μΈλΌμΈν•˜λ©΄ μ•ˆ λœλ‹€. λ‹€ν˜•μ„±μ΄λž€ 같은 λͺ¨μ–‘μ˜ μ½”λ“œκ°€ λ‹€λ₯Έ ν–‰μœ„λ₯Ό ν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€. λΆ€λͺ¨ ν΄λž˜μŠ€μ™€ λΆ€λͺ¨ 클래슀 속성을 상속받은 μ„œλΈŒ ν΄λž˜μŠ€κ°€ μžˆμ„ λ•Œ, μ„œλΈŒ ν΄λž˜μŠ€λ“€μ€ λΆ€λͺ¨ ν΄λž˜μŠ€μ— 이미 μžˆλŠ” λ©”μ„œλ“œμ™€ λ˜‘κ°™μ€ μ΄λ¦„μœΌλ‘œ λ©”μ„œλ“œλ₯Ό 생성할 수 μžˆλŠ”λ°, 이 경우 λ©”μ„œλ“œ λ‚΄ λ‘œμ§μ„ μƒˆλ‘­κ²Œ μ •μ˜ν•  수 μžˆλ‹€. μ΄λŸ¬ν•œ λ©”μ„œλ“œλ₯Ό μ„œλΈŒ ν΄λž˜μŠ€μ—μ„œ μ˜€λ²„λΌμ΄λ“œ ν•˜λŠ” λ©”μ„œλ“œλΌ ν•œλ‹€. 이런 κ²½μš°μ—λŠ” λ©”μ„œλ“œ μ •μ˜λ₯Ό μœ μ§€ν•΄μ•Ό ν•˜λ―€λ‘œ μΈλΌμΈν•˜λ©΄ μ•ˆλ˜λŠ” 것이닀.

  2. 인라인할 ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λŠ” 곳을 λͺ¨λ‘ μ°ΎλŠ”λ‹€.

  3. 2 λ²ˆμ—μ„œ 찾은 곳듀은 λͺ¨λ‘ ν•¨μˆ˜ 본문으둜 κ΅μ²΄ν•œλ‹€.

  4. ν•¨μˆ˜ μ •μ˜λ₯Ό μ‚­μ œν•œλ‹€.

Recommend Post
Β© Copyright 2022, yesCoding