Als developer van het vliegscript, wil ik mijn dronecode opdelen in kleine helpers in een eigen module, zodat mijn hoofdscript kort en leesbaar blijft en ik de helpers kan testen zonder dat de drone opstijgt.
Elke helper-functie krijgt één duidelijke taak en een naam die die taak beschrijft.
Functies die meerdere dingen tegelijk doen zijn lastig om te testen en aan te passen. Een goede helper-functie doet precies één ding: één berekening, één actie, of één controle.
def process_data(records):
valid = []
for r in records:
# validatie
if r["age"] > 0:
# transformatie
r["age_group"] = "volwassen" if r["age"] > 18 else "jong"
# logging
print(f"OK: {r['name']}")
valid.append(r)
return valid
def is_valid_age(age):
return age > 0
def get_age_group(age):
return "volwassen" if age > 18 else "jong"
def log_valid_record(name):
print(f"OK: {name}")
def process_data(records):
valid = []
for r in records:
if is_valid_age(r["age"]):
r["age_group"] = get_age_group(r["age"])
log_valid_record(r["name"])
valid.append(r)
return valid
Drie helpers die elk precies één ding doen: controleren, berekenen en tonen. Deze tester draait geen echte Python, maar rekent de uitvoer na op basis van de getallen en letters in je code.
Probeer: voeg een vierde student toe, verander de grenzen (90 → 85, 80 → 75), of schrijf
een helper is_pass(grade) die True geeft bij A en B en roep hem aan.
Scenario: de drone krijgt een vluchtplan als lijst van stappen. Niet elke stap is bruikbaar: er staat een richting in die niet bestaat, en een stap die binnen te ver gaat. Jouw script vliegt de goede stappen en slaat de foute over — met een melding waarom. Dat bouw je niet als één grote lus vol if's, maar met kleine helpers die elk één ding doen.
Gegeven:
VALID_DIRECTIONS = ["forward", "back", "left", "right", "up", "down"]
MIN_DISTANCE = 20 # cm, kleiner kan de drone niet
MAX_DISTANCE = 200 # cm, binnen niet verder per stap
flight_plan = [
{"direction": "forward", "distance": 100},
{"direction": "left", "distance": 50},
{"direction": "sideways", "distance": 50},
{"direction": "back", "distance": 100},
{"direction": "right", "distance": 250},
{"direction": "right", "distance": 50},
]
Je taak: schrijf minstens vier helpers: één die een stap controleert, één die bij een richting de juiste drone-beweging opzoekt, één die een stap vliegt, en één die een logregel maakt. Het hoofdscript gebruikt ze om het plan te vliegen.
Acceptatiecriteria: