Lavorando in Python, ho scritto alcune utility per affermare le pre-condizioni e re-interpretare le eccezioni, e ho scoperto che il mio codice non ha tanti rami.
Ho anche provato a spostare un'altra selezione del percorso del codice in mappe, quindi in base alle condizioni dei dati, verrà cercato un oggetto appropriato per eseguire le operazioni.
Il mio codice è principalmente una sequenza di istruzioni.
Ora ho difficoltà a collocare i punti di interruzione o a valutare la copertura del codice.
È normale quando ti sposti con uno stile più dichiarativo? (ovviamente sono ancora procedurale)
Ad esempio, invece di sollevare un'eccezione in alcune condizioni, trasmetto tutti questi dettagli a una funzione, insist
.
Come sembrava prima:
if not condition:
raise MyError('details {something} or {other}',
something=something,
other=other)
else:
# rest of code
Come appare ora:
insist(condition, MyError,
'details {something} or {other}',
something=something,
other=other)
# rest of code
Ho anche qualcosa di simile per eliminare i blocchi di try/except
quando so che voglio solo generare una nuova eccezione.