Szukając odpowiedniego narzędzia do analizy i prezentacji danych, z pewnością natrafimy na szeroki wachlarz produktów dostępnych na rynku Business Intelligence. W ostatnim raporcie Gartnera dotyczącego analizy narzędzi rynku BI, w którym bierze się pod uwagę kompletność wizji i zdolność do jej realizacji, na pozycji lidera uplasowały się trzy produkty: Microsoft BI, Tableau i Qlik. W tym artykule pragnę przedstawić narzędzia platformy Qlik: Qlik View oraz Qlik Sense, które na rynku polskim wdrażane są już od wielu lat, a z obserwacji śmiem twierdzić, że przyjmują się u nas znacznie lepiej niż system Tableau. Z punktu widzenia managera są one zdecydowanie bardziej wygodne – zarówno w mniejszych, jak i dużych organizacjach.
Excel vs Qlik – dwa różne światy analizy
Dla wielu managerów Excel stanowi obecnie jedyne lub przynajmniej najważniejsze narzędzie analizy. Połączony z PowerPointem jest wykorzystywany do prezentacji danych w trakcie zebrań i spotkań firmowych czy biznesowych. Czy jednak możliwości, jakie daje Excel, są w stanie w pełni zaspokoić rosnącą potrzebę informacji? Trzeba przyznać, że nie jest łatwo zaobserwować w nim zmienności danych według jakiegoś interesującego nas wymiaru, wzajemnych powiązań, nie mówiąc już o drążeniu i uszczegółowieniu według określonych obszarów poddawanych analizie (chociaż jest to możliwe, więcej na ten temat tutaj).
Excel nadal może stanowić źródło danych, jednak warstwa prezentacji w nowoczesnych narzędziach BI nabiera nowego, szczególnego znaczenia. Dzięki wdrożeniom narzędzi Qlik tradycyjnie przygotowane prezentacje PowerPointowe zastępowane są przez dynamiczne kokpity menedżerskie prezentowanych w przeglądarce, na tablecie lub w smartfonie. Zautomatyzowanie procesu przygotowania i prezentacji danych, zwizualizowanie powiązań między nimi oraz swobodna eksploracja stanowi znaczącą wartość dodaną w firmowych analizach i raportowaniu.
Narzędzia Qlika pozwalają wyeksportować dane do Excela lub PowerPointa. Możliwe jest nawet bezpośrednie tworzenie tzw. stories, czyli historii powstałych ze zrzutów ekranu poszczególnych obiektów, połączonych z własnym komentarzem, obejmujących analizę danego zagadnienia w celu jego przejrzystej prezentacji.
Data Discovery
Firma Qlik została założona w Szwecji w 1993 roku, a obecnie ma siedzibę w Radnor (Pensylwania, USA). Przez te lata rozwijała i rozwija produkt klasy Business Intelligence o nazwie QlikView, a od 2014 roku także Qlik Sense. Z rozwiązań tych korzysta około 39 000 klientów na całym świecie, wspieranych przez ponad 1 700 firm partnerskich w ponad 100 krajach, w tym także przez Inetum.
Od początku wizją firmy Qlik było tworzenie oprogramowania intuicyjnego, zbliżonego w działaniu do pracy ludzkiego umysłu. Z pewnością można powiedzieć, że określenie „Data Discovery”, które zaczyna w świecie analizy zyskiwać na popularności, mocno zakorzenione jest w produktach Qlika. Jest to odkrywanie informacji poprzez drążenie danych i ich asocjację.
Poznaj całą historię swoich danych, czyli parę słów o asocjacji
Opatentowany silnik asocjacyjny Qlika (QIX) dostarcza użytkownikowi informacje skojarzone ze sobą, generowane ad hoc z uwzględnieniem dokonanych selekcji. Poprzez intuicyjne „wklikiwanie się” w dane użytkownik może zawęzić obszar analizy (tabele, wykresy, KPI, filtry, mapy) by zobaczyć, co jest ze sobą powiązane i co z czego wynika.
Naszą analizę możemy rozpocząć w dowolnym miejscu i przejść dalej do dowolnego innego zakresu danych. Silnik asocjacyjny automatycznie zarządza relacjami między danymi, prezentując również informacje na polach dostępnych filtrów w trzech kolorach: zielonym, białym i szarym. Wybrane przez użytkownika pozycje podświetlone są na zielono, pozycje powiązane z tym wyborem pozostają białe, a pola niepowiązane z daną selekcją są szare. Ta informacja pomaga użytkownikowi w prowadzeniu kolejnych zawężeń. Tym charakteryzują się oba produkty Qlika: QlikView i Qlik Sense. Warto tutaj dodać, że zawężanie przez użytkownika nie musi odbywać się jedynie na filtrach, lecz również na obiektach typu: tabela, wykres, mapa.
Podstawowe kolory prezentujące asocjacje między danymi: zielony, szary i biały
Ponadto silnik Qlika i otwarte API pozwalają na wyświetlenie obiektów analizy na portalu firmowym, stronach internetowych czy w aplikacjach webowych.
Przygotowanie analizy, udostępnienie przez przeglądarkę, bezpieczeństwo danych
Źródłem danych dla narzędzi Qlik mogą być bazy danych, systemy zewnętrzne, pliki płaskie (m.in. Excel, CSV), dane pochodzące z Internetu czy z portali społecznościowych. Użytkownik lub developer przygotowuje tzw. aplikacje z procesem zasilania modelu danych oraz z warstwą ich wizualizacji. Aplikacja może zawierać wiele arkuszy z tabelami prostymi lub przestawnymi, wykresami, wskaźnikami KPI, mapami. Tak przygotowana może zostać następnie udostępniona przez przeglądarkę szerszemu gronu odbiorców. Istnieją również mechanizmy bezpieczeństwa w dostępie do aplikacji lub określonych zawartych w niej danych (tzw. Section Access). Istnieje możliwość kontroli uprawnień użytkowników nawet do pojedynczego pola w tabeli.
Analiza In-memory, czyli szybko w pamięci RAM
Standardem dla narzędzi klasy Business Intelligence staje się procesowanie analiz In-memory, czyli w pamięci operacyjnej RAM komputera. Jest to na dzień dzisiejszy najszybsza metoda przetwarzania danych. Każda aplikacja udostępniona w Qliku podczas swojego przeładowania pobiera wszystkie dane określone w modelu. Jest ona wraz z tymi danymi lokowana w pamięci RAM, co pozwala na wydajną analizę nawet dużych zbiorów danych oraz skomplikowanych obliczeń. Istotnym zatem staje się rozmiar dostępnej pamięci operacyjnej.
Przegląd rozwiązań IT firmy Qlik
Qlik dostarcza wiele rozwiązań dla wspierania analizy danych. Dwa główne produkty to QlikView i Qlik Sense dostarczany w wersji Desktop, Cloud, Enterprise lub jako Analytics Platform.
Te narzędzia mogą być wzbogacone o usługi NPrinting (automatyczne generowanie raportów i dystrybucja w znanych formatach plików, m.in. PDF, XLSX, HTML) oraz DataMarket (dostęp do danych publicznych takich jak kursy walut, dane demograficzne, ekonomiczne, społeczne, pogodowe).
Struktura narzędzi Qlik – materiały marketingowe producenta
Qlik Sense Desktop – darmowa aplikacja pod Windowsa, pozwalająca użytkownikowi z łatwością tworzyć analizy i eksplorować dane, jednak bez możliwości ich dalszego udostępniania.
Qlik Sense Enterprise – pełna funkcjonalność Qlik Sense pod pracę na serwerze (dostęp przez przeglądarkę), dostosowana do potrzeb indywidualnych, grupowych lub organizacyjnych.
Qlik Sense Cloud – oferuje funkcjonalność Qlik Sense w chmurze, tworzenie aplikacji, udostępnianie innym użytkownikom, analiza poprzez ulokowanie zasobów na zewnętrznym serwerze.
Qlik Analytics Platform – platforma programistyczna z silnikiem asocjacyjnym Qlika z możliwością tworzenia własnych wizualizacji udostępnianych na stronach internetowych.
QlikView – usługi serwerowe oraz aplikacja desktopowa pod Windows (w tym darmowy Personal Edition), pozwalająca na tworzenie zaawansowanych kokpitów menedżerskich, dostępnych w pełnej wersji z poziomu przeglądarki dla wielu użytkowników. Ograniczeniem Personal Edition jest brak możliwości udostępnienia przygotowanej aplikacji osobom trzecim.
Przykładowy kokpit menedżerski w QlikView.
QlikView vs Qlik Sense
Responsywność i mobilność
QlikView to dojrzałe i zaawansowane narzędzie analizy danych. Ma jednak swoje ograniczenia, takie jak np. brak responsywności. Jest to cecha, która automatycznie dostosowuje rozmiar obiektów (np. wykresów, tabel) do rozmiaru ekranu urządzenia, na którym są wyświetlane. Szczególnie dotyczy to urządzeń mobilnych. Niestety QlikView jest „sztywny”. Jeśli dana aplikacja powinna być również prezentowana na urządzeniach mobilnych musi być zduplikowana i zmodyfikowana do oczekiwanych rozmiarów.
Qlik Sense natomiast jest nowym i dynamicznie rozwijającym się produktem pisanym w standardzie HTML5. Tworzone aplikacje są responsywne, wspierające analizę przez dotyk na urządzeniach mobilnych. Qlik Sense jest odpowiedzią na konkurencyjny produkt Tableau, który posiada możliwość responsywności.
Wielowymiarowe analizy
QlikView umożliwia przetwarzanie informacji z wykorzystaniem wielowymiarowych baz danych, tzw. systemy OLAP (z ang. On-Line Analytical Processing). Takiej funkcjonalności nie posiada natomiast Qlik Sense. Narzędzia OLAP są często używane do wykonywania analiz trendów sprzedaży, czy też analiz finansowych (hurtownia danych).
Self-service
Tworzenie aplikacji w QlikView wymaga wcześniejszego przygotowania. Najczęściej wdrożenia tego systemu prowadzone są przez partnerów Qlika.
Qlik Sense został stworzony z myślą o samoobsłudze w tworzeniu przez użytkownika kokpitów analitycznych. Tworzenie obiektów metodą „przeciągnij i upuść” jest intuicyjne. Również dołączanie nowych źródeł (plików płaskich) i tworzenie modelu połączonych ze sobą danych nie powinno być problematyczne. Przy bardziej zaawansowanych potrzebach wizualizacji danych, których w standardzie Qlik Sense (jeszcze) nie oferuje, istnieje możliwość dołączenia własnych obiektów lub przygotowanych przez innych (pisanych w JavaScript). Najczęściej te prace wykonują deweloperzy firm partnerskich.
Przykładowy kokpit menedżerski w Qlik Sense
Rozbudowa systemu
Często pojawia się potrzeba rozbudowy standardowej wizualizacji. W QlikView jak i w Qlik Sense istnieje taka możliwość. Z tą różnicą, że Qlik Sense daje duże wsparcie przy tego typu pracach, , gdyż całe to narzędzie skupia się na wizualizacjach. Z kolei QlikView umożliwia na manipulowanie danymi poprzez skrypty, stąd częściej jest wykorzystywane przez osoby techniczne.
Narzędzia Qlika prócz swoich standardowych obiektów są otwarte na płynną adaptację obiektów przygotowanych przez środowisko deweloperskie.
Otwarte API – osadzanie obiektów na własnych stronach internetowych
Qlik Sense pozwala na udostępnianie obiektów oraz funkcjonalności silnika asocjacyjnego „na zewnętrz”. Możemy osadzać różne obiekty (tabele, wykresy) na firmowym portalu, stronie internetowej czy w innym systemie webowym oraz korzystać z dynamicznej analizy również w tych zewnętrznych obszarach.
Qlik w Polsce
Na początku 2021 roku przeprowadziliśmy badanie wśród użytkowników różnego rodzajów systemów analityczno-raportowych typu Business Intelligence, podstawie których stworzyliśmy raport Wykorzystanie narzędzi klasy Business Intelligence w Polsce. Choć narzędzia tego typu są coraz bardziej popularne, wśród ankietowanych jedynie 21% korzystało z Qlika (zarówno QlikView, jak i Qlik Sense), w przeciwieństwie do Excela, z którego korzystało aż 53% badanych.
Wśród głównych powodów, których firmy nie decydują się na wdrażanie rozwiązań Business Intelligence są brak budżetu, bak wystarczającej ilości danych do analizy, brak odpowiednich specjalistów w organizacji lub po prostu brak wiedzy jak się zabrać za wdrożenie.
Z doświadczenia wdrożeniowego
Ktoś kiedyś powiedział, że „Business Intelligence to dostarczanie właściwych danych właściwym ludziom o właściwej porze, by podjęli właściwe decyzje”. Narzędzia Qlika od swoich podstaw były tworzone by spełniać te funkcje. Są interakcyjne, nie statyczne. To wyróżnia je na rynku systemów Business Intelligence. Bogata wizualizacja, asocjacyjność danych, otwarte możliwości rozbudowy sprawiają, że Qlik świetnie dostosowuje się do zmieniających potrzeb biznesowych informacji. Prócz dostępnych narzędzi kluczowym staje się użytkownik końcowy, dla którego mają być one użyteczne. Qlik Sense zachęca takich użytkowników do rozpoczęcia pracy z systemem samodzielnie, z możliwością tworzenia własnych kokpitów menedżerskich. Wprowadzenie systemu do firmy łączy się jednak z usługą wdrożeniową. QlikView jest z kolei preferowany przy potrzebach analizy metodyką DAR (Dashboard >> Analysis >> Reporting), czyli od informacji zagregowanych po analizę i raportowanie. Na początku wdrożenia firmy przedstawiają nam obecny proces przygotowania raportów, prosząc o przeniesienie i zautomatyzowanie w narzędziu QlikView. Gdy ten etap zostanie zakończony, często po „zaprzyjaźnieniu się” z nowym narzędziem, naturalnie pojawiają się kolejne potrzeby wzbogacenia analiz z wykorzystaniem możliwości, jakie daje Qlik. Bardzo ważne jest, by dane w analizach były godne zaufania. Co z tego, że system ma możliwości wspaniałej prezentacji danych, jeśli użytkownik dostaje je niewłaściwie przetworzone. Doświadczony zespół wdrożeniowy oraz osoby ściśle współpracujące po stronie klienta winny dbać o proces przepływu danych i ich jakości. Natomiast dzięki wdrożeniu narzędzia analitycznego nie rzadko sam użytkownik staje się „strażnikiem czystości danych”, gdyż potrafi zauważyć w analizach takie sytuacje, które okazują się przyczyną błędu ludzkiego na etapie wprowadzania danych źródłowych.
Komentarze (0)
Napisz komentarz
Nie ma tutaj jeszcze żadnego komentarza, bądź pierwszy!
Odkryj najlepsze AI do programowania w 2025 roku! Których narzędzi używać, a których unikać, by uzyskać najlepsze efekty w programowaniu.
W dzisiejszym artykule przyjrzymy się tematowi, który jest obecnie bardzo na czasie, a mianowicie AI w programowaniu. Sztuczna inteligencja jest coraz bardziej powszechna wśród programistów na różnych etapach tworzenia oraz rozwoju oprogramowania. Kiedy pierwszy raz widziałem AI w akcji, byłem zaskoczony jej możliwościami. Nie było to narzędzie doskonałe, ale mimo wszystko zrobiło na mnie wrażenie.
Na chwilę obecną posiadamy wiele narzędzi, modeli AI oraz bardzo dużo integracji z oprogramowaniem, z którego korzystamy na co dzień, więc każdy znajdzie coś dla siebie. Nieważne, czy programujesz, zajmujesz się marketingiem, czy grafiką – AI jest obecne wszędzie… Zapraszam was do dalszej części artykułu, gdzie porozmawiamy o tym, jak AI w codziennej pracy pozwala programistom przyspieszyć wydajność oraz poprawić jakość i czytelność naszego kodu.
AI for coding: najlepsze narzędzia AI do programowania w 2025 r.
Czy wiesz, że już nawet 76% osób zajmujących się programowaniem korzysta lub planuje używać narzędzi związanych z AI w swojej codziennej pracy? Albo że użytkownicy Copilota wykonywali zadania o około 55% szybciej niż bez AI? Tak wynika z przeprowadzonej przez Stack Overflow w 2024 roku ankiety.
Na chwilę obecną narzędzia AI są już tak zaawansowane, że nie tylko kod generują, ale również wspierają cały cykl tworzenia oprogramowania.
Jakie są najlepsze AI do generowania kodu?
Część z was pewnie ma już swoje ulubione narzędzia, z których korzysta na co dzień. Obecnie najbardziej popularne narzędzia, o których pewnie słyszała większość osób w branży, to GitHub Copilot, ChatGPT (OpenAI) i Amazon CodeWhisperer.
Ta wymieniona trójka to pionierzy wśród asystentów i chatbotów AI, ale na rynku są też inne narzędzia, o których opowiem za chwilę.
GitHub Copilot
Zacznijmy od GitHub Copilota – pioniera wśród asystentów AI, który korzysta z modeli OpenAI. Możemy go zintegrować z popularnym VS Code, dzięki czemu podczas pisania kodu będziemy mieli podpowiedzi bezpośrednio w edytorze.
ChatGPT
Kolejnym ciekawym narzędziem, o którym pewnie słyszała większość z was, jest ChatGPT. Chat ten korzysta z modeli OpenAI, czyli tak samo jak Copilot, ale z tą różnicą, że nie jest on zintegrowany z edytorami. Pomoże ci napisać fragmenty kodu albo rozwiązać jakiś problem związany z kodem.
CodeWhisperer
Z topowej trójki zostaje nam jeszcze CodeWhisperer od Amazon. Jest to swojego rodzaju asystent do programowania z użyciem usług takich jak AWS i nie tylko, więc jeśli zajmujesz się tematyką chmurową, to myślę, że warto go sprawdzić!
Tabnine
Poza tymi, które wymieniłem, są jeszcze inne narzędzia. Zacznijmy od Tabnine. Narzędzie to jest oparte na autouzupełnianiu i, co najważniejsze, może działać jako self-hosted, gwarantując, że nasz kod nigdzie nie wypłynie.
Codeium
Możliwe, że część użytkowników słyszała o darmowej alternatywie dla Copilota, a mianowicie Codeium. Użytkownicy bardzo chwalą narzędzie, że działa całkiem przyzwoicie jako alternatywa, zapewnia automatyczne uzupełnianie i sugestie kodu, które wcale nie ustępują komercyjnym rozwiązaniom.
Gemini Code Assist
Ostatnim z popularnych AI, tym razem od Google, jest Gemini Code Assist. Narzędzie to potrafi zrobić nawet code review, więc jeśli szukasz AI, które wstępnie sprawdzi twój kod, to może warto spróbować?
Jak widzisz, mamy tutaj całkiem sporo narzędzi i ciężko jest jednoznacznie stwierdzić, które narzędzie będzie dla ciebie odpowiednie, a jeszcze trudniej wskazać, które będzie najlepsze z nich wszystkich. Każdy z nas oczekuje czegoś innego. Jedni będą pracować z technologiami AWS i wybiorą CodeWhisperer, a ktoś inny postawi na privacy-first i wybierze Tabnine. Znajdą się też osoby, dla których wystarczy chatbot, i wybiorą ChatGPT. W mojej ocenie każde z tych narzędzi na pewno pomoże ci w codziennej pracy.
Które narzędzia AI są darmowe?
Z narzędzi wymienionych do generowania kodu mamy dostępnych kilka opcji, ale zawsze trzeba zwracać uwagę na to, czy będziemy z nich korzystać hobbystycznie, czy realizując projekt komercyjny.
Większość narzędzi jest darmowa dla użytkowników indywidualnych, a za lepsze wersje lub dodatki trzeba po prostu zapłacić.
Google Gemini Code Assist – udostępnia darmowy plan z bardzo wysokimi limitami zapytań i, według mnie, jest to najlepsza alternatywa spośród wszystkich wymienionych.
Amazon CodeWhisperer – ma plan darmowy, ale tylko dla użytkowników indywidualnych, więc jeśli tworzysz projekt dla siebie w technologiach np. AWS, warto go sprawdzić.
Codeium – dla użytkowników indywidualnych jest całkowicie darmowy, oferuje nielimitowane podpowiedzi kodu i wspiera wiele języków programowania. Według mnie to bardzo ciekawy wybór.
ChatGPT – tak jak wspominałem na początku i pewnie nie skłamię, pisząc, że większość osób w branży IT słyszała o tym chatbocie. W wersji bezpłatnej pomoże ci wygenerować np. komponent w React albo zrobić refaktoryzację kodu, jeśli oczywiście wpiszesz odpowiedni prompt. Jednak za wersję premium trzeba już zapłacić.
Są też inne narzędzia wymienione wcześniej takie jak GitHub Copilot, Tabnine, które są co prawda bezpłatne w podstawowej wersji i będą nam generowały kod, ale jeśli oczekujemy od nich czegoś więcej, to trzeba wykupić pełny plan lub specjalną subskrypcję, więc nie są w pełni darmowe.
Tak naprawdę, jeśli tworzymy coś hobbistycznie i w mniejszej skali, to większość tych narzędzi będzie dla nas dostępna za darmo (z większymi lub mniejszymi limitami). Wszystko zależy więc od licencji, i od tego, do czego użyjemy danego narzędzia. Pamiętajmy też o tym, że to, co w momencie pisania artykułu jest darmowe, za miesiąc może już nie być, bo licencja się zmieni, więc warto sprawdzić to na własną rękę przed instalacją.
Jakie są dostępne funkcje AI w edytorach kodu, takich jak VS Code?
Większość narzędzi, które wcześniej wymieniałem, posiada integracje z popularnymi edytorami np. (VS Code) lub IDE. Github Copilot może zostać włączony bezpośrednio w VS Code, dzięki czemu możemy się cieszyć podpowiedziami w kodzie właściwie od razu.
Copilot Chat pozwala za to zadawać pytania o kod, a Copilot w trybie „agent” wykonuje już złożone polecenia, np. uruchamia unit testy.
Tak jak widzimy, mamy cały wachlarz możliwości – od chatu w VS Code, poprzez autouzupełnianie kodu, na uruchamianiu unit testów czy modyfikowaniu całych plików kończąc. Dodatkowo pamiętajmy, że z powyżej wymienionych mamy narzędzia, które nie wysyłają kodu na zewnętrzne serwery, więc nawet przy projektach o wysokich wymaganiach bezpieczeństwa nasze zespoły security będą zadowolone, a dzięki temu będziemy mogli korzystać z AI.
Jak AI wpływa na jakość kodu
AI to nie tylko generowanie kodu komponentów i rozwiązywanie codziennych problemów w kodzie. Na chwilę obecną AI potrafi przeanalizować istniejący kod w poszukiwaniu błędów lub celem sugerowania innych usprawnień. Powiem więcej, zrobi refaktoryzację i code review! Możemy ustawić takie narzędzie AI jako dodatkowego „recenzenta” naszego kodu, który wykrywa np. podejrzany kod marnej jakości, czyli tzw. „code smells”, a nawet luki w bezpieczeństwie.
Jak AI może pomóc w code review
Dla przykładu, Gemini Code Review wykona analizę pull requesta i podkreśli fragmenty, na które warto zwrócić uwagę i ewentualnie je poprawić.
Jeśli korzystasz z GitHuba i jego rozwiązań, to Gemini Code Assist wyłapie nawet niespójności w konwencji kodowania i sprawdzi, czy ich przestrzegasz.
Tak jak widzisz, temat jest bardzo rozległy, i jeśli dobrze dobierzemy narzędzia AI, to możemy uniknąć wielu roboczogodzin przy sprawdzaniu tego typu rzeczy podczas rozwoju oprogramowania. AI wyłapie te niuanse za nas, a my będziemy mogli skupić się na innej pracy.
Najlepsze praktyki używania AI do poprawy jakości kodu
1. Sprawdzaj
Zasada numer jeden, której według mnie należy przestrzegać, to ta, że AI ma ci pomóc w „nakierowaniu” na rozwiązanie twojego problemu. Pamiętaj, aby zweryfikować wszystko, co podpowie ci AI, bo nie zawsze odpowiedzi, które otrzymasz, będą prawidłowe. Jeśli już zastosujesz się do powyższej zasady, to możemy przejść dalej.
Słyszałem już od wielu osób, że AI bardzo pomaga w pisaniu testów jednostkowych, przynajmniej we frontendzie. Pisanie testów jednostkowych do najprzyjemniejszych nie należy, a w wielu przypadkach trzeba napisać bardzo dużo powtarzającego się kodu typu boilerplate. AI wygeneruje ci unit testy bardzo szybko i zaoszczędzisz przy tym sporo czasu na development, ale pamiętaj – zawsze weryfikuj to, co dostarcza ci AI.
2. Postaw na iteracyjną refaktoryzację
Kolejną rzeczą, do której według mnie AI sprawdzi się na co dzień, jest iteracyjna refaktoryzacja i ulepszanie twojego kodu. Wiesz, jak wygląda kod, w którym ktoś dopisał kawałek kodu w pośpiechu, bez większego zastanowienia, aby tylko działało? Czasami taki kod jest zupełnie nieczytelny, albo dochodzi do wielu zagnieżdżeń i tzw. ifologii. W takim przypadku AI poprawi to za ciebie i zasugeruje ci optymalne rozwiązanie. Pozbędziesz się w ten sposób mało czytelnego kodu, a twoje funkcje będą bardziej przejrzyste, kod ładnie sformatowany, a pull request dla osób robiących ci review – przyjemniejszy do czytania.
3. Bądź elastyczny
Pamiętaj, że AI nie zwalnia z samodzielnego myślenia, a najlepsze efekty osiągniesz, gdy będziesz weryfikować, ale i stosować pomysły, które według ciebie sprawdzą się w danym projekcie.
Tutaj trzeba wybrać, co jest odpowiednie w danej chwili.
Korzyści użycia AI w programowaniu
Oszczędność czasu
Ja osobiście dostrzegam tutaj dwie główne korzyści – oszczędność czasu na prostych i powtarzalnych zadaniach oraz zwiększenie produktywności. AI świetnie sprawdza się przy generowaniu powtarzalnego i żmudnego kodu typu boilerplate, więc możemy ten czas poświęcić na coś bardziej kreatywnego.
Większa produktywność
Druga rzecz to produktywność – taki asystent może sprawić, że zajmiemy się trudniejszymi zadaniami, a te proste oddamy AI, więc będziemy też bardziej produktywni.
Łatwiejsze wyszukiwanie
Ważną i niedocenianą rzeczą jest też fakt, że AI dobrze radzi sobie z dokumentacjami. Nie musimy już walczyć z przeszukiwaniem internetu czy dokumentacji, aby znaleźć jakieś informacje – AI zrobi to dużo szybciej. Dzięki temu możemy poświęcić się pracy bardziej kreatywnej, czyli skupić się np. na architekturze aplikacji, a nie na powtarzalnej i nudnej „drobnicy”.
Potencjalne pułapki z AI w programowaniu
Halucynacje AI
Jednym z największych problemów związanych z AI jest to, że doświadczają tzw. halucynacji. To, co czasami wydaje się na pierwszy rzut oka poprawne, po głębszej analizie może (ale nie musi) zawierać błędy logiczne, albo może robić coś zupełnie innego, niż oczekujemy.
Jeśli porcja kodu, którą dostaliśmy od AI, jest duża, to może zdarzyć się, że będzie to trudne do wykrycia. Jeśli nie masz dobrych unit testów, to możesz nawet nie zdawać sobie sprawy, że AI właśnie dodało ci błąd w kodzie, albo, co gorsza, wprowadzić podatność bezpieczeństwa, z której nawet nie zdajesz sobie sprawy.
Brak rozwoju kompetencji programistycznych
Kolejną pułapką jest spadek umiejętności osób, które korzystają z AI na co dzień. Jeśli będziemy zdawali się wyłącznie na AI i jesteśmy na początkującej drodze, to nasze kompetencje mogą ulec zanikowi albo nie zrobimy takiego progresu, jaki byśmy chcieli. Nie oszukujmy się, ale jeśli ktoś dostaje gotowe rozwiązanie, to jest duża szansa, że nie nauczy się tego na własną rękę i nie będzie potrafił wyjaśnić logiki działania wygenerowanego kodu. Nie mówię tutaj tylko o AI, ale generalnie o tzw. gotowcach. Krótkoterminowo raczej nikt na tym nie ucierpi, ale zastanowiłbym się, czy przy długofalowym korzystaniu z tego narzędzia nasze umiejętności rozwiązywania problemów nie spadną drastycznie.
Zalecałbym szczególnie juniorom, aby analizowali kod i pisali go samodzielnie, a to, co wygeneruje AI, traktowali bardziej jak odpowiedź na Stack Overflow, czyli bardziej jako sugestię i materiał do dalszego researchu.
Kwestie prawne
Na koniec pamiętajmy też o kwestiach prawnych. Nie od dzisiaj wiadomo, że chatboty i inne generatory kodu uczą się na „cudzym” kodzie, który jest np. publicznie dostępny. Zawsze sprawdzajmy i czytajmy polityki prywatności i licencje, aby wiedzieć, co udostępniamy AI, ale jednocześnie też uważajmy na to, co samo AI nam dostarcza, aby nie otrzymać kodu łudząco podobnego do jakiegoś fragmentu z np. open source. Pamiętajmy też o aspektach security i polityce firmy, bo chyba nie chcemy, aby nasze poufne hasła czy klucze API krążyły w sieci, bo były przez nas używane w promptach, a co za tym idzie, mogły zostać użyte do trenowania modeli, prawda?
Różnice między różnymi asystentami AI
Ilość narzędzi AI oraz różnego rodzaju asystentów potrafi przytłoczyć, a podejrzewam, że to dopiero początek. Spróbujemy zaraz porównać kilka modeli AI oraz narzędzi, które posłużą nam do programowania i codziennej pracy z kodem.
Porównanie różnych modeli AI do programowania
Obecnie na rynku mamy sporo popularnych modeli AI oraz asystentów programowania, ale generalnie ich cel jest zbliżony – mają ułatwić i przyspieszyć pisanie kodu. Jeśli chodzi o główne różnice, to za wszystkim stoją różne modele językowe i firmy, które nad nimi pracują.
Przykładowo, GitHub Copilot korzysta z OpenAI, CodeWhisperer od Amazon jest trenowany na kodzie źródłowym open-source, a inne narzędzia korzystają z własnych modeli, które możemy uruchomić lokalnie (Tabnine), więc mamy tutaj alternatywę dla usług chmurowych.
I teraz pewnie część z was się domyśli, że OpenAI będzie nam płynnie odpowiadał w wielu językach, a CodeWhisperer będzie z kolei lepszy w kontekście AWS, bo na takich danych był trenowany. Tak właśnie jest z tymi narzędziami – takie są subtelne różnice między nimi.
Różnice, które dostrzegamy gołym okiem, będą dla nas widoczne w integracjach i ekosystemie. Mamy z jednej strony chatboty bez możliwości wejścia w kontekst projektu (chociaż są pluginy pod ChatGPT, które integrują go z edytorem), a z drugiej strony mamy Tabnine, CodeWhisperer i Gemini jako wtyczki bezpośrednio pod IDE, które dają podpowiedzi na żywo w kodzie.
Warto też zwrócić uwagę na licencję i koszty, i tutaj, jak się pewnie domyślacie, mamy dużą rozpiętość – od darmowych po bardzo drogie. Jeśli chodzi o mnie, to chyba poleciłbym któreś z tych darmowych i najbardziej dostępnych AI – Gemini lub Codeium. Dają praktycznie nieograniczone możliwości korzystania z AI bez opłat, co może być decydującym czynnikiem w niektórych przypadkach.
Z drugiej strony firma może chcieć wykorzystać narzędzie, które będzie zgodne z politykami wewnętrznymi i wtedy trzeba będzie zapłacić więcej (np. Tabnine on-premise ze względów bezpieczeństwa).
Jak widzicie, mamy tutaj spore różnice, jeśli chodzi o modele, narzędzia, pluginy oraz modele subskrypcji i licencji. Generalnie, jeśli chodzi o samą funkcjonalność, to jest ona bardzo podobna – dostajemy wygenerowany kod na podstawie prompta, ale czasami mamy możliwość skorzystania z dodatkowych funkcjonalności, takich jak np. agent mode w Copilot.
W trybie agent mode AI nie tylko podpowiada nam kod, który chcemy dodać, ale też może modyfikować całe pliki projektu i wykonywać dodatkowe czynności, np. uruchamiać komendę do unit testów. Ciekawe, prawda?
Co wyróżnia Gemini Code Assist spośród innych narzędzi?
Wyobraź sobie, że masz pod ręką wirtualnego asystenta, który robi również np. code review. Właśnie tak w skrócie działa Gemini Code Assist. Jeśli tworzysz projekt hobbistyczny, jest on dostępny od Google całkowicie za darmo, a do tego oferuje bardzo wysokie limity miesięczne, których raczej w standardowej sytuacji nie będziesz w stanie wykorzystać.
Google zadbało również o to, aby dostroić asystenta do zadań stricte programistycznych, ponieważ był trenowany na rzeczywistych przypadkach kodowania. Wyróżniającą cechą jest także fakt, że Gemini potrafi czytać bardzo duży kontekst naraz. Oznacza to, że można mu przekazać cały kod źródłowy do analizy, co stanowi bardzo duży krok naprzód w porównaniu do innych narzędzi.
Jeśli szukasz wsparcia w pisaniu kodu w edytorze za pomocą AI, chcesz, aby asystent zrobił code review i podał sugestie, co poprawić (nawet pod względem code guide w obecnym projekcie), warto zainteresować się Gemini.
Najnowsze trendy w obszarze AI for coding w 2025 roku
Na chwilę obecną widać gwałtowne przyspieszenie rozwoju narzędzi typu AI for coding. Duże firmy technologiczne, takie jak Microsoft, Amazon czy Google, prześcigają się we wprowadzaniu AI do swoich produktów.
Ostatnio widziałem, że AI nie tylko generuje kod, ale potrafi stworzyć taska w Jira nawet na podstawie treści nieczytelnej dla człowieka (np. z logów błędu na AWS). Mało tego – rozpisuje odpowiednie subtaski w bardzo ciekawy sposób, więc nie tracimy już cennego czasu na takie prace. Wystarczy, że wkleimy kawałek kodu i zweryfikujemy to, co nam podpowiada AI. Wydaje mi się, że AI będzie coraz bardziej wspierać tworzenie dokumentacji, testów, konfiguracji np. CI/CD czy analizę wymagań w oparciu o przyjętą architekturę projektu.
Najlepsze praktyki korzystania z AI w programowaniu
AI, tak jak każde inne narzędzie, potrafi pomóc, ale też trzeba uważać na pewne pułapki. Przedstawię kilka propozycji w kolejności od tych najważniejszych według mnie, które są warte przeczytania i zastosowania, kiedy będziesz korzystać z AI na co dzień w swojej pracy z kodem.
Zasada numer jeden – dbaj o prywatność swojego kodu i zasady panujące w danym projekcie (lub, jeśli pracujesz dla kogoś – w danej firmie lub organizacji). Warto upewnić się, czy korzystanie z AI w tym przypadku jest zgodne z umową lub polityką firmy/organizacji. Sprawdź też dodatkowo, czy można wyłączyć trenowanie modeli na twoim kodzie i nigdy nie wrzucaj danych, które są tajemnicą przedsiębiorstwa, do prompta. Jeśli już musisz, to zanonimizuj kod tak, aby nie zawierał danych wrażliwych, unikalnych projektowo nazw funkcji czy zmiennych, a kodu nigdy nie dało się powiązać z danym klientem/projektem/firmą czy czymkolwiek. Mam nadzieję, że wiesz, o co mi chodzi.
AI ma ci pomagać, a nie wyręczać cię w codziennej pracy. Ma być bardziej pomocnikiem przy generowaniu powtarzalnego kodu, np. unit testów, lub nakierować cię na jakieś rozwiązanie. Sprawdź zawsze kod, który dostarcza ci AI. Przeanalizuj i zrozum, w jaki sposób AI dodało np. funkcję w kodzie. Taka refleksja nad kodem będzie ćwiczyła twój umysł, a dzięki temu umiejętności pozostaną na wysokim poziomie.
Przy pisaniu testów jednostkowych stosujemy zasadę nr 2, ale dodatkowo uruchamiamy testy. Zobaczmy, czy rzeczywiście sprawdzają to, co trzeba, sprawdźmy, czy testowane są np. przypadki brzegowe. Zmuś się do analizowania tego kodu, tak jak by to był zwykły pull request na repozytorium do sprawdzenia. Błędy się zdarzają, więc zawsze sprawdzaj dwa razy.
Warto wykorzystać technologię AI do robienia rzeczy, które wychodzą jej lepiej od innych, a te bardziej złożone – lepiej robić na własną rękę. Jeśli masz do wyboru wygenerowanie np. unit testów, zrobienie konwersji jednego formatu na drugi lub optymalizację już istniejącej funkcji, to AI sprawdzi się tutaj dużo lepiej, niż miałaby stworzyć to od podstaw. Skomplikowaną architekturę oraz funkcje zostaw sobie na start, a jeśli poziom skomplikowania się zwiększy lub potrzebujesz refaktoryzacji – wtedy udaj się z pytaniem do AI po sugestie. Nie zaniedbuj szkolenia się w danej dziedzinie. Wiem, że AI potrafi nas odciążyć i trochę zwolnić z myślenia, ale to nie powód, aby nie doszkalać się z danej dziedziny. Unikaj szczególnie “metody Copy’ego Paste’a”, czyli kopiowania i wklejania treści kodu bez przeczytania i zrozumienia, co się tam dzieje.
Podsumowanie
Tak naprawdę, jeśli zastosujemy te zasady w naszej codziennej pracy, to będzie się nam pracowało dużo lepiej, a jednocześnie zapewnimy większe bezpieczeństwo naszego kodu. Nasze umiejętności pozostaną na wysokim poziomie, a efektywność będzie rosła dzięki wsparciu AI.
Temat, który dzisiaj omówiliśmy, jest bardzo rozległy i dynamiczny, ale mam nadzieję, że zaciekawiłem was nim i odpowiedziałem na parę nurtujących pytań. Na koniec powiem jeszcze chyba najważniejszą rzecz odnośnie AI. Ostatecznie to my dostarczamy kod i się pod nim podpisujemy, nie AI. Trzeba o tym pamiętać i zachować po prostu zdrowy rozsądek – tak jak we wszystkim.
Automotive, Biura rachunkowe, Chemiczna, Dystrybucja, eCommerce, Elektronika, Medyczna, Sektor publiczny, Spożywcza FMCG, Transportowa, Usługi, Przemysł obronny i lotniczy, Produkcja maszyn, Produkcja zaawansowanych technologii i elektroniki, Cyfrowa transformacja przedsiębiorstw
Opis
Europejski lider usług cyfrowych, dostarczający rozwiązania dla wzrostu wydajności i innowacyjności klientów oraz wspólnego dobra....