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.


Bądź na bieżąco!

Podobają Ci się treści publikowane na moim blogu? Nie chcesz niczego pominąć? Zachęcam Cię do subskrybowania kanału RSS, polubienia fanpage na Facebooku, zapisania się na listę mailingową:

Dołączając do newslettera #NoweRozdanie2 otrzymasz dostęp do dodatkowych materiałów:

  • PDF: „Jednoosobowa działalność gospodarcza krok po kroku” (do artykułu)
  • PDF: „FAQ: Jak pracuje się dla Roche/Sii?” (do artykułu)
  • PDF: „Jak zmniejszyć prawdopodobieństwo wystąpienia kontroli i co zrobić kiedy urzędnik zapuka do Twoich drzwi?” (do artykułu)

Powyższe dane są przechowywane w systemie Mailchimp i nie są udostępniane nikomu innemu. Więcej szczegółów znajdziesz na stronie polityki prywatności.

lub śledzenia mnie na Twitterze. Generalnie polecam wykonanie wszystkich tych czynności, bo często zdarza się tak, że daną treść wrzucam tylko w jedno miejsce. Zawsze możesz zrobić to na próbę, a jeśli Ci się nie spodoba – zrezygnować :)

Dołącz do grup na Facebooku

Chcesz więcej? W takim razie zapraszam Cię do dołączenia do powiązanych grup 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.

W grupie Programista Na Swoim znajdziesz wiele doświadczonych osób chętnych do porozmawiania na tematy krążące wokół samozatrudnienia i prowadzenia programistycznej działalności gospodarczej. Vademecum Juniora przeznaczone jest zaś do wymiany wiedzy i doświadczeń na temat życia, kariery i problemów (niekoniecznie młodego) programisty.

Wesprzyj mnie

Jeżeli znalezione tutaj treści sprawiły, że masz ochotę wesprzeć moją działalność online, to zobacz na ile różnych sposobów możesz to zrobić. Niezależnie od tego co wybierzesz, będę Ci za to ogromnie wdzięczny.

Postaw mi kawę na buycoffee.to

Na wsparciu możesz także samemu zyskać. Wystarczy, że rzucisz okiem na listę różnych narzędzi, które używam i polecam. Decydując się na skorzystanie z któregokolwiek linku referencyjnego otrzymasz bonus również dla siebie.

BTW. Oczywiście, że Star Wars 😉

Picture Credits