Vibecoding w praktyce: Jak napisałem system backupu z AI

Vibecoding w praktyce: Jak napisałem system backupu z AI

Opublikowano: 2025-11-30 przez

Kategoria: Social Media

Vibecoding w praktyce: Jak napisałem system backupu z deduplikacją, nie dotykając (prawie) klawiatury

Vibecoding to termin, który ostatnio w świecie IT robi prawdziwą furorę. Choć brzmi jak kolejny buzzword z Twittera/X, kryje się za nim realna zmiana w tym, jak tworzymy nowoczesne oprogramowanie. Postanowiłem przetestować to podejście na żywym organizmie – tworząc narzędzie AdminBackupTool do zabezpieczania baz MSSQL i maszyn Hyper-V.

Dzisiaj pokażę Wam, jak wyglądał ten proces: od „Hello World” po własny silnik deduplikacji danych, oraz dlaczego – mimo sukcesu – nie jest to rozwiązanie pozbawione wad.

Czym w ogóle jest Vibecoding?

Termin ten zaczął zyskiwać na popularności na przełomie 2024 i 2025 roku (spopularyzowany m.in. przez Andreja Karpathy’ego). W skrócie: Vibecoding to programowanie, w którym Ty jesteś architektem i managerem (dbasz o „vibe” i kierunek), a AI (LLM) jest Twoim juniorem, który klepie kod.

Zamiast martwić się o to, gdzie postawić średnik czy jak dokładnie zaimplementować interfejs, skupiasz się na logice biznesowej i przepływie danych. Ty mówisz „co ma się stać”, AI martwi się „jak to napisać”.

Case Study: AdminBackupTool

Interfejs aplikacji AdminBackupTool stworzonej metodą Vibecoding

Postawiłem przed sobą (i AI) zadanie:

„Stwórz aplikację WPF w .NET, która robi backupy baz MSSQL oraz maszyn wirtualnych Hyper-V, ma nowoczesne UI, deduplikację i wysyła powiadomienia mailowe.”

Oto jak wyglądał ten „taniec” z AI w trzech aktach.

Faza 1: Szybki Start i Euforia

Początek to czysta magia. W kilka minut miałem gotowy szkielet projektu. AI wygenerowało strukturę MVVM, MainWindow.xaml z zakładkami i podstawowe klasy.

Dodaliśmy paczki:

Aplikacja miała prosty cel: połączyć się z Hyper-V i SQL Serverem. Wydawało się, że projekt skończę przed obiadem. I wtedy nadeszła rzeczywistość.

Faza 1.5: „Ściana Płaczu”, czyli Debugowanie

Vibecoding to nie tylko generowanie kodu, to przede wszystkim umiejętne zarządzanie błędami AI. Kiedy poprosiłem o instalator i logikę Hyper-V, zaczęły się schody:

  • Crash przy starcie: Klasyczny NullReferenceException. AI próbowało odwołać się do kontrolek UI, zanim te zostały w pełni załadowane.
  • Problem z Hyper-V: To był kluczowy moment. Biblioteka System.Management.Automation uruchamiana wewnątrz procesu aplikacji rzucała błędy środowiskowe.
  • Moja decyzja (Vibe): Zamiast walczyć z biblioteką DLL, kazałem AI przerobić to na wywoływanie zewnętrznego procesu powershell.exe.
  • Wykonanie AI: Przepisanie BackupManager.cs pod nowe wymagania. Zadziałało.

Faza 2 i 3: UI, Szyfrowanie i Deduplikacja

Gdy rdzeń zaczął działać, weszliśmy w tryb „Hardcore”. Zamiast prostego kopiowania plików, chciałem oszczędzać miejsce na dysku. Zleciłem napisanie silnika deduplikacji. Co stworzyliśmy?

  • Chunking: Dzielimy pliki VHDX i BAK na bloki po 4MB.
  • Hashing & Storage: Liczymy hash SHA-256 i zapisujemy tylko unikalne bloki.
  • Manifest: Tworzymy plik JSON, który pozwala odtworzyć plik z kawałków.

AI napisało DeduplicationService.cs od zera, implementując GZipStream dla kompresji. Ja tylko weryfikowałem logikę.

Ciemna strona mocy: Minusy Vibecodingu

Żeby nie było tak kolorowo – kodowanie „na wibracji” ma swoją cenę. Podczas pisania AdminBackupTool zaliczyłem kilka zderzeń ze ścianą:

  • Rozmiar aplikacji („Kobyła”): To jedna z największych wad takiego podejścia. Ponieważ AI chętnie dodaje kolejne paczki NuGet (Newtonsoft, MailKit, DotNetZip itd.) i nie zawsze dba o optymalizację („Tree Shaking”), folder wynikowy aplikacji jest ogromny. Zamiast lekkiego narzędzia, mamy kilkadziesiąt/kilkaset megabajtów, bo nikt nie spędził czasu na „odchudzaniu” zależności. Szybki development odbył się kosztem optymalizacji rozmiaru.
  • Syndrom „Nie ja to pisałem”: Kiedy piszesz kod linijka po linijce, wiesz, gdzie co jest. Kiedy AI generuje Ci 200 linii nowej klasy, a potem wywala błąd – musisz debugować kod, który widzisz pierwszy raz na oczy. Wymaga to szybkiej analizy cudzego toku myślenia.
  • Brak kontekstu środowiskowego: AI świetnie pisze kod C#, ale nie wie, jak skonfigurowany jest Twój serwer. Błąd z uprawnieniami SQL Servera do zapisu na dysku („Cannot open backup device”) AI próbowało naprawiać zmianami w kodzie, podczas gdy problem leżał w uprawnieniach folderu Windows. Tutaj AI jest bezradne – potrzebny jest człowiek.
  • Halucynacje: Mieliśmy błąd parsera XAML, bo AI wstawiło znak & w atrybucie XML bez escapowania. Szukanie takiej „literówki” w wygenerowanym bloku tekstu potrafi być frustrujące.

Podsumowanie

Czy Vibecoding sprawi, że przestaniemy być potrzebni? Absolutnie nie.

Podczas tworzenia AdminBackupTool AI było świetnym wykonawcą, ale to ja musiałem zdiagnozować problemy z uprawnieniami, podjąć decyzję o zmianie architektury PowerShell i zaakceptować fakt, że aplikacja będzie zajmować więcej miejsca na dysku w zamian za szybkość powstania.

Vibecoding pozwala pominąć nudne „klepanie” kodu i przejść od razu do rozwiązywania problemów. Jeśli jesteś administratorem lub deweloperem – to najlepszy moment, żeby zacząć eksperymentować, pod warunkiem, że wiesz, co robisz.