더 진행하기 전에 한 가지를 말해둬야겠다. 이 책에서는 ‘여기 우리가 이전에 준비했던 코드가
있다’와 같은 형태로 진행되는 리팩터링 과정을 자주 보여 준다. 우리는 성공적인 경우를 보여
준다. 하지만 코드를 맨 밑바닥부터 작성하는 경우와 같은 실전 리팩터링에서는 그렇지 않다.
우리는 여러 가지를 시도해 보고 실패하며, 이 책에서 보여 준 경로보다 훨씬 더 빙 돌아가는
경로를 거쳐서 최종 결과를 얻고는 한다. 지금 설명할 예제는 최종 결과만 보여 주면 작은 예제
이기 때문에, 여기서
parse
를 실전에서 단일식으로 변환하려고 시도하면 어떤 일이 벌어지는
지를 보여 주려 한다. 이 과정에서 귀중한 교훈을 얻을 수 있으리라 생각하지만, 여러분이 그냥
결과만 보고 싶다면
9
.
4
절 ‘테이크
4
: 한 걸음 물러서기’를 보라.
9.1
테이크
1
: 인라이닝
코드를 분석해서 함수가 멋진 단일식이 되지 못하게 막는 요인을 찾아보자.
예제
9.2
[
single
-
expressions
.
1
:
src
/
main
/
java
/
travelator
/
EmailAddress
.
kt
]
fun parse(value: String): EmailAddress {
val atIndex = value.lastIndexOf(‘@’)
➊
require(!(atIndex < 1 || atIndex ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.