Narzędzia programistyczne, które zwiększają naszą produktywność

Narzędzia programistyczne, które zwiększają naszą produktywność

Tworzenie oprogramowania to złożony i czasochłonny proces. Dlatego specjaliści, którzy nad nim pracują, korzystają z zestawu aplikacji i systemów, aby móc wygodniej i skuteczniej wykonywać swoje zadania. Istnieje wiele środowisk graficznych, edytorów kodu i innego oprogramowania usprawniającego pracę programistów. Pokażemy Ci narzędzia, które lubimy i których regularnie używamy.

Sprzęt umożliwiający nam płynną pracę z oprogramowaniem

Zanim przejdziemy do narzędzi programistycznych, chcielibyśmy pokrótce wspomnieć o naszym sprzęcie, ponieważ jego dobór także wpływa na naszą produktywność i komfort pracy. Podstawowym narzędziem każdego programisty jest oczywiście komputer. Od samego początku istnienia Droptica kupujemy wyłącznie laptopy, aby mieć możliwość pracy zdalnej z dowolnego miejsca. Zawsze było to dla nas istotne, ponieważ pracujemy w rozproszonych zespołach, przemieszczamy się między naszymi biurami w różnych miastach, a także odwiedzamy naszych klientów.

Zawsze wybieramy wydajne laptopy, aby możliwości sprzętowe nie utrudniały pracy naszych programistów. Ostatnio zamówiliśmy laptopy Lenovo ThinkPad X1 Extreme oraz Dell Precision 5540. Wyposażone są w procesory Intel i7, sześć rdzeni i uzyskują ponad 5500 punktów Multi-Core Score w Geekbench 5 – wieloplatformowym teście porównawczym.

Do wygodnej pracy nie wystarczy jednak pojedynczy ekran, dlatego podłączamy też dwa zewnętrzne 27-calowe monitory Dell Full HD. W rezultacie każdy programista w Droptica pracuje na trzech ekranach.

Narzędzia programistyczne, których używamy

Poniżej przedstawimy całkiem sporo narzędzi. Wynika to z faktu, że każdy korzysta z nieco innego zestawu platform i aplikacji ze względu na swój styl pracy. Jednak, jak zapewne zauważysz, większość z nich to narzędzia typu open source, ponieważ rozwijamy i promujemy rozwiązania oparte na tej technologii.

Aby ułatwić Ci poruszanie się po tej liście, pogrupowaliśmy narzędzia programistyczne w cztery kategorie: systemy operacyjne i środowiska graficzne, rozszerzenia GNOME, IDE (zintegrowane środowiska programistyczne) i edytory kodu oraz inne oprogramowanie ułatwiające codzienną pracę programistów.

Systemy operacyjne i środowiska graficzne

System operacyjny, z którego korzystają wszyscy programiści w Droptica, to Linuks. Jest on systemem typu open source, więc możemy łatwo dostosowywać go do naszych wymagań i udostępniać sobie kopie takich niestandardowych wersji. Możesz jeszcze lepiej dopasować Linuksa do swoich potrzeb, wybierając swoją ulubioną wersję, którą nazywa się dystrybucją. Jest ich ponad 200!

Używamy dwóch najpopularniejszych dystrybucji LinuksaMint i Ubuntu. Obie są odpowiednie także dla początkujących, bardzo stabilne, oparte na Debianie (Mint jest dodatkowo oparta na Ubuntu), wyposażone w podstawowe narzędzia w zwykłej wersji i mają dobre wsparcie społeczności online. Jednak większość z nas preferuje Ubuntu (głównie w wersji 20.04, ale także 18.04), ponieważ jest dostępnych więcej samouczków dla zaawansowanych użytkowników, związanych z tą dystrybucją.

Nie tylko używamy na naszych komputerach Linuksa, ale także rozwijamy wszystkie aplikacje na serwerach produkcyjnych. Zgodność systemów eliminuje sytuacje, w których coś działa dla jednego programisty, a nie działa dla innego.

Środowiska graficzne

Linuks oferuje również szeroki wybór środowisk graficznych, takich jak KDE, MATE, GNOME, Xfce i Cinnamon. To ostatnie jest używane przez naszych programistów pracujących na Linuks Mint, ponieważ stanowi flagowe środowisko graficzne dla tej dystrybucji. Ma przejrzysty wygląd dzięki czytelnym czcionkom i schematom kolorów. Pulpit Cinnamon nie jest wypełniony zbędnymi skrótami i ikonami. Możesz skonfigurować to, co chcesz na nim widzieć, w menu System Settings => Desktop menu. Wśród innych zalet tego środowiska graficznego są:

  • konfiguracja - centrum sterowania Cinnamon zapewnia dostęp do wielu opcji ustawień pulpitu. Możesz np. zmienić czcionki tekstu, wyodrębnić motywy z Internetu lub aktywować efekty.
Centrum sterowania Cinnamon dostosowane przez jednego z naszych programistów

Centrum sterowania Cinnamon dostosowane przez jednego z naszych programistów

  • Panel Cinnamon – zawiera menu z najczęściej używanymi aplikacjami, zasobnik systemowy i selektor aplikacji. Domyślnie panel skonfigurowany jest w bardzo prosty sposób. Jednak, podobnie jak w przypadku centrum sterowania, możesz dostosować go do swoich preferencji, a także dodać nowe skróty do programów.

Chociaż lubimy Cinammon, większość z nas używa GNOME z Ubuntu. To środowisko graficzne posiada minimalny interfejs użytkownika, co ułatwia jego obsługę. Ponadto czysty pulpit pozbawiony ikon pozwala nam lepiej skupić się na właściwej pracy. Pomaga nam w tym jeszcze jedna wartościowa funkcja – dynamiczne obszary robocze. Zamiast pojedynczego pulpitu ze wszystkimi aktualnie otwartymi oknami, można je zorganizować w kilku obszarach roboczych. To wygodne rozwiązanie, np. podczas pobierania dużego pliku z jednego obszaru roboczego, możesz swobodnie wykonywać swoje zadania w drugim. Co to znaczy, że obszary robocze są dynamiczne? Początkowo masz jeden obszar roboczy. Gdy otwierasz w nim aplikacje, automatycznie generowany jest nowy pusty obszar roboczy. Później, gdy zamkniesz wszystkie znajdujące się na nim aplikacje, nowo utworzony obszar roboczy zostanie usunięty.

Rozszerzenia GNOME

Inną cechą, która podoba nam się w GNOME jest fakt, że posiada mnóstwo rozszerzeń, które usprawniają pracę z systemem operacyjnym. Jeśli korzystasz z przeglądarki Chrome, zalecamy dodanie do niej wtyczki integracyjnej GNOME Shell, ponieważ ułatwia ona instalację rozszerzeń GNOME. Poniżej zobaczysz te, z których korzystamy.

Sound Input & Output Device Chooser

To rozszerzenie wyświetla listę wejściowych i wyjściowych urządzeń dźwiękowych w menu statusu poniżej suwaka głośności.

Caffeine

Nie musimy martwić się o blokowanie ekranu, gdy nasze komputery są w stanie bezczynności. Caffeine wyłącza wygaszacz ekranu oraz automatyczne zawieszanie.

Dash to Dock

W celu ułatwienia uruchamiania aplikacji i szybkiego przełączania się pomiędzy oknami i pulpitami, narzędzie to usuwa dash z widoku, przekształcając go w dok. Nie musimy też opuszczać widoku pulpitu.

Z pomocą narzędzia Dash to Dock możemy łatwo uruchamiać aplikacje i szybko przełączać się między oknami oraz pulpitami

Źródło: Dash to Dock

Dash to Panel

Dzięki temu dodatkowi mamy zasobnik systemowy i skróty aplikacji skupione w ramach pojedynczego panelu, ponieważ przenosi on dash do głównego panelu GNOME.

Notification Center

Pozwala nam wydzielić Centrum Powiadomień i umieścić je w górnym panelu. Korzystając z tego rozszerzenia, możemy również odpowiednio dostosować centrum.

Polecamy również inne rozszerzenia GNOME, które upraszczają naszą codzienną pracę – takie jak Switcher, GSConnect, Tweaks (jest to domyślna funkcja w Ubuntu 20, ale rozszerzenie dla wersji 18), Clipboard Indicator i AlternateTab.

IDE i edytory kodu

Używanym przez nas IDE jest PHPStorm, ponieważ idealnie nadaje się do pracy w Drupalu, w którym się specjalizujemy. To zintegrowane środowisko programistyczne obsługuje wszystkie funkcje języka PHP, zapewnia uzupełnianie i refaktoryzację kodu oraz na bieżąco zapobiega błędom. Wszystkie możliwości jakie daje PHPStorm zwiększają produktywność pracy z kodem.

IDE (zintegrowane środowisko programistyczne), które używamy to PHPStorm

Źródło: JetBrains

Wraz z PHPStorm używamy PHP CodeSniffer. To bardzo przydatne narzędzie, które pomaga nam w utrzymaniu przejrzystego i zgodnego ze standardami kodu.

Edytory kodu

Edytorem kodu wspierającym codzienną pracę niektórych naszych programistów jest Sublime. Działa on z wieloma językami programowania i znaczników. Wśród przydatnych funkcji, które posiada, są:

  • Command Palette – zawiera często używane polecenia lub elementy,
  • Goto Anything – szybka opcja otwierania dowolnych plików w projekcie, nad którym obecnie pracujemy,
  • multiple selections – dzięki tej funkcji możemy wprowadzać zmiany w wielu liniach kodu jednocześnie.

Innym narzędziem używanym przez niektórych z nas do edycji kodu jest Visual Studio Code. Natywnie obsługuje Node.js, JavaScript i TypeScript, ale z pomocą rozszerzeń możesz również pracować z nim np. w PHP, Javie czy Pythonie. Ten edytor kodu wyposażono w IntelliSense. Ta podstawowa funkcja zapewnia inteligentne uzupełnianie kodu w oparciu o definicje funkcji, typy zmiennych i zaimportowane moduły. Poniżej możesz zobaczyć, jak te uzupełnienia działają w kodzie JavaScript.

Uzupełnienia w kodzie w edytorze kodu Visual Studio Code

Źródło: Visual Studio Code

Kolejnym istotnym dla nas narzędziem podczas pracy z kodem jest GIT – system typu open source do kontroli wersji kodu źródłowego. Jest to aplikacja konsolowa, więc musisz wpisywać poleceń w terminalu. Aby uczynić to łatwiejszym i szybszym, niektórzy nasi programiści używają GIT GUI (graficznego interfejsu użytkownika), a mianowicie programu SmartGit. Podobają nam się jego różnorodne funkcje i przejrzysty interfejs.

W przypadku GIT, używamy również innych narzędzi ułatwiających pracę z nim, takich jak GitK, graficzna przeglądarka historii, oraz bash-git-prompt. To ostatnie pokazuje nam informacje o repozytorium, z którego w danej chwili korzystamy, takie jak nazwa brancha oraz pliki w fazie staged albo changed.

Pozostałe programy ułatwiające codzienną pracę programistów

Zaprezentowaliśmy już całkiem sporo narzędzi programistycznych, których używamy na co dzień. Jednak oprócz systemów operacyjnych, środowisk graficznych, IDE PHP i edytorów kodu istnieje mnóstwo innych aplikacji, które ułatwiają naszą pracę i zwiększają produktywność.

Praca z terminalem

Niektórzy z naszych programistów pracujących z GNOME używają dedykowanego terminala – Guake. Jest to proste narzędzie, gotowe do użycia od razu po instalacji. Terminal obsługuje pracę z wieloma monitorami i kartami oraz udostępnia ponad sto predefiniowanych palet kolorów.

Mając dowolny linuksowy terminal, możesz przyspieszyć swoją pracę dzięki Tmux – multiplekserowi terminali. Pozwala tworzyć wiele terminali, uzyskiwać do nich dostęp i zarządzać nimi z jednego ekranu. Za pomocą tego narzędzia możesz również bez wysiłku przełączać się pomiędzy różnymi aplikacjami w ramach pojedynczego terminalu.

Ostatnim programem, którego używamy i polecamy do pracy związanej z terminalami, jest Terminator. Ten poręczny emulator terminala umożliwia zmianę kolejności terminali, organizowanie ich w ramach struktury przypominającej siatkę, oraz zapisywanie wielu profili i układów za pomocą edytora preferencji GUI.

Praca z bazami danych

Do wizualnego projektowania, modelowania, generowania i zarządzania bazami danych, niektórzy nasi programiści używają MySQL Workbench. Za pomocą tego narzędzia możemy tworzyć i optymalizować zapytania SQL, administrować środowiskami MySQL, a także monitorować aplikacje MySQL w Performance Dashboard.

MySQL Workbench jest narzędziem do projektowania, modelowania, generowania i zarządzania bazami danych

Źródło: MySQL Workbench

Kolejnym narzędziem używanym przez niektórych z nas do zarządzania bazami danych MySQL, ale także PostgreSQL i SQLite, jest TablePlus. Możemy administrować wieloma bazami danych naraz w natywnej i szybkiej aplikacji. Jego liczne funkcje bezpieczeństwa (takie jak uwierzytelnianie wieloetapowe) zapewniają ochronę baz danych.

Organizacja pracy

Oprócz Jiry, której używamy do zarządzania projektami, mamy też swoje ulubione narzędzia do zarządzania zadaniami, służące do organizacji codziennej pracy. Niektórzy z nas polecają Joplin, aplikację typu open source przypominającą o zadaniach do wykonania. Notatki są wygodnie uporządkowane w notatnikach i możesz łatwo zobaczyć ich historię. Aplikacja działa przede wszystkim offline, jest dostępna dla komputerów stacjonarnych, urządzeń mobilnych i terminali.

Codziennie logujemy się również do różnorodnych aplikacji internetowych i programów. Trudno jest zapamiętać wszystkie hasła, a przechowywanie ich w wielu różnych miejscach jest niebezpieczne. Dlatego używamy menedżerów haseł typu open source, zarówno w ramach całej firmy jak i do celów indywidualnych. W tym drugim przypadku niektórzy z nas używają KeePass, w którym wszystkie hasła są przechowywane w bazie danych zablokowanej kluczem głównym.

Współpraca

Pracujemy w rozproszonych zespołach, ponieważ posiadamy biura w czterech różnych miastach, a często również zdalnie. Sprawna współpraca jest dla nas zatem jeszcze ważniejsza. Aby wyjaśnić, jak coś działa, używamy różnych narzędzi do robienia zrzutów ekranu (ponieważ każdy ma swoje ulubione), takich jak Shutter i Flameshot. Niektórzy programiści wolą rejestrować swoje działania, zamiast pokazywać je na statycznych przykładach, korzystając np. z Kazam, programu do nagrywania ekranu, lub Peek. Za pomocą tego ostatniego narzędzia możemy nie tylko nagrywać obszary ekranu, ale także tworzyć animowane GIF-y.

Oczywiście, na co dzień intensywnie komunikujemy się ze sobą. Naszym głównym narzędziem do tego celu jest Slack, ale niektórzy rozmawiają też np. przez Google Hangouts. W takim przypadku, aby mieć wszystkie rozmowy z różnych platform w jednym miejscu, niektórzy programiści używają Franz – aplikacji do przesyłania wiadomości, która umożliwia dodawanie kont z różnych narzędzi do czatowania.

W aplikacji do przesyłania wiadomości Franz możesz dodać swoje konta z różnych narzędzi do czatowania

Źródło: Franz

W celu przechowywania plików i udostępniania ich członkom zespołu, niektórzy z nas używają FileZilla – bezpłatnego programu FTP (protokół transferu plików) typu open source. Jest łatwy w użyciu i umożliwia zdalną edycję plików.

Przeglądarki i klienci poczty elektronicznej

W Droptica korzystamy z pakietu Google, więc Chrome i Gmail towarzyszą nam na co dzień. Jednak niektórzy z nas lubią też korzystać z Chromium (Google używa jego kodu źródłowego dla Chrome) i Thunderbirda. Ten drugi to wieloplatformowy klient poczty elektronicznej, który pozwala łączyć konta e-mail od różnych dostawców, aby mieć wszystkie wiadomości w jednym miejscu.

Rozwój API, maszyny wirtualne i projektowanie graficzne

Wielu naszych programistów chętnie korzysta z programu Postman. To platforma służąca do współpracy przy rozwijaniu API. W sprawy związane z API zaangażowane są różne osoby. Niektóre z nich projektują API, inne go programują, dział wsparcia klienta i sami klienci pracują z nim na co dzień. W programie Postman użytkownicy API mogą być na bieżąco z najnowszymi zmianami. Mogą również zostawiać informacje zwrotne dla programistów i innych producentów. Ta ostatnia grupa może wykorzystać te opinie do ulepszenia API.

Sekcja komentarzy w Postman, jednym z narzędzi programistycznych, które używamy

Źródło: Postman

VirtualBox jest rzadziej używanym pośród nas narzędziem, ale nadal bardzo wartościowym. Jest to oprogramowanie do wirtualizacji typu open source, do tworzenia gościnnych maszyn wirtualnych i zarządzania nimi, działające na systemach Windows, Linuks, Macintosh, Solaris, i OpenSolaris.

Do szybkich prac projektowych niektórzy z nas lubią używać Krita, programu typu open source do tworzenia grafiki. Oferuje ponad sto rodzajów pędzli, narzędzi wektorowych i pól tekstowych. Możesz także poszerzyć swój zestaw narzędzi, importując tekstury i pakiety pędzli od innych twórców.

Wolność wyboru

Jak widzisz, korzystamy z szerokiej gamy narzędzi programistycznych i nie tylko. To dlatego, że każda osoba w naszej agencji drupalowej może skomponować zestaw najlepiej dopasowany do indywidualnych preferencji. Pracując z nami, możesz wprowadzić i używać swoje ulubione oprogramowanie. Wiemy, że podnosi to poziom produktywności i poprawia komfort pracy.