Repozytorium kodu – jedno z najważniejszych narzędzi w arsenale programisty, developera. No właśnie… w ostatnim wpisie pisałem o automatycznym formatowaniu kodu i jak to zautomatyzować. Większość czasu czytamy kod niż piszemy więc to co piszemy musi być czytelny, dlatego kod musi być czytelny, dlatego dobrze go formatować.
Repozytrium kodu i automatyczne formatowanie kodu to same problemy
Jest jedno ale do tego całego formatowanie, mianowicie standardy. Wyobraź sobie, że lubisz wcięcie na 4 spacje (serio nie interesuje mnie czy wolisz spacje od tabulatorów, to bez znaczenia – wiadomo że taby rulez 😉 ) a współprograista tabulatory. Pobierasz kod z repo i przeformatowywujesz go na jedyny słuszny styl. Zresztą to nie musi być odwieczna wojna spacje vs tabulatory, wystarczy prozaiczne z pozoru umiejscowienie wąsów w tej samej linni vs w nowej linii. Tak czy inaczej formatujesz na jedyny słuszny styl, robisz swoje i commitujesz. Współprogramista robi dokładnie to samo, pobiera, formatuje na jedyny słuszny styl, robi swoje i commituje. Jak w kołysce newtona (na obrazku powyżej) będziecie się obijać. Ale to nie najgorsze, najgorsze nadejdzie jak trzeba będzie zaglądnąć w historię commitów. Wtedy okaże się, że każdy jeden commit zawiera bardzo dużo zmian a jak zaczniesz przeglądać te zmiany okaże się, że 99% to przeformatowanie kodu.
Historia rzecz święta
Co powie Ci historia zmian w repozytorium jeśli 99% to będzie ping pong pomiędzy dwoma obozami jedynego słusznego formatowania? Taka historia na wiele się nie zda. Będzie po prostu bezużyteczna. Tutaj dochodzimy do sedna automatycznego formatowania kodu. Repozytorium kodu musi być czyste i czytelne tak samo jak kod, dlatego też wszyscy w zespole muszą mieć takie same standardy kodowania. To pozwoli zachować porządek w repozytorium kodu to po pierwsze, pozwoli uniknąć frustracji, że znowu ktoś użył złego standardu, pozwoli wreszcie skupić się na pracy.
Ludzi i interakcje od procesów i narzędzi
Pierwszy punkt agile manifesto… ludzie i interakcje… może warto przedyskutować w zespole wspólne standardy kodowania i ustawić wszystkie narzędzia tak samo. Wtedy będziemy mieli z automatu kod dobrze ustawiony a w historii w repo będzie porządek. Tylko tyle i aż tyle. Proste no nie?