Come colui che implementa questo strumento , startHttpServer , dovresti cercare di renderlo il più semplice, semplice e senza cuciture da usare ...
La logica della funzione
Tecnicamente, dividendo la logica di startHttpServer in 2 funzioni e chiamandole separatamente , tutto ciò che fai è in movimento startHttpServer 's idempotenza nel codice che chiama invece entrambe le funzioni ... Inoltre, a meno che non si avvolga la logica in una terza funzione ( che è ciò che fa startHttpServer al primo posto), questo ti obbliga a scrivere codice non modificato, duplicandolo esponenzialmente ovunque tu debba chiamare startHttpServer . In breve, startHttpServer deve chiamarsi la funzione isHttpServerRunning .
Quindi il mio punto è:
- Implementa la funzione
isHttpServerRunning perché potrebbe comunque essere necessaria indipendentemente ...
- Implementa
startHttpServer rendendolo utilizza isHttpServerRunning per definire la sua prossima azione di conseguenza ...
Ancora, puoi fare in modo che% co_de restituisca qualsiasi valore di cui può aver bisogno l'utente di questa funzione, ad esempio:
-
startHttpServer = > errore iniziale del server
-
0 = > server che ha avuto successo
-
1 = > il server era già stato avviato
La denominazione della funzione
Prima di tutto, qual è l'obiettivo principale dell'utente? Per avviare il server HTTP , giusto?
Fondamentalmente, non c'è alcun problema se si intende iniziare qualcosa che è già stato avviato, AKA 2 . Quindi, almeno per me, chiamarlo " 1*1=1 " non sembra necessario, mi interessa di più per quanto tempo, naturale e memorabile è il nome della funzione.
Ora se vuoi sapere come funziona in dettaglio la funzione sotto il cofano, c'è la documentazione o il codice sorgente per questo, intendo come per qualsiasi altra funzione da libreria / framework / API / etc ...
Sei impara la funzione una volta mentre scrivi più volte ...
Ad ogni modo, rimango con ensureHttpServerIsRunning che è più breve, più semplice e più esplicito di startHttpServer .