Vibecoding w praktyce: Jak napisałem system backupu z AI
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
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:
- Microsoft.Data.SqlClient
- System.Management.Automation
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.