Jak zautomatyzować styl kodowania? Krótki przewodnik po formatowaniu kodu, pre-commit i CI
Autor: Idego Group

Kod jest formą komunikacji między deweloperami. Za pomocą języków programowania przekazujemy instrukcje komputerom, ale kod czytają też nasi koledzy: obecni i przyszli członkowie zespołu. Ten przewodnik pokazuje, jak zautomatyzować sprawdzanie formatowania i stylu kodu w celu poprawy czytelności.
Jak zauważa Robert C. Martin w Clean Code, kod jest czytany znacznie częściej niż pisany, w stosunku przekraczającym 10 do 1. Poprawa czytelności bezpośrednio zwiększa utrzymywalność, przyspiesza onboarding, zapobiega degradacji kodu i upraszcza pracę deweloperską w ogóle.
Przewodnik pokazuje, jak używać Black, otwartego formatera Pythona, do automatycznego formatowania kodu. Można go łatwo zainstalować przez pip, a podstawowe użycie wymaga jednego polecenia do sformatowania całego katalogu.
Pre-commit, framework do zarządzania hookami Git, automatyzuje sprawdzanie formatowania przed commitami. Po instalacji i konfiguracji deweloperzy mogą ustanawiać spójne standardy w swoim zespole. Framework jest niezależny od języka i działa w różnych typach projektów.
Przy próbie zacommitowania niesformatowanego kodu pre-commit zgłasza błąd i automatycznie formatuje pliki. Druga próba commitu kończy się sukcesem z właściwie sformatowanym kodem.
Aby dodatkowo egzekwować te zasady, potoki Continuous Integration mogą uruchamiać kontrole pre-commit podczas żądań scalenia, zapobiegając trafieniu słabo sformatowanego kodu do głównych gałęzi.
Praktyczna uwaga: commity formatowania w całym repozytorium zaciemniają historię zmian w git blame. Git 2.23+ obsługuje ignorowanie określonych commitów przez pliki .git-blame-ignore-revs, zachowując dokładną historię autorstwa zmian.