Comme celui qui mettent en œuvre cet outil , startHttpServervous devriez essayer de faire le plus simple, lisse et transparente à l' utilisation ...
La logique de la fonction
Techniquement, en scindant startHttpServerla logique en 2 fonctions et en les appelant séparément , tout ce que vous faites est de déplacer startHttpServer l’ idempotency dans le code en appelant les deux fonctions à la place ... startHttpServeren premier lieu), cela vous oblige à écrire du code unDRYed, en le dupliquant de manière exponentielle partout où vous auriez à appeler startHttpServer. En bref, startHttpServer doit s'appeler elle-même la isHttpServerRunningfonction.
Donc, mon point est:
- Implémente la
isHttpServerRunningfonction parce que cela peut être nécessaire indépendamment de toute façon ...
- Implémentez-le en le
startHttpServerfaisant utiliser isHttpServerRunningpour définir sa prochaine action en conséquence ...
Cependant, vous pouvez toujours startHttpServerrenvoyer toute valeur dont l'utilisateur de cette fonction peut avoir besoin, par exemple:
0 => échec de démarrage du serveur
1 => succès de démarrage du serveur
2 => le serveur a déjà été démarré
Le nom de la fonction
Tout d’abord, quel est le but principal de l’utilisateur? Pour démarrer le serveur HTTP , non?
Fondamentalement, il n'y a pas de problème en envisageant de commencer quelque chose qui a déjà été commencé, AKA 1*1=1. Donc, du moins pour moi, l'appeler " ensureHttpServerIsRunning" ne semble pas être absolument nécessaire, je me soucierais davantage de la longueur, du naturel et du mémorable nom de la fonction.
Maintenant, si vous voulez savoir comment fonctionne la fonction sous le capot en détail, il y a la documentation ou le code source pour cela, je veux dire comme pour toute autre fonction de la bibliothèque / framework / API / etc ...
Vous apprenez la fonction une fois pendant que vous l' écrivez plusieurs fois ...
De toute façon, je m'en tiendrai à startHttpServerce qui est plus court, plus simple et plus explicite que ensureHttpServerIsRunning.