7장. 선언과초기화를 함께 이동하기
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
변수와 초기화는 때때로 서로 엇갈리는 것처럼 보입니다. 변수 이름은 계산에서 변수의 역할에 대한 힌트를 제공합니다. 그러나 초기화는 이름의 메시지를 강화합니다. 선언(가능한 유형 포함)과 초기화가 분리된 코드를 만나면 읽기가 더 어려워집니다. 초기화에 도달할 때쯤이면 변수의 용도에 대한 컨텍스트 중 일부를 잊어버리게 됩니다.
이 정리의 모습은 다음과 같습니다. 다음과 같은 코드가 있다고 상상해 보세요:
fn()
int a
...some code that doesn't use a
a = ...
int b
...some more code, maybe it uses a but doesn't use b
b = ...a...
...some code that uses b
초기화를 선언으로 이동하여 이 문제를 깔끔하게 정리하세요:
fn()
int a = ...
...some code that doesn't use a
...some more code, maybe it uses a but doesn't use b
int b = ...a...
...some code that uses b
순서를 바꿔보세요. 각 변수가 사용되기 직전에 선언되고 초기화되는 경우와 함수 맨 위에 모두 함께 선언되고 초기화되는 경우 중 어느 것이 코드를 읽고 이해하기가 더 쉬울까요? 코드를 읽는 사람의 경험을 상상하고 누가 작성했는지 추측하는 데 필요한 단서를 남기는 추리 작가가 되어 보세요.
변수와 변수를 설정하는 코드를 아무렇게나 넣으면 안 됩니다. 변수 간의 데이터 종속성을 존중해야 합니다. a 을 사용하여 b 을 초기화하는 경우 a 을 먼저 초기화해야 합니다. 이 Tidy를 실행할 때 데이터 종속성의 순서를 유지해야 한다는 점을 기억하세요.
종속성을 수작업으로 분석해야 한다면 결국 실수를 하게 될 것입니다. 코드의 구조를 개선하려고 하다가 실수로 코드의 동작을 변경하게 될 수도 있습니다. 문제없습니다. 알려진 올바른 버전의 코드로 백업하세요. 작은 단계로 작업하세요. 이것이 바로 깔끔한 방법입니다. 큰 디자인 변경이 너무 어렵고 무섭나요? 더 작은 단계를 밟으세요. 아니, 더 작게. 아직도 무섭나요? 안 무섭나요? 좋아요.