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

Kod służy jako komunikacja między deweloperami. Podczas gdy używamy języków programowania do instruowania komputerów, kod komunikuje się również z kolegami – zarówno obecnymi, jak i przyszłymi członkami zespołu. Ten przewodnik bada automatyzację sprawdzania 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 demonstruje użycie Black, otwartego formatera Pythona, do automatycznego stylowania kodu. Instalacja jest prosta poprzez 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 wyzwala błąd i automatycznie formatuje pliki. Druga próba commitu kończy się sukcesem z właściwie sformatowanym kodem.
Dla dodatkowego wymuszenia, potoki Continuous Integration mogą uruchamiać sprawdzenia 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ę atrybucji.