Formatowanie kodu ma znaczenie. Nawet wcięcie ma znaczenie . A spójność jest ważniejsza niż drobne ulepszenia. Ale projekty zwykle nie mają jasnego, kompletnego, weryfikowalnego i egzekwowanego przewodnika stylu od pierwszego dnia, a poważne ulepszenia mogą nadejść każdego dnia. Może to znajdziesz
SELECT id, name, address
FROM persons JOIN addresses ON persons.id = addresses.person_id;
można lepiej napisać, ponieważ / jest lepiej napisany niż
SELECT persons.id,
persons.name,
addresses.address
FROM persons
JOIN addresses ON persons.id = addresses.person_id;
podczas pracy nad dodaniem kolejnych kolumn do zapytania. Być może jest to najbardziej złożone ze wszystkich czterech zapytań w kodzie lub trywialne zapytanie spośród tysięcy. Bez względu na to, jak trudne jest przejście, zdecydujesz, że warto. Ale jak śledzić zmiany kodu w przypadku głównych zmian formatowania? Możesz po prostu poddać się i powiedzieć „to jest punkt, od którego zaczynamy od nowa”, lub możesz sformatować wszystkie zapytania w całej historii repozytorium.
Jeśli używasz rozproszonego systemu kontroli wersji, takiego jak Git, możesz powrócić do pierwszego zatwierdzenia i sformatować swoją drogę stamtąd do bieżącego stanu. Ale to dużo pracy i wszyscy inni musieliby wstrzymać pracę (lub przygotować się na matkę wszystkich fuzji) podczas jej trwania. Czy istnieje lepszy sposób na zmianę historii, który daje najlepsze wyniki:
- Ten sam styl we wszystkich zatwierdzeniach
- Minimalna praca scalania
?
Aby to wyjaśnić, nie chodzi o najlepsze praktyki przy rozpoczynaniu projektu, ale raczej o to , co należy zrobić, gdy duże refaktoryzacje zostały uznane za Dobrą Rzecz, ale nadal chcesz mieć możliwą do prześledzenia historię? Nigdy nie przepisywanie historii jest świetne, jeśli jest to jedyny sposób, aby upewnić się, że Twoje wersje zawsze działają tak samo, ale co z korzyściami programisty z czystego przepisywania? Zwłaszcza jeśli masz sposoby (testy, definicje składni lub identyczny plik binarny po kompilacji), aby upewnić się, że przepisana wersja działa dokładnie tak samo jak oryginał?