Come colui che implementa questo strumento , startHttpServerdovresti provare a renderlo il più semplice, fluido e senza soluzione di continuità da usare ...
La logica della funzione
Tecnicamente, dividendo startHttpServerla logica in 2 funzioni e chiamandole separatamente , tutto ciò che fai è spostare startHttpServer l' idempotenza nel codice chiamando entrambe le funzioni ... Inoltre, a meno che non avvolgi entrambe la logica in una terza funzione (che è ciò che fa startHttpServerin primo luogo), questo ti costringe a scrivere codice non DRY, duplicandolo esponenzialmente ovunque dovresti chiamare startHttpServer. In breve, startHttpServer deve chiamare se stessa la isHttpServerRunningfunzione.
Quindi il mio punto è:
- Implementare la
isHttpServerRunningfunzione perché potrebbe essere necessario in modo indipendente comunque ...
- Implementalo
startHttpServerfacendolo usare isHttpServerRunningper definire la sua prossima azione di conseguenza ...
Tuttavia, puoi startHttpServerrestituire qualsiasi valore di cui l'utente abbia bisogno in questa funzione, ad esempio:
0 => errore di avvio del server
1 => avvio server riuscito
2 => 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'è nessun problema con l'intenzione di iniziare qualcosa che è già stato avviato, AKA 1*1=1. Quindi, almeno per me, chiamarlo " ensureHttpServerIsRunning" non sembra assolutamente necessario, mi preoccuperei di più di quanto sia lungo, naturale e memorabile il nome della funzione.
Ora, se vuoi sapere come funziona in dettaglio la funzione sotto il cofano, c'è la documentazione o la fonte del codice per questo, intendo come per qualsiasi altra funzione da libreria / framework / API / ecc ...
Si impara la funzione di una volta, mentre si scrive che più volte ...
Quindi comunque, rimarrei con quello startHttpServerche è più breve, più semplice ed esplicito di ensureHttpServerIsRunning.