코드 형식이 중요합니다. 심지어 들여 쓰기 문제 . 그리고 약간의 개선보다 일관성이 중요합니다. 그러나 프로젝트는 일반적으로 1 일부터 명확하고, 완전하며, 검증 가능 하고 시행되는 스타일 가이드 가 없으며 , 주요 개선 사항은 언제든지 도착할 수 있습니다. 어쩌면 당신은 그것을 발견
SELECT id, name, address
FROM persons JOIN addresses ON persons.id = addresses.person_id;
/보다 나은 것으로 쓰여질 수있다
SELECT persons.id,
persons.name,
addresses.address
FROM persons
JOIN addresses ON persons.id = addresses.person_id;
쿼리에 더 많은 열을 추가하는 동안 어쩌면 이것은 코드에서 네 가지 쿼리 중 가장 복잡하거나 수천 개 중 사소한 쿼리 일 수 있습니다. 전환이 아무리 어려워도 가치가 있다고 결정합니다. 그러나 주요 서식 변경에서 코드 변경을 어떻게 추적합니까? 포기하고 "이 시점에서 다시 시작합니다"라고 말하거나 전체 리포지토리 기록에서 모든 쿼리를 다시 포맷 할 수 있습니다.
Git과 같은 분산 버전 제어 시스템을 사용하는 경우 첫 번째 커밋으로 되돌리고 현재 상태로 다시 포맷 할 수 있습니다. 그러나 그것은 많은 일이며, 다른 모든 사람들은 일이 진행되는 동안 일을 멈추거나 모든 합병의 어머니를 위해 준비해야합니다. 모든 결과를 최대한 활용하는 기록을 변경하는 더 좋은 방법이 있습니까?
- 모든 커밋에서 동일한 스타일
- 최소한의 병합 작업
?
명확히하기 위해, 이것은 프로젝트를 시작할 때 모범 사례가 아니라 대규모 리팩토링이 Good Thing ™으로 간주되었지만 여전히 추적 가능한 이력을 원할 때 수행해야하는 조치에 관한 것입니다. 버전이 항상 동일하게 작동하도록하는 유일한 방법 인 경우 기록을 다시 쓰지 않는 것이 좋습니다. 그러나 새로 다시 작성하면 개발자의 이점은 무엇입니까? 특히 재 작성된 버전이 원본과 정확히 동일한 방식으로 작동하도록하는 방법 (테스트, 구문 정의 또는 컴파일 후 동일한 바이너리)이있는 경우?