20장. 얽힌 문제 풀기
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
일부 코드의 동작을 변경하고 있습니다. 변경이 더 쉬워질 수 있도록 정리하는 것이 좋습니다. You tidy. 그런 다음 다른 테스트 케이스를 작성합니다. 이제 동작을 좀 더 변경해야 합니다. 그러면 더 많은 정리가 필요합니다. 한 시간 후 여러분:
-
실제로 필요한 모든 행동 변화를 이해합니다.
-
이러한 행동 변화를 완화하는 모든 정리정돈을 실제로 이해합니다.
-
엉망진창으로 뒤엉킨 정리 정돈과 변경 사항들
최소한 세 가지 옵션이 있는데, 그 중 어느 것도 매력적이지 않습니다:
-
있는 그대로 발송합니다. 이는 검토자에게 무례하고 오류가 발생하기 쉽지만 빠르다는 장점이 있습니다.
-
정리 및 변경 사항을 별도의 PR 또는 일련의 PR 또는 단일 PR의 일련의 커밋으로 분리하세요. 이 방법이 더 정중하지만 작업이 많을 수 있습니다.
-
진행 중인 작업을 버리고 먼저 정리하면서 다시 시작하세요. 이렇게 하면 작업은 더 많아지지만 일관된 커밋 체인을 남길 수 있습니다.
매몰 비용 오류로 인해 이러한 옵션 간의 선택이 복잡해집니다. 새로운 테스트가 몇 가지 있습니다. 통과했습니다. 왜 그걸 버리려고 하나요?
항상 그렇듯이 답은 컴퓨터에게 지시하는 것이 아니라 다른 사람들에게 컴퓨터에 대한 의도를 설명하는 것이기 때문입니다. 컴퓨터에게 지시하는 최단 경로가 흥미로운 최종 목표는 아닙니다.
이쯤 되면 마지막 옵션을 실험해 보라고 권하는 것이 그리 놀랍지 않을 것입니다. 재구현을 통해 새로운 것을 발견할 가능성이 높아지며, 동일한 행동 변화 집합에서 더 많은 가치를 끌어낼 수 있습니다.
실타래를 푸는 일은 엉켜 있다는 사실을 알아차리는 것부터 시작됩니다. 실타래를 풀어야 한다는 사실을 빨리 깨달을수록 작업은 더 작아지고 전략 사이의 결정도 덜 중요해집니다. 처음 의식적으로 정리하기 시작할 때, 처음이든 나중에든, "순조롭게 정리하고 있다"와 "이런, 내가 한 게 다 뭐야?" 사이의 전환점을 놓칠 수 있습니다. 걱정하지 마세요. 시간이 지남에 따라 정리와 변경의 순서를 정하는 데 더 능숙해질 것입니다.
'선후'에 대해 말했으니 이제 타이밍에 대해 이야기할 차례입니다.