Jag har precis lagt till en ny funktion i PastPaths: ett platsbibliotek. Det går nu importera färdiga paket med referensplatser — till att börja med Sveriges 21 län — istället för att skriva in dem för hand. Fler paket kommer efter hand.

Plats-plugins

Jag ville ha "plugins" — färdiga listor med platser man kunde ladda ner och importera. Sveriges församlingar, amerikanska delstater, den typen av referensdata som är samma för alla som forskar i ett område, men som annars måste skrivas in för hand, en och en, gång på gång av varje enskild användare.

Att bygga i lager, inte allt på en gång

Metoden för att bygga blev att dela upp projektet i tydliga, avgränsade steg: först själva importlogiken, sen ett enda litet testpaket, sen backend-kopplingen mot hemsidan, sen frontend. Varje steg testades för sig innan nästa lades på.

Att arbeta metodiskt bit för bit är a och o i programmering, inte minst när en tar hjälp av AI — varje litet steg som kördes och testades avslöjade saker som aldrig hade synts bara genom att läsa koden.

Buggarna som bara syns när man kör på riktigt

De mest lärorika buggarna dök upp precis när allt "borde" fungera.

Ett exempel: när jag väl kunde testa i webbläsaren fick jag ett tomt 404-fel. Koden såg rätt ut. Servern körde. Ändå funkade det inte. Det visade sig vara en gammal, redan existerande bugg i hur appen bestämde vilken adress den skulle prata med — något som aldrig märkts förut eftersom just den kombinationen (webbläsare + separat backend, inte den färdigbyggda appen) knappt hade testats tidigare. Ett verktyg som en AI kan resonera sig fram till mycket, men den kan inte se att just den kombinationen av omständigheter aldrig prövats förrän man faktiskt kör den och tittar på vad som händer.

Ett annat exempel: mina nya platser (länen) dök upp helt fel i platslistan — begravda under "Okänt län" istället för att synas som länen de faktiskt är. Återigen: helt logisk kod på pappret, men ett beteende som bara gick att upptäcka genom att importera på riktigt och titta på resultatet.

Ingen av de här buggarna hade gått att hitta genom att bara läsa igenom koden en gång till, hur noga en än är. De krävde riktiga körningar, riktiga skärmdumpar, riktig felsökning fram och tillbaka.

Lärdomen: gissa aldrig, testa alltid

Genom hela processen höll jag mig till en enkel regel: inga gissningar. Om något var osäkert — en filsökväg, hur en befintlig funktion faktiskt fungerade, vilket format en fil hade — laddade jag upp den faktiska koden istället för att låta AI frifräsa. Flera gånger visade det sig att antaganden som lät rimliga faktiskt var fel så fort de möttes av verkligheten.

Det gäller åt båda hållen förresten. Ett par gånger la jag själv fram lösningar som visade sig krocka med hur jag redan sagt att jag ville ha det, det som räddade mig var att fråga igen istället för att bara köra på.

Sammanfattningsvis: AI-assisterad utveckling är inte "beskriv vad du vill ha, få färdig kod, klart". Det är ett samarbete som liknar vanlig felsökning med en kollega — bygg litet, testa på riktigt, dela skärmdumpar och felmeddelanden, var beredd på att första planen ändras när verkligheten säger emot den.

Vill du prova själv?

Om du sitter med ett eget hobbyprojekt och funderar på att ta hjälp av AI för att bygga vidare på det — mitt bästa råd, baserat på den här sessionen:

  • Dela verklig kod, inte beskrivningar av kod. Ju mer den faktiska filen syns, desto mindre gissas det fram.
  • Testa varje litet steg innan nästa läggs på. Ett stort, otestat lager av ändringar gör det svårt att veta vilken del som gick fel.
  • Klistra in de riktiga felmeddelandena, hela vägen. En skärmdump av en tom nätverksflik löste mer än en lång beskrivning hade gjort.
  • Var beredd att byta riktning. Den bästa lösningen dyker sällan upp i första förslaget.

Platsbiblioteket finns i PastPaths från och med version 1.5.0. Läs mer i manualen eller kolla in allt som är nytt.


Ladda ner PastPaths 1.5.0 här.