(poniższy tekst przeczytasz w 5 min)

Programowanie dawno już przestało być domeną samotnych jeźdźców i stało się prawdziwą grą zespołową. Oczywiście nadal da się w pojedynkę stworzyć sensowną aplikację, ale zawsze będzie to trwało znacznie dłużej niż w przypadku pracy kilkuosobowego zespołu. Dopracowanie szczegółów również jest bardziej efektywne w przypadku pracy zespołowej.

Praca zespołu niesie ze sobą sporo wyzwać organizacyjnych. Na szczęście przez ostanie lata powstały setki rozwiązań usprawniające komunikację, zarządzanie i współtworzenie projektów. Przy odrobinie wysiłku współdzielony projekt nie jest już problemem. Ale nie to jest głównym tematem tego wpisu.

Jednakowe formatowanie kodu

Dziś chciałbym przekazać Ci prostą wskazówkę, o której często zapominają poszczególni członkowie zespołu (a szczególnie Ci dołączający do zespołu w trakcie trwania prac nad projektem). Wskazówkę, która jest banalnie łatwa w realizacji, a znacząco ułatwi życie Twoim współpracownikom. Chodzi mianowicie o skonfigurowanie formatowania kodu w Twoim IDE w dokładnie taki sam sposób jak ma reszta członków zespołu.

Sam niejednokrotnie doświadczyłem sytuacji, w której dołączając do jakiegoś projektu i będąc w niego wdrażany zapominałem (lub osoba mnie wdrażająca zapominała) właśnie o jednakowej konfiguracji formatowania kodu. Możesz sobie teraz pomyśleć: „No i co z tego? W czym to przeszkadza?”. Mimo błahości wskazówki ma ona większe znaczenie, niż mogłoby się wydawać.

Najczęstsze problemy

Wymienię teraz kilka przykładów sytuacji, z którymi miałem do czynienia, a które były spowodowane właśnie przez inne ustawienia formatowania.

Importy

Najprostszym i chyba najmniej uciążliwym przykładem jest konfiguracja organizowania importów zewnętrznych klas i bibliotek. W każdym sensownym IDE masz możliwość skonfigurowania na przykład kolejności importów lub tego przy ilu importach z danego pakietu importy będą kondensowane w import całego pakietu. Często zdarza się również, że IDE jest skonfigurowanie w ten sposób, żeby przy każdej edycji i zapisie automatycznie reorganizowało importy. Jeśli więc zechcesz edytować plik, choćby poprzez zmianę nazwy zmiennej, który stworzył kolega z zespołu posiadający inne ustawienia, to przy zapisie Twoje IDE przeorganizuje importy po Twojemu. Ty wrzucisz taką zmianę do repozytorium, Twój kolega pobierze plik, edytuje go i sytuacja powtórzy się po jego stronie. I możecie tak bez końca 🙂

Cykl artykułów "Vademecum Juniora"

Ten wpis jest częścią cyklu, w ramach którego opisuję moje doświadczenia i spostrzeżenia na temat programistycznego rzemiosła. Cykl jest dedykowany osobom rozpoczynającym swoją przygodę z zawodowym programowaniem lub planują taki krok w przyszłości.

Artykuły składające się na Vademecum Juniora zawierają różne porady, wskazówki i przykłady z pracy jako programista. Nie są one ani uporządkowane chronologicznie, ani mocno ze sobą powiązane. Możesz je więc czytać niezależnie od siebie i w dowolnej kolejności. Polecam jednak zapoznać się z treścią wszystkich wpisów, gdyż wierzę, że z każdego możesz dowiedzieć się czegoś wartościowego.

Znaki końca linii i kodowanie plików

Kwestia problemów z kodowaniem i separatorami linii w plikach pojawia się głównie wtedy gdy członkowie zespołu pracują na różnych systemach operacyjnych. Zazwyczaj bowiem IDE domyślnie czerpią te ustawienia z systemów, a te się między sobą różnią. Jeśli nie chcesz widzieć co chwilę jakichś dziwnych znaczków w kodzie, to sprawę możesz ogarnąć na poziomie IDE lub w lokalnych ustawieniach niektórych systemów kontroli wersji (np. Gita).

Spacje vs. tabulatory

Spór o to czego używać do wcięć w kodzie jest tak samo kluczowy jak ten o to co jest bardziej kultowe – Star Wars, czy Star Trek 🙂 Nie ważne czego używasz i w jakich ilościach. Mogą być dwie spacje, mogą być 4, może być tabulator. Używaj czego chcesz. Byle koledzy z zespołu używali tego samego. Najważniejszym jest nie mieszać 😉

Niespójność w wyborze pomiędzy spacją, tabulatorem i ich ilością, to najbardziej upierdliwy z wymienionych tu przypadków. Wyobraź sobie bowiem sytuację, w której kod w repozytorium skonfigurowany został na dwie spacje. Ty u siebie masz ustawiony jeden tabulator. Twój kolega z zespołu ma dwie spacje zgodnie z ogólną konwencją. Zarówno ty, jak i Twój kolega edytujecie ten sam plik u siebie lokalnie. Ty zapisujesz swoje zmiany, a IDE automatycznie formatuje Ci kod całego pliku i zamienia dwie spacje na tabulatory. Wysyłasz zmiany do wspólnego repozytorium. Twój kolega wprowadził swoje zmiany, ale cały czas ma plik, w którym na początku linii są spacje. Również postanowił wrzucić swój kod do repozytorium. Co się stanie? Wielki konflikt. System kontroli wersji nie poradzi sobie z tą sytuacją i przy próbie mergowania, podczas porównywania plików, Twój kolega zobaczy tylko tyle, że cały plik się zmienił. Wszystkie linie zaświecą się mu na czerwono. Ręczne łączenie jest w tym momencie uciążliwe i bardzo łatwo jest pominąć faktycznie wprowadzone zmiany.

Ujednolicenie konfiguracji jest bardzo proste

Na chwilę obecną wszystkie kluczowe IDE dobrze wspierają ujednolicenie konfiguracji pomiędzy środowiskami kilku deweloperów. Dzięki możliwości importu/eksportu ustawień wystarczy kilka kliknięć i konfigurację jednego IDE można skopiować do dowolnego innego.

Dla starych wyjadaczy dzisiejszy wpis nie jest zapewne niczym odkrywczym. Jeśli jednak zaliczasz się do tej grupy i doczytał[a|e]ś do tego miejsca, to jestem Ci za to bardzo wdzięczny. Chętnie dowiem się jeśli masz na powyższy temat inne zdanie. Jeżeli z kolei jesteś osobą dopiero rozpoczynającą swoją karierę programistyczną, to zastosowanie się do dzisiejszych wskazówek pomoże Ci uniknąć złości kolegów z zespołu, którzy nie będą musieli przebijać się przez setki linii konfliktów z Twojego powodu 🙂 Gdybyś miał(a) jakieś uwagi do powyższej treści, to zapraszam do podzielenia się nimi w komentarzu poniżej. Na pewno odniosę się do każdego z nich.

Zachęcam również do dalszego obserwowania mojego bloga poprzez: polubienie fanpage na Facebooku, subskrypcję kanału RSS, zapisanie się do notyfikacji mailowych (formularz "Bądź na bieżąco" po prawej stronie) lub śledzenie mnie na Twitterze. Dzięki temu na pewno niczego nie pominiesz :)

Chcesz więcej? W takim razie zapraszam Cię do dołączenia do dedykowanej grupy na Facebooku, gdzie znajdziesz dodatkowe informacje na poruszane tutaj tematy, możesz podzielić się własnymi doświadczeniami i przemyśleniami, a przede wszystkim poznasz ludzi interesujących się tą samą tematyką co Ty.

BTW. Oczywiście, że Star Wars 😉

1 000 000 zł

Milion złotych. Tak, milion złotych. Milion złotych to cel, który sobie postawiłem jakiś czas temu. Chcę zarobić milion złotych na tym blogu. Do tej pory udało mi się zarobić 1 126,38 zł, więc jak widzisz jeszcze mi trochę brakuje. Jeszcze nie wiem do końca jak, ale to zrobię. Na pewno nigdy nie będę pobierał żadnych opłat za dostęp do treści, bo tymi chcę się po prostu dzielić.

Pierwszym krokiem niech będzie rozpropagowanie bloga wśród jak największej liczby osób. I tu mam prośbę do Ciebie: jeśli uważasz, ten artykuł za wartościowy, to udostępnij go proszę swoim znajomym. Przy lewej lub dolnej krawędzi ekranu znajdziesz przyciski, które Ci to ułatwią. Niezależnie od tego, czy prześlesz ten wpis dalej, czy nie, to ja i tak bardzo Ci dziękuję za doczytanie do tego miejsca! Do przeczytania niebawem.

PS. Jeżeli poszukujesz atrakcyjnego konta firmowego, osobistego, oszczędnościowego, czy ciekawej lokaty bankowej, to zapraszam Cię do przyjrzenia się odpowiedniemu rankingowi. Być może upieczesz dwie pieczenie na jednym ogniu - ustrzelisz ciekawą okazję dla siebie i dorzucisz cegiełkę do "bańki" dla mnie 😉

Picture Credits