0%

Hoofdstuk 12

Hoe ga je verder?

Wat je nu kunt bouwen

Het voltooide uitleenprogramma kan beginnen met bronbestanden en een leeg pad, de exacte database opbouwen die het verwacht, catalogusrijen importeren zonder duplicaten bij een exacte herhaling en uitleenactiviteit bewaren nadat het programma stopt. Samen vormen die onderdelen een complete kleine applicatie.

Het bewijs is verdeeld over bestanden die je kunt aanwijzen:

  • catalog_setup.py maakt versie 2 aan, werkt een exacte versie 1 bij en weigert een versie waarvan de tabellen en kolommen afwijken.

  • catalog_import.py valideert elke CSV-rij voordat er wordt geschreven en geeft daarna de volledige import één uitkomst.

  • catalog_db.py brengt verbindingen, query’s en opdrachten onder in gerichte functies.

  • lending.py geeft die functies een opdrachtregelinterface met vaste uitvoer en foutstatussen die de uitkomst correct weergeven.

  • tests/test_catalog.py en tests/test_lending.py testen nieuwe tijdelijke databases en één volledig traject.

Ook de SQL onder die bestanden beheers je nu. Je kunt een klein relationeel schema ontwerpen met sleutels en constraints, gerelateerde rijen koppelen, groepen samenvatten, waarden veilig binden en meerdere wijzigingen samen committen of terugdraaien. Je kunt testen wat de database doet zonder één exacte schrijfwijze van de query te vereisen.

Eén grens moet duidelijk blijven. Run op Python Land gebruikte een tijdelijke map. Dat maakte de demonstratie herhaalbaar en hield gegenereerde databasebestanden buiten je opgeslagen broncode. Het maakte van de sitewerkruimte geen permanente databaseopslag.

Lokale blijvende opslag begint wanneer het gedownloade programma een pad op je computer ontvangt, zoals "catalog data.db". Eén opdracht kan dat bestand aanmaken en stoppen, waarna een latere opdracht hetzelfde bestand opnieuw kan openen. De downloadinstructies laten dat traject zien. Omdat het op je computer plaatsvindt, kan de site het resulterende databasebestand niet inspecteren.

Je hebt nu een bronproject dat weet hoe het zijn eigen toestand moet aanmaken. Dat onderscheid is van belang: de Python, SQL, CSV, tests en README zijn zelf geschreven bronbestanden; een specifiek .db-bestand is gegenereerde toestand. Door die rollen gescheiden te houden, is het project eenvoudiger te begrijpen, testen, herbouwen en delen.