0%

Breng alles samen · eindproject

Eindproject: Bouw en controleer een projectwerkruimte

Dit eindproject is een kleine systeemtaak, geen geheugentoets voor opdrachten. Je bekijkt een meegeleverde werkruimte, plant twee wijzigingen, voert die veilig uit, start het meegeleverde programma en laat bewijs achter dat iemand anders kan controleren zonder je aan het werk te zien.

De terminal naast deze les volgt je accountvoorkeur: Windows opent PowerShell Core, macOS en Linux openen Bash. De opdrachten verschillen, maar beide gehoste routes werken in /workspace en moeten hetzelfde gecontroleerde resultaat achterlaten.

Beginsituatie en herstel

Reset de werkruimte van het hoofdstuk voordat je begint. De beginstructuur is:

/workspace
├── README.md
├── report.py
├── data
│   └── README.txt
├── destination
│   └── README.txt
├── evidence
│   └── safety-check.txt
└── notes with spaces.txt

README.md, report.py en data/README.txt zijn meegeleverd en moeten ongewijzigd behouden blijven. report.py uitvoeren vanuit /workspace toont Workspace report: ready. Reset herstelt exact deze structuur en is dus je weg terug als je de structuur niet meer begrijpt.

Plan voordat je iets verandert

Je voltooide werkruimte moet drie nieuwe of afgeronde resultaten bevatten:

  • een map notes met project-plan.txt, verplaatst en hernoemd vanuit notes with spaces.txt;

  • destination/data-copy.txt, gekopieerd vanuit data/README.txt, met het origineel nog op zijn plek;

  • een ingevulde evidence/safety-check.txt die vastlegt wat je hebt gecontroleerd voordat je iets verplaatste.

De meegeleverde evidence/safety-check.txt toont vier lege velden. Lees die eerst met Get-Content -LiteralPath ./evidence/safety-check.txt in PowerShell of cat evidence/safety-check.txt in Bash.

Bekijk zowel de bron als de voorgenomen bestemming voordat je iets verplaatst. De bron moet bestaan en de bestemming niet. Vervang het sjabloon daarna door exact vier regels met key=value:

source=<move source>
destination=<move destination>
source_present=<yes or no>
destination_absent=<yes or no>

Gebruik paden relatief aan /workspace, zonder ./ aan het begin. Noteer yes of no in kleine letters. Dit bewijsbestand heeft bewust een vaste vorm; het is geen schrijfwedstrijd. Het interessante werk is waarnemen voordat je het invult.

Bouwen en controleren

Bepaal zelf de volgorde van de opdrachten. Hier krijg je de beschikbare opdrachten, geen uitgewerkte oplossing.

Gebruik pwd, ls, cat, echo met > en >>, mkdir, mv, cp en python. Zet de bestandsnaam met spaties tussen aanhalingstekens.

Je plan heeft drie fasen nodig: oriënteren en vooraf bekijken; de voorafgaande controle vastleggen vóór de wijziging; daarna bouwen, controleren en uitvoeren. De eisen voor bron en bestemming hierboven bepalen de afzonderlijke opdrachten. Stop als je op het punt staat een breed jokerteken of een optie om iets af te dwingen te typen. Het eindproject heeft geen van beide nodig.

Voer in dit eindproject geen verwijderopdracht uit. Door het verplaatsen moet het oude pad verdwijnen. Iets anders verwijderen voegt alleen risico toe, geen bewijs.

Wat Check my work controleert

De beoordeling leest de resulterende toestand, niet je terminalgeschiedenis. Elke veilige volgorde slaagt zolang deze feiten daarna waar zijn:

  1. README.md, report.py en data/README.txt bevatten nog hun meegeleverde tekst.

  2. notes/project-plan.txt bevat de oorspronkelijke notitietekst.

  3. notes with spaces.txt is uit de hoofdmap van de werkruimte verdwenen, omdat het verplaatst is en niet gekopieerd.

  4. destination/data-copy.txt is gelijk aan data/README.txt en destination/README.txt staat er nog.

  5. evidence/safety-check.txt bevat de vier exacte velden voor bron, bestemming en de vooraf gecontroleerde ja/nee-waarden.

  6. Het meegeleverde programma uitvoeren vanuit /workspace toont Workspace report: ready.

Bekijk de structuur zelf voordat je je werk indient. Zijn er onverwachte paden verschenen en weet je niet zeker wat er is veranderd, reset dan en begin opnieuw in plaats van naar een brede opruimopdracht te grijpen.

Een teamgenoot gebruikt een andere veilige volgorde van opdrachten. Welk bewijs maakt dat resultaat even betrouwbaar?

Waarom vraagt het eindproject je het bewijsbestand vóór het verplaatsen te schrijven in plaats van erna?

Je hebt iets gemaakt dat iemand anders kan bekijken zonder je één vraag te stellen: een geordende structuur, ongewijzigde invoer, een werkend programma en een geschreven verslag van de controle die je deed voordat je iets veranderde. De laatste les vraagt je uit te leggen hoe de hele computer dat mogelijk maakte.