W ciągu ostatnich długich miesięcy miałem okazję zaangażować się w dwa większe projekty o skali zbliżonej do największych, jakie realizowałem w ciągu ostatnich 10 lat. Ponad 6 miesięcy oraz setki godzin developmentu doprowadziły mnie do punktu w którym wykupiłem licencję i zainstalowałem InteliJ. Czyli po kilku latach z VSC wróciłem do Jet Brains. Tylko dlaczego i czy to słuszny krok?
Jeszcze zanim zaczniemy, chciałbym nadać pewien kontekst. To co za chwilę przeczytasz to nie wyrok 😅. Mało tego nawet nie wiem czy mam rację, bo właśnie skończyłem wstępną konfigurację InteliJ oraz nie mam 100% pewności czy sposób wykorzystania przeze mnie VSC w pełni wyczerpuje jego możliwości, choć z czystym sumieniem mogę powiedzieć, że poświęcałem sporo uwagi na jego konfigurację. Mam przekonanie, że odpowiednia konfiguracja narzędzi z którymi pracujemy jest podstawą wybitnej efektywności oraz nawet satysfakcji.
W tym wszystkim chodzi o detale
W przypadku jednego z projektów wykorzystywaliśmy Vue 2 oraz Express.js na back-endzie. Dodatkowo back-end komunikuje się z drugą aplikacją. Wraz z upływem kolejnych tygodni, aplikacja rozrastała się, powstawały nowe komponenty i serwisy. Poziom interakcji pomiędzy nimi momentami wymagał ode mnie maksymalnego skupienia bo już logika biznesowa sama w sobie była skomplikowana a przeniesienie jej do aplikacji niczego nie ułatwiało.
Pomimo w mojej opinii solidnej architektury oraz konwencji nazw, których się trzymaliśmy, w pewnym momencie zaczęło to bardzo przytłaczać i zamiast skupić się na wdrażaniu logiki, marnowałem czas na próbie odnalezienia ścieżek, których nie widział VSC lub metod do których implementacji nie mogłem szybko się przenieść.
Pomimo szeregu rozszerzeń i ustawień, VSC ciągle gubił się w kodzie i miałem jasne sygnały, że "nie ma pojęcia" co właśnie próbuję zrobić.
Swoją drogą TabNine czasem robił lepszą robotę niż VSC i to akurat mogę bardzo polecić.
W każdym razie traciłem na tym etapie nie tylko czas, ale również uwagę i masę energii! A zobaczyłem to dopiero w chwili gdy na Zoomie, Michał z którym rozwijam tę aplikację, nawigował po kodzie.
Wtedy przypomniałem sobie jak to dobrze było mi z InteliJ.
Błędy których można było uniknąć
Ponownie dopiero w ostatnich tygodniach zauważyłem jak wiele błędów, które podkreślał mi Michał przeglądając moje commity, mogło być wyłapanych na wczesnym etapie, gdyby VSC rozumiał kod nieco lepiej.
Niektóre z nich wynikały z problemów z refaktoryzacją, której również zupełnie nie można porównywać w VSC vs. InteliJ.
Popełniałem również prostsze błędy, które nie przenikały do aplikacji ale marnowały mój czas. Np. po pobraniu zmian, pomimo jasnej informacji z gita, o "breaking changes", zapominałem zainstalować nowe zależności a nie zawsze sygnały o ich braku docierały do mnie od razu. W ten sposób marnowałem czas na debugowanie, podczas gdy InteliJ sam wykrywa zmiany w package.json i jasno nas o nich informuje.
Takich detali jest więcej i stopniowo zaczynałem rozumieć, dlaczego na każdym kickoffie Michał pytał mnie czy już wykupiłem licencję.
Wymieniając pierwsze z brzegu: praca z gitem, historia zmian, refaktoryzacja, praca z bazą danych (w tym przypadku mySQL) - praktycznie wszystko to można osiągnąć w VSC, jednak już pierwsze godziny pracy w InteliJ, pokazują mi jasno że to nie to samo.
Dlaczego VSC i dlaczego dopiero teraz zdecydowałem się na InteliJ?
W momencie gdy przechodziłem z WebStorm na VSC kontekst był nieco inny. Pracowałem na innych projektach, innej skali a WS w porównaniu do VSC wypadał miejscami słabo. W ciągu kolejnych lat sytuacja zaczęła się mocno zmieniać i w mojej opinii aktualnie JetBrains po prostu zrobiło swoją robotę.
Drugim istotnym aspektem był fakt, że nagrywam mnóstwo materiałów wideo i możliwość skalowania interfejsu w WS była niesamowicie zbugowana. Teraz tego problemu już nie ma i tym samym dla mnie padł ostatni bastion VSC.
A może jestem w błędzie?
No właśnie! Jeżeli masz stosunkowo świeże porównanie VSC vs. IDE od JetBrains i nie zgadzasz się z tym, co napisałem wyżej, daj mi proszę znać. Chętnie zobaczę czy moje obserwacje są słuszne czy może po prostu brakuje mi wiedzy z zakresu konfiguracji VSC.
Z pewnością o moich wrażeniach z wykorzystania InteliJ będę jeszcze pisał. Na ten moment chciałem jeszcze podkreślić, że wybór IDE mocno zależy od naszego kontekstu oraz projektów z którymi pracujemy.
Ten wpis nie miał na celu bezpośredniej krytyki VSC tylko przedstawienia moich obserwacji. Przykładowo wyobrażam sobie że w niektórych sytuacjach korzystanie z Sublime Text 4 może być w pełni wystarczające. W innych sytuacjach VSC również świetnie się sprawdzi.
Natomiast jeżeli pracujesz przy nieco większych projektach wykorzystujących nowoczesne stacki, to wziąłbym na poważnie powyższe słowa i przynajmniej sprawdził czy mają one realne przełożenie na Twój kontekst.