Denominazione di un predicato: "precondizione" o "precondizione_is_met"? [chiuso]

0

Nel mio framework di app web, ogni pagina può avere una precondizione che deve essere soddisfatta prima che possa essere visualizzata all'utente. Ad esempio, se l'utente 1 e l'utente 2 stanno giocando un gioco di ruolo avanti e indietro, l'utente 2 deve aspettare che l'utente 1 finisca il suo turno prima che possa prendere il suo turno. Altrimenti, all'utente viene visualizzata una pagina in attesa.

Questo è implementato con un predicato:

def precondition(self):
    return user_1.completed_turn

Il nome più semplice per questa API è precondition , ma questo porta a codice come if precondition(): ... , il che non è molto ovvio. Mi sembra che sia più accurato chiamarlo precondition_is_met() , ma non ne sono sicuro.

Esiste una best practice per denominare metodi come questo?

    
posta RexE 25.10.2013 - 20:36
fonte

1 risposta

1

Il precondition sembra essere parte dell'API pubblica. Pertanto, la denominazione dovrebbe principalmente riflettere il suo utilizzo da parte di un consumatore della tua API. Il modo in cui il tuo codice gestisce internamente è un'altra domanda tutta insieme.

Suppongo che un utente fornisca un oggetto Page che implementa questo metodo di precondizione. In tal caso, implementare un metodo precondition sembra molto più naturale, dichiarativo e DWIMmy che il verboso (al punto di essere Javaesque) precondition_is_met . Nota che il metodo è questa precondizione e che invoca determina se è stato raggiunto.

Se mi sbaglio e la funzione è utilizzata esclusivamente nei tuoi interni, il nome più lungo sembra essere giustificato, anche se potresti forse elidere is e usare precondition_met o precondition_fulfilled .

    
risposta data 25.10.2013 - 21:03
fonte

Leggi altre domande sui tag