Als developer van het vliegscript, wil ik alle veiligheidschecks plat onder elkaar zetten in plaats van ze diep in elkaar te nesten, zodat ik in รฉรฉn oogopslag zie welke checks er zijn en er zonder risico een bij kan zetten.
Na alle guards is alles gegarandeerd veilig. De happy path staat op niveau 0, zonder extra if-check. Dat is het doel van guards: een veilige, leesbare code.
Als je guards zijn doorlopen en geen ervan heeft gestopt, is de situatie gegarandeerd veilig.
Dat betekent dat je de happy path zonder extra check kunt schrijven.
Er is geen else nodig โ de guards hebben dat al gedaan.
MIN_FREE_SPACE = 20
MAX_CPU_LOAD = 80
free_space = 50
cpu_load = 30
# Guard 1
if free_space < MIN_FREE_SPACE:
print(f"Fout: vrije ruimte {free_space}%, minimaal {MIN_FREE_SPACE}%")
exit()
# Guard 2
if cpu_load > MAX_CPU_LOAD:
print(f"Fout: processor {cpu_load}% belast, maximaal {MAX_CPU_LOAD}%")
exit()
# โ Alle guards gepasseerd! Hier weet je zeker dat alles OK is.
# Geen extra check nodig. Voer uit:
print("Alles veilig!")
print("Backup gestart...")
else of extra
if nodig hebt voor de happy path, dan zijn je guards niet compleet.
Met 3 guards, hoeveel niveaus diep moet het zonder guards zijn?
Plak hier je eigen code en klik op de knop. De check voert je code niet uit โ daarvoor
gebruik je Python op je eigen laptop. Hij kijkt naar de vorm: staan de guards plat, en staat de happy path
eronder op niveau 0, zonder else? Bij drone-code controleert hij ook of een guard in de lucht
eerst landt.
Je schrijft een vlucht in twee etappes, helemaal zelf, in two_legs.py. De drone stijgt op en
vliegt 100 cm vooruit. Daar houdt hij stil voor een tussencontrole. Pas als die slaagt, volgt
de tweede etappe: 100 cm terug, landen en de verbinding sluiten. Aan het eind print het script dat de
vlucht voltooid is.
| Regel | Wanneer is het goed? |
|---|---|
| Batterij | Minstens 35%. |
| Vliegtijd | Hooguit 90 seconden. |
| Hoogte | Van 30 tot en met 200 cm. Lager raakt hij bijna de grond, hoger het plafond. |
Faalt een regel, dan meldt het script wat er mis is โ met de gemeten waarde en de grens โ en landt de drone op de plek waar hij is.
Zet je script in deze volgorde, en zet boven elk deel een regel commentaar met de naam van dat deel:
else.| Methode | Wat het doet |
|---|---|
tello.move_back(x) | Vliegt x cm achteruit (van 20 tot 500). |
Vervang voor elke test tijdelijk de metingen door vaste getallen, en zet ze daarna terug. Noteer bij elke test wat er gebeurt.
| Test | batterij | vliegtijd | hoogte |
|---|---|---|---|
| 1 | 60 | 40 | 80 |
| 2 | 34 | 40 | 80 |
| 3 | 60 | 91 | 80 |
| 4 | 60 | 40 | 29 |
| 5 | 60 | 40 | 200 |
| 6 | 60 | 40 | 201 |
Acceptatiecriteria
else.