5 niezbędnych narzędzi programisty

Page Title Shape 1
Page Title Shape 2
Page Title Shape 3

Dzisiejszym tematem będzie 5 niezbędnych narzędzi programisty. Duża ilość aplikacji przeznaczonych dla programistów, wcale nie pomaga nam w ustawieniu idealnego workflow. Oczywiście przyjmując tezę, że istnieje coś takiego jak idealne workflow. Pracując w różnych firmach, mogę śmiało powiedzieć, że jest to raczej kwestia indywidualnych preferencji lub przyzwyczajeń. Pomijając jednak flow, z jakim spotykamy się w pracy, dobrze jest mieć również swój indywidualny zestaw ulubionych narzędzi. 

Pracując jako freelancer, przez cały czas szukam swojego ideału. Jestem coraz bliżej stwierdzenia, że idealny workflow musi ciągle ewoluować. Na szczęście jest z czego wybierać, więc śmiało, można eksperymentować. Oczywiście pamiętaj, że jest to kwestia indywidualna. Raczej potraktuj poniższą listę jako opis typów aplikacji, które warto mieć pod ręką.

PhpStorm

Dobry edytor to skarb. Potrafi zaoszczędzić nam pisania powtarzalnych instrukcji. Osobiście korzystam z PhpStorm. Eksperymentowałem z wieloma edytorami. Poczynając od Eclipse przez NetBeans aż po MS Visual Studio Code. Każdy z nich ma swoje zalety i wady. Ostatecznie nie mogę rozstać się jednak z kombajnem od JetBrains. Główne zalety, jakie przekonały mnie do wykupienia abonamentu (coooo? Przecież możesz mieć inny soft za darmo), to intellisense. Wiem, że autocomplete posiada wiele darmowych rozwiązań, ale w PhpStorm to po prostu działa magicznie. Można przestać myśleć o nazwach zmiennych, funkcji i spokojnie skupić się na tworzeniu. Kolejnym argumentem jaki, przekonał mnie do tego edytora, jest zestaw narzędzi i wtyczek, jakie usprawniają mi pracę. Dla przykładu rozwiązywanie konfliktów (w repozytorium git) jest proste i czasem przyjemne. 

GIT

Były czasy, gdy pracowałem bez systemu kontroli wersji. Jak wracam do tego pamięcią, to jest mi strasznie wstyd. Natomiast od momentu, gdy zacząłem aktywnie korzystać z GIT’a, praca nad projektami przestała być uciążliwa. Posiadając repozytorium, zyskujemy bardzo wiele. Głównymi benefitami według mnie są:

  • możliwe integracje z aplikacjami wspomagającymi CI/CD (np. heroku / travis / gitlab)
  • utrzymanie kodu na zewnętrznym serwerze
  • możliwość wersjonowania aplikacji (branch management)
  • kontrola jakości kodu (code review)
  • możliwość cofnięcia się do dowolnego momentu rozwoju aplikacji (commit system)

Korzystanie z GIT’a w zakresie podstawowym jest bardzo proste przyjemne. Warto jednak rozszerzać swoją wiedzę na ten temat. Praca z systemami kontroli wersji jest umiejętnością uniwersalną. Oznacza to, że niezależnie w jakiej technologii pracujesz, możesz je wykorzystać do usprawnienia pracy. Do nauki polecam interaktywny kurs, który znajdziesz tutaj.

JIRA

Trzecie miejsce w rankingu 5 niezbędnych narzędzi programisty. Przez niektórych kochana, przez innych znienawidzona – JIRA. Dla osób, które nie miały okazji korzystać – jest to system zarządzania projektami. Bardzo zaawansowana aplikacja, która pozwala na utworzenie własnego flow pracy. Osobiście korzystam z niej zarówno w pracy, jak i w projektach dodatkowych. Pierwsza konfiguracja może być bolesna, ale moim zdaniem warto. Główne zalety korzystania z JIRA:

  • jeśli pracujesz z GIT’em, do zadania przypisane mogą być commit’y. Dzięki temu widzisz jaki kod utworzyłeś w konkretnym zadaniu.
  • automatyczna zmiana statusu zadania, na podstawie nazwy commita (w GIT)
  • możliwość utworzenia backlogu dla konkretnych wersji aplikacji
  • śledzenie czasu wykonania zadania

Nieważne czy korzystasz z rozbudowanej JIRy, czy z równie dobrego trello. Istotne jest, aby umiejętnie wyznaczać zadania i wiedzieć co jest do realizacji. Lista zadań pokazuje, na jakim etapie w projekcie się znajdujesz.

Docker

Genialne narzędzie, które wprowadza pojęcie wirtualizacji na wyższy poziom. W dużym uproszczeniu docker pozwala na utworzenie tzw. kontenerów. Kontener to maszyna (serwer), na której możemy uruchomić naszą aplikację. 

Jeśli chcesz zacząć pracę nad projektem aplikacji internetowej (PHP + JS), musisz na swoim komputerze zainstalować serwer. Bardzo popularnym rozwiązaniem jest np. XAMPP albo MAMP. Jeśli pracujesz w większym zespole, to każdy musi zrobić dokładnie to samo. Czasami na serwerze należy zmienić ustawienia, na przykład po to, aby aplikacja działała wydajniej. Informacje o zmianie konfiguracji trzeba wówczas wysłać do całego zespołu. Każdy musi wprowadzać zmianę na swoim komputerze. Straszny proces prawda?

Korzystając z dockera konfiguracje tworzysz dla wybranego kontenera. Robisz to za pomocą plików konfiguracyjnych, które później możesz zacommitować. Dzięki temu reszta zespołu musi jedynie pobrać ten plik i przebudować kontener (uruchomić polecenie w konsoli). Bardzo polecam naukę dockera. Nie jest to proste, szczególnie dla osób początkujących. Jednak jest to również umiejętność uniwersalna, która może być wykorzystana w wielu projektach.

Continuous deployment

Jest takie powiedzenie – “dobry programista, to leniwy programista”. Nie chodzi w nim jednak o to, żeby nie robić zadań 🙂 Należy automatyzować wszystko, co może być zautomatyzowane. Continues deployment (tzw. CD) pozwala nam zapomnieć o procesie publikacji nowej wersji aplikacji na serwerze. Możemy stworzyć szereg zależności, które składać się będą na proces publikacji. Przykładowo może to wyglądać następująco:

  1. Uruchom kontener docker’a
  2. Pobierz nową wersję aplikacji z GIT’a
  3. Zbuduj aplikację (zainstaluj zależności etc.)
  4. Uruchom testy automatyczne
  5. Opublikuj nową wersję aplikacji na serwerze

Możemy też ustalić moment, w którym powyższa lista kroków zostanie uruchomiona. Na przykład, podczas gdy na GIT pojawi się nowy commit, powyższy proces zostanie uruchomiony. TAK! W momencie, gdy zrobisz push do repozytorium, cała reszta dzieje się w sposób automatyczny.

Jak podoba Ci się moich 5 niezbędnych narzędzi programisty? Daj znać w komentarzu, z jakich narzędzi korzystasz. Może są jakieś tricki, które pomogą mi usprawnić pracę. Będę wdzięczny za każdy głos na ten temat 🙂

Previous Post
Newer Post

Brak produktów w koszyku.

X