Open een project, pas één ding aan, controleer het
Een goede Delphi-workflow is klein. Open de projectmap, vraag om één wijziging, lees de diff en voer je bouwprompt uit. Arraydeck volgt die lus met echte hulpmiddelen, dus elke stap laat een kaart achter in de chat die je kunt uitvouwen en inspecteren, van het eerste zoekopdracht tot de laatste exitcode. Niets wordt verborgen achter een samenvatting. Als een stap fout lijkt, stop je de lus daar, wijs je de wijziging af en formuleer je het verzoek opnieuw, en de bestanden blijven zoals ze waren voor die stap. Dezelfde vier stappen werken op een kleine eenheid en op een project met veel formulieren. Beginners en ervaren onderhouders kunnen beide beginnen met een read-only zoekopdracht, omdat dit geen bestand wijzigt en toch laat zien hoe het project is ingericht.
01
Open de map
Kies de map met je .dpr- en .pas-bestanden als werkmap voor de chat. De bestaande hulpmiddelen werken daarin, dus kies het project dat je wilt wijzigen en geen bovenliggende map met ongerelateerd werk. Een bovenliggende map met veel projecten maakt de eerste zoekopdracht lastiger te lezen en verhoogt het risico op het wijzigen van het verkeerde bestand.
02
Beschrijf één wijziging
Schrijf één taak in gewone woorden, zoals de naam van een procedure en wat er moet veranderen, en kies Auto-run, Ask first of Plan only voordat je het verstuurt. Kleine taken geven kleine diffs die makkelijk te lezen zijn. Noem het bestand als je dat weet; de agent kan het vinden met glob, maar een benoemd bestand beperkt de eerste zoekopdracht.
03
Lees de diff
Vouw de edit_file-kaart uit, lees elke toegevoegde en verwijderde regel, en accepteer of wijs de wijziging af. Als je Plan only hebt gebruikt, lees dan eerst het plan en schakel over naar Ask first om het stap voor stap uit te voeren. Een zeer lange diff betekent dat de taak te groot was, dus wijs hem af en splitst het verzoek in twee kleinere.
04
Bouw en test
Laat Shell je bouwprompt en je testprompt uitvoeren, en lees de echte exitcode op de kaart. Een geslaagde build is een goed teken, maar alleen jouw eigen tests vertellen je of het gedrag nog steeds correct is. Voer de build uit voor de tests, en houd beide kaarten open zodat een fout kan worden teruggevoerd op één wijziging.
Een kleine eenheid om op te oefenen
Arraydeck · Nieuwe eenheid● Ask first
Maak Greeter.pas met een Greet-functie en controleer of het project bouwt.
list_dir.6 items
write_fileGreeter.pasopgeslagen
read_fileGreeter.pasgelezen
Shellbuild.batexit 0
wacht op jouw goedkeuring voordat de volgende stap wordt uitgevoerdAfwijzenAccepteren
Greeter.pas
unit Greeter;
interface
function Greet(const Name: string): string;
implementation
function Greet(const Name: string): string;
begin
if Name = '' then
Result := 'Hello, guest'
else
Result := 'Hello, ' + Name;
end;
end.
Greet neemt een naam en geeft een begroeting terug. Als de naam leeg is, antwoordt het met Hallo, gast, anders voegt het de naam toe aan de tekst, en Result bevat de retourwaarde van de functie. De interface-sectie kondigt de functie aan, en de implementatie-sectie bevat de code, wat de indeling is van elke eenheid.
Vier taken voor het onderhouden van Delphi-software
Vind waar een instelling wordt opgeslagen
Beginners die Delphi leren, vragen vaak waar een waarde op schijf terechtkomt. Vraag Arraydeck om te vinden waar de instelling wordt weggeschreven. De agent voert grep uit voor de instellingsnaam over je .pas-bestanden heen, daarna opent read_file het bijbehorende bestand en verschijnt het antwoord in de chat met bestandsnamen en regels. Er verandert niets. Open het bestand in je eigen editor om te bevestigen dat de procedure die is die je bedoelde, en noteer de bestandsnaam voordat je om een wijziging vraagt. Deze read-only zoekopdracht is een goed eerste verzoek op elk project dat je niet zelf hebt geschreven. Schrijf het bestand en de regel op voordat je om een wijziging vraagt, omdat een precieze bestandsnaam en regelnummer het volgende verzoek kort maken en de volgende diff makkelijk te volgen voor iedereen die je project na jou leest.
Voeg try finally toe rond een object
Vraag om een veiligere afhandeling: vind de procedure die een object maakt en zorg dat het wordt vrijgegeven. De agent zoekt met grep, leest het bestand en stelt de wijziging voor met edit_file, waarbij de code wordt ingepakt in try ... finally ... Free. In Ask first verschijnt de diff en er wordt niets weggeschreven totdat je het accepteert. Daarna voert Shell je bouwprompt uit, en de kaart toont de echte exitcode. Voer ook je tests uit. Een build die slaagt bewijst alleen de syntaxis, niet dat het object in elke pad wordt vrijgegeven, dus lees de diff langzaam. Voer de tests nog een keer uit nadat je de diff hebt geaccepteerd, en bewaar de oude versie van het bestand in je eigen back-up of versiebeheer totdat je zeker bent dat de handler elk object in elke tak vrijgeeft.
Hernoem een procedure overal
Dit is hoe je Delphi-apps in kleine stappen moderniseert: hernoem een onduidelijke procedure, één naam tegelijk. Vraag de agent om het in elk bestand te hernoemen. Het gebruikt grep om elke plek te lijsten waar de naam voorkomt, daarna verandert edit_file elk bestand, en de diffs tonen elke regel die verplaatst wordt. Hernoem één keer. Beoordeel alle diffs samen, omdat een matchend woord binnen een string of een commentaar niet altijd een aanroep is, bouw daarna het project en voer je tests uit voordat je het laatste bestand accepteert. Herhaal de hernoeming voor de volgende procedure alleen als de build en de tests slagen, zodat een fout altijd in één kleine diff zit en nooit verstopt in een lange lijst van ongerelateerde wijzigingen over veel bestanden heen.
Leg een lus regel voor regel uit
Pascal-driehoek logica uitgelegd in een korte eenheid maakt een eerlijke oefenopdracht. Vraag de agent om de lus te lezen en te beschrijven, regel voor regel, wat elke variabele vasthoudt in elke iteratie. Het roept read_file aan, daarna antwoordt het in de chat zonder iets weg te schrijven, dus Plan only is genoeg. Controleer de uitleg door de eenheid zelf uit te voeren via je bouwprompt en door de lus op papier te volgen voor 3 of 4 rijen. Als de agent en het programma het niet eens zijn, vertrouw het programma en stel de vraag opnieuw met de exacte regel geciteerd. Doe hetzelfde voor een tweede lus als het eerste antwoord hielp, en vraag om een kortere uitleg als een alinea te lang voelt, omdat je altijd meer detail kunt vragen op precies de regel die je verwarde.