Moje środowisko programistyczne

Moje środowisko programistyczne

Raz na jakiś czas, czy to podczas pierwszych dni w nowej pracy czy podczas upgradu sprzętu konfigurujesz swoje środowisko programistyczne. Często są to narzędzia, programy, skrypty, ustawienia do których jesteś przyzwyczajony i dobrze Ci się z nich korzysta. Nawet dzieląc się wewnątrz zespołu tym z czego korzystacie, wiele możesz zyskać i poznać coś nowego. Poniżej moje środowisko programistyczne z którym czuję się dobrze.

JVM

Jako, że jestem głównie javowcem to nie mogę zacząć od rzeczy związanych z java. Jako pierwszego wymienię SDKMAN. Jeśli, jeszcze go nie znasz to jak najszybciej go zainstaluj i zacznij używać. W dużym skrócie jest to narzędzie, dzięki któremu w łatwy sposób będziesz mógł zarządzać wieloma wersjami języków opartych o JVM. Dzięki niemu możesz zapomnieć o ręcznym wyszukiwaniu odpowiedniego sdk, a później o ręcznych zmianach w PATH podczas zmiany wersji.

IDE pluginy

Od około 2015 roku, moim IDE jest IntelliJ – i co tu dużo mówić, jest ono naprawdę dobrym toolem. Wcześniej używałem eclipse i potrafiłem go przy użyciu wielu pluginów dosyć dobrze skonfigurować. Jednak używając IntelliJ, nie mam ich aż tyle co wcześniej, co nie znaczy że ich nie używam. Obecnie mam zainstalowane:

  • Codota AI – plugin, który rozbudowuje/poprawia sugestie proponowane przez Intellij. Fajnie się sprawdza, w przypadku zewnętrznych bibliotek, gdzie pokazuje procentowo najczęstsze użycia. Również dużym plusem tego pluginu są przykłady użycia na podstawie realnych kodów.
  • Rainbow Brackets – dodaje trochę kolorów do nawiasów, klamer. Dzięki temu pluginowi łatwiej zobaczysz otwierające i zamykające nawiasy.
  • SonarLint – jeśli używasz sonara, to dzięki temu pluginowi łatwo podepniesz analizę pod swój kod i wyniki będziesz miał prawie w realtime.
  • Lombok – jedną z wad używania lomboka była potrzeba instalacji pluginu w IntelliJ. Na szczęście od wersji 2020.3 już nie trzeba go instalować.

IDE dodatkowa konfiguracja

Nawet jakoś specjalnie nie konfiguruję mojego IDE oprócz trzech rzeczy. Najważniejszą dla mnie zmianą jest wyłączenie sprawdzania wielkości liter, podczas sugestii/autocomplete. Na pierwszy rzut oka niewielka zmiana, ale naprawdę bardzo dużo możesz zyskać. Aby to osiągnąć, wyszukaj “Code completion” i zaznacz “match case off”. Oprócz tego, również podczas formatowania kodu mam włączoną opcję czyszczenia importów oraz robienia cleaningu na kodzie. Oczywiście, nie mogę też zapomnieć o live templetach. Zawsze mam przygotowany template do generowania szablonów testów, obecnie używam Spocka, więc wygląda on tak:

def "should" () {
   given:
   
   when:
   
   then:
}

Plus dodatkowe templaty w zależności od projektu i konwencji tam przyjętych.

Moje środowisko programistyczne
Moje środowisko programistyczne

Git

O samym gicie nie będę się rozpisywał bo to jednak standard. Bardziej skupię się na paru konfiguracjach, które sprawiają, że praca z nim jest przyjemniejsza. Zwłaszcza wtedy, gdy do większości rzeczy z nim związanych używasz konsoli, tak jak ja.

Pierwszą rzeczą, której domyślnie po instalacji gita mi brakuje – jest wyświetlanie nazwy brancha, na którym aktualnie się znajduję. Jeśli używam zsh, to do pliku .zshrc dodaję:

//.zshrc
function parse_git_branch() {
    git branch 2> /dev/null | sed -n -e 's/^\* \(.*\)/[\1]/p'
}

COLOR_DEF=$'\e[0m'
COLOR_USR=$'\e[38;5;243m'
COLOR_DIR=$'\e[38;5;197m'
COLOR_GIT=$'\e[38;5;39m'
setopt PROMPT_SUBST
export PROMPT='${COLOR_USR}%n ${COLOR_DIR}%~ ${COLOR_GIT}$(parse_git_branch)${COLOR_DEF} $ '

A po skończonej edycji wykonuję:

source .zshrc

Czym byłoby środowisko programistyczne z gitem bez aliasów? Też ich używam w takiej formie jakie są dla mnie wygodne, zwłaszcza mój ulubiony alias tree.

git config --global alias.ch checkout
git config --global alias.st status
git config --global alias.pu pull
git config --global alias.tree 'log --graph --decorate --pretty=format:"%h %aN %ai %s" --abbrev-commit'
git config --global alias.showalias 'config --get-regexp alias'
git config --global alias.pushtoremote 'push -u origin'
git config --global alias.c 'commit -m'
git config --global alias.ca 'commit --amend -m'

A skoro już używam gita nie mogę zapomnieć o podaniu nazwy i maila użytkownika

git config --global user.name "Mariusz Okaz"
git config --global user.email "mariusz.okaz@example.com"

Toole

Oprócz rzeczy związanych z czystym programowaniem, także używam różnych tooli. Pierwszym i chyba najważniejszym jest Docker. Dzięki niemu w łatwy sposób mogę zainstalować i mieć skonfigurowaną bazę, usługi których używam w projekcie.

Do zarządzania bazą używam DBeaver. Jest to narzędzie, które obsługuje wiele baz. W wersji płatnej wspiera również bazy dokumentowe i BigData.

Aby testować RESTy, to głównie wykorzystuję do tego celu Postmana. Wiem, że w IntelliJ jest bardzo fajny klient, ale tutaj górę bierze moje przyzwyczajenie.

Czasem też trzeba podziałać na plikach w systemie, do tego celu używam Double Commandera, bardzo podobnego do TotalCommandera.

Inne

Z takich innych rzeczy, bardzo ważne dla mnie są zeszyt i długopis. Mogę wtedy zrobić jakieś notatki, coś sobie rozpisać, narysować czy nawet zarzucić kotwicę podczas myślenia i wrócić do tego za chwilę. Przeglądarka internetowa też jest moim podstawowym narzędziem pracy, jednak nie mam w niej zainstalowanych żadnych blokerów. Dodatkowo jestem zalogowany w google i na stackoverflow. Ostatnio testuje konsolowe narzędzie typu todo – taskline i jak na razie sprawdza się dosyć dobrze. Komunikatory, vpn, menadżery haseł i tego typu programy są mocno związane z firmą w której pracuję i nie wchodzą bezpośrednio w moje środowisko programistyczne.

Środowisko programistyczne

To są moje narzędzia, których używam na co dzień i które są dla mnie wygodne. Od ich zainstalowanie i skonfigurowania zaczynam przygotowanie mojego środowiska programistycznego. Do wielu z nich jestem przyzwyczajony od wielu lat i również wiele rzeczy, konfiguracji robię automatycznie. A czy Ty możesz podzielić się innymi narzędziami, które są dla Ciebie niezbędne? Może także, masz jakieś konfiguracje w IDE, które sprawiają, że lepiej Ci się pracuje.