
Dev Espresso #1 – Rozwijaj się z AI, nie oddawaj swojej inteligencji
Wolisz wideo?
Video i ten wpis uzupełniają się nawzajem, dlatego dla najlepszego efektu skorzystaj z obu źródeł 😊
O czym jest ten wpis (w skrócie)
AI ma przyspieszać Twój rozwój – nie wyręczać Cię z myślenia.
Deleguj analizę i przygotowywanie wstępnich szkiców rozwiązań, ale osąd zostaje po Twojej stronie.
Chcę, abyś po lekturze miał prostą metodę (małą pętlę), którą zastosujesz przy każdym promptowaniu.
Pętla Human-in-the-Loop (Diagram)
flowchart LR
A[Generate / Context] --> B[Inspect]
B --> C[Probe]
C --> D[Refine]
D --> E[Explain Back]
E --> F[Integrate & Test]
F --> A((Next Cycle))
style A fill:#222,stroke:#555,color:#fff
style B fill:#222,stroke:#555,color:#fff
style C fill:#222,stroke:#555,color:#fff
style D fill:#222,stroke:#555,color:#fff
style E fill:#222,stroke:#555,color:#fff
style F fill:#222,stroke:#555,color:#fff
Intencja: nigdy nie kończ na pierwszym wyniku; minimum jedno dopytanie + jedno wyjaśnienie.
Główne Ryzyko
Wielu deweloperów wpada w schemat prompt → accept → paste. Szybciej tu i teraz, ale później wolniejsze wprowadzanie zmian / problemy z utrzymaniem kodu.
Skutki:
- Wdrażasz kod, którego nie potrafisz obronić.
- Cichy dryf architektury (rozjechane style, wzorce, konwencje).
- Tracisz czujność — coraz trudniej ocenić kiedy model błądzi.
Odpowiedzialność
Nadal to Ty odpowiadasz za: poprawność, bezpieczeństwo, utrzymywalność, wpływ.
„Model tak podał” to nie jest wytłumaczenie/wymówka !!!
Soczewka Decyzyjna dla Sugestii AI
flowchart TD
Q{AI Output Arrives} -->|Trivial & Understood| A[Adopt]
Q -->|Not Understood| P[Probe]
Q -->|Smells / Over-Abstract| R[Request Simpler Variant]
P --> X[Clarify Why + Risks]
R --> S[Compare Simpler vs Original]
X --> V[Validate with Tests]
S --> V
V -->|Meets Standards| A
V -->|Gaps Found| P
A --> C[(Commit + Note)]
Cel: wprowadzić pauzę — zatrzymaj odruch „kopiuj / wklej i zapomnij”.
Mikropętla Human‑In‑The‑Loop
Stosuj za każdym razem zamiast kończyć na pierwszym wyniku:
- Generuj – jasny kontekst + ograniczenia.
- Oceń – szybki przegląd pod kątem problemów (security, over‑engineering, brak testów, stare biblioteki).
- Dopytaj – „Dlaczego tak?”, „2 alternatywy + trade‑offy (kompromisy)”, „Co tu może pójść nie tak?”.
- Udoskonal – sprowadź do prostszego wariantu.
- Wyjaśnij samodzielnie – model tłumaczy na 2 poziomach (wysoki + flow/edge case’y); Ty robisz swoje krótkie TL;DR.
- Integruj – dopiero teraz z testami i spójnością wzorców.
Minimum: Zawsze chociaż jedno pytanie pogłębiające po pierwszej odpowiedzi modelu.
Archetypy Promptów
- Clarifier: „Wyjaśnij to jakbym znał podstawy OAuth, ale nie PKCE.”
- Tradeoff Explorer: „3 alternatywy; porównaj wydajność / czytelność / ryzyko bezpieczeństwa.”
- Risk Scanner: „Wypisz edge case’y + potencjalne wektory awarii/ataków; zasugeruj nazwy testów.”
- Confidence Probe: „Która część Twojej odpowiedzi jest najbardziej podejrzana lub może być przestarzała?”
- Compression: „Streść różnice między wersją A i B w 2 zdaniach.”
Mini Przykład (Decyzja Auth)
Kontekst: potrzebujesz auth w projekcie TS / Python. Rozważasz Authentik, lekką bibliotekę, BetterAuth albo bardzo cienkiego clienta.
Pierwsza odpowiedź modelu: lista SaaS + self‑host (Auth0, Keycloak, SuperTokens...). Kusi, żeby po prostu wziąć.
Zamiast tego dopytaj:
- „Dlaczego nie wspomniałeś o BetterAuth? Porównaj z Authentik przy niskim narzucie operacyjnym.”
- „Ukryte koszty operacyjne Keycloak vs lekka biblioteka?”
- „Jak różni się przechowywanie sesji vs tokenów w BetterAuth? Gdzie lądują tokeny providerów?”
Efekt: poznajesz trade‑offy (obsługa federacji, pokrycie protokołów, ciężar operacyjny) zamiast kopiować domyślne odpowiedzi.
Cichy Dryf Architektury – Dlaczego Groźny
Niezweryfikowane sugestie AI wprowadzają niespójne:
- Wzorce obsługi błędów
- Założenia bezpieczeństwa (np. brak CSRF / niebezpieczne przechowywanie tokenów)
- Abstrakcje (dodatkowe warstwy „bo wygląda czyściej”)
Każdy element osobno wygląda niewinnie; razem rozmywają klarowność. Drift jest OK tylko jeśli jest świadomy i udokumentowany.
Filtr Akceptacji „Najpierw Testy”
Zanim zaufasz kodowi sprawdź:
- Czy dostarczył / zasugerował testy? (Jeśli nie – poproś.)
- Czy pokrywa ścieżki błędów? (timeouty, błędne dane, edge case’y.)
- Czy pojawiły się antywzorce typu „just disable failure” (pomijane wyjątki, zawsze zielone testy)? Odrzuć.
Szybka Perspektywa Bezpieczeństwa i Niezawodności
Nawet przy małym fragmencie kodu zapytaj o:
- walidację wejścia
- injection / deserializację / SSRF / wyciek sekretów
- zarządzanie stanem i możliwość kradzieży sesji
Potem: „Co MUSZĘ potwierdzić w dokumentacji zanim wdrożę?”
Codzienne Ćwiczenie
Wybierz mały fragment kodu/konfiguracji, którego nie rozumiesz w pełni. Przejdź sekwencję:
- Model tłumaczy wysokopoziomowo.
- Linia po linii + edge‑case’y / failure modes.
- Jedna alternatywa + plusy/minusy.
- Ty (nie AI) piszesz podsumowanie 3–4 zdania czego się nauczyłeś.
Powtarzaj codziennie na innym fragmencie. 30 dni = mocna kumulacja efektu.
Typowe Tryby Porażki
| Tryb | Objaw | Prompt Naprawczy |
|---|---|---|
| Cargo‑culting | Kopiujesz wzorzec bez zrozumienia | „Dlaczego ta forma zamiast prostszej?” |
| Hallucinated Abstraction | Pojawia się zbędna warstwa | „Usuń abstrakcję; pokaż minimalną wersję.” |
| Outdated Stack | Stary boilerplate (np. CRA) | „Aktualne (2025) startery + dlaczego.” |
| False Green | Pomijane wyjątki / wyłączone testy | „Jakie testy, powinny tu powstać?” |
| Drift | Niespójne auth / logowanie | „Utwórz mi listę kontrolną dla tego obszaru.” |
Migawkowa Kategoryzacja Ryzyk
mindmap
root((AI Pairing Risks))
Cognitive
Passive Acceptance
Lost Understanding
Overreliance
Architecture
Style Drift
Hidden Coupling
Outdated Patterns
Security
Token Misuse
Missing Validation
Leaky Error Messages
Quality
Untested Paths
Silent Failures
Over-Abstraction
Mentalna lista kontrolna przy przeglądzie outputu.
Minimalna Checklista (Przy Edytorze)
- Dodałem kontekst (ograniczenia, stack, priorytety)
- Przeskanowałem pod kątem starych bibliotek / "smell check" / security
- Zadałem min. 1 pytanie o trade‑off + 1 o ryzyko
- Poprosiłem o / zweryfikowałem testy
- Wytłumaczyłem własnymi słowami (dopisałem do swojej bazy wiedzy)
- Zintegrowałem spójnie (nazwy, wzorce, dokumentacja)
Zmiana Mindsetu
Traktuj AI jako dopalacz ciekawości, nie protezę myślenia. Sukces mierz tym, jak dobrze umiesz wyjaśnić problem, kompromisy i ryzyka, a nie liczbą wygenerowanych linijek.
AI ma przyśpieszać zrozumienie zagadnienia i ma pomóc znaleźć rozwiązanie, które rozumiesz i umiesz obronić, a nie tworzyć niezrozumiały kod, którego nie potrafisz wytłumaczyć.
Call to Action
To co poznałeś w tym wpisie, zastosuj przy pierwszym zadaniu, którego dziś dotkniesz.
Dzisiaj w pracy:
- Dopytaj AI o wyjaśnienie rozwiązania (krok po kroku + edge case’y).
- Poproś o alternatywy i wypunktowane trade‑offy.
- Zapytaj o ryzyka / audyt (security, wydajność, utrzymanie).
- Poproś o uproszczony wariant, jeśli czujesz over‑engineering.
- Na koniec własnymi słowami zapisz: co robi rozwiązanie, dlaczego wybrałeś ten wariant, czego jeszcze nie rozumiesz (czarna skrzynka).
- Wróć do notatki i czarnej skrzynki i dopytaj AI o to, czego nie rozumiesz.
Praktykuj to podejście przy każdym zadaniu, a wkrótce zauważysz wzrost swoich kompetencji jak i wzrost jakości rozwiązań tworzonych wspólnie z AI.
Ten wpis był pomocny? Postaw mi kawę, abym miał energię do tworzenia kolejnych treści.