Konzistencia kódu - Code Formatters
Dobrý deň @sergej.chodarev.
Problém
V súčasnom zdrojovom kóde projektu sa často striedajú "programátorské štýly". Na jednom mieste sú pre ohraničenie reťazcov použité úvodzovky, inde apostrofy. Rovnako odsadzovanie prvkov zoznamov, argumentov funkcií alebo volaní funkcií je vo väčšine kódu "náhodné". Pravdepodobne sú tu aj ďalšie veci, ktoré mi z hlavy hneď nenapadnú. Čím viac developerov do projektu prispeje, tým viac "štýlov", ktoré sú syntakticky korektné, sa do kódu nakoniec dostane.
Riešenie
Viac krát som Vám už na konzultácii spomínal Code Formatting nástroje. Ich cieľom je minimalizovať čas potrebný pre formátovanie kódu a taktiež čas potrebný pre porozumenie, naučenie sa a používanie lokálnych konvencií formátovania kódu projektov. Hlavným cieľom je, teda okrem šetrenia času, konzistencia zdrojového kódu.
Pre Python sa v súčasnosti najviac využíva nástroj black.
Väčšinu pravidiel formátovania je možné nakonfigurovať do konfiguračného súboru projektu. Editory ako Visual Studio Code a ďalšie majú potom k dispozícii rozšírenie, ktoré formátuje kód pri každom uložení súboru, čo výrazne zlepšuje DX. Developer tak pri písaní kódu nie je nútený rozmýšľať nad konvenciami projektu. Nástroj ponúka taktiež aj cli možnosť formátovania, ktorá by sa dala využiť v hooku pred git commitom, čím by sme vynútili používanie jednotného formátovania pre celý kód projektu.
Navrhujem vytvoriť black konfiguráciu pre projekt it4kt-builder a následne git hook pre kontrolovanie/formátovanie projektu s vidinou docielenia maximálnej možnej konzistencie kódu.
Čo si o tom myslíte?