Como el que implementar esta herramienta , startHttpServer, usted debe estar tratando de hacer que sea lo más simple, suave y sin costuras para uso ...
La lógica de la función
Técnicamente, al dividir startHttpServerla lógica en 2 funciones y llamarlas por separado , todo lo que haces es mover startHttpServer la idempotencia al código que llama a ambas funciones en su lugar ... Además, a menos que envuelva ambas lógicas en una tercera función (que es lo que hace startHttpServeren primer lugar), esto te obliga a escribir código sin DRY, duplicándolo exponencialmente en todas partes a las que deberías llamar startHttpServer. En resumen, startHttpServer tiene que llamarse a sí mismo la isHttpServerRunningfunción.
Entonces mi punto es:
- Implemente la
isHttpServerRunningfunción porque esto puede ser necesario independientemente de todos modos ...
- Implemente
startHttpServerhacer que se use isHttpServerRunningpara definir su próxima acción en consecuencia ...
Aún así, puede startHttpServerdevolver cualquier valor que el usuario de esta función pueda necesitar, por ejemplo:
0 => falla de inicio del servidor
1 => servidor iniciando con éxito
2 => el servidor ya se inició
El nombre de la función.
En primer lugar, ¿cuál es el objetivo principal del usuario? Para iniciar el servidor HTTP , ¿verdad?
Fundamentalmente, no hay ningún problema al intentar comenzar algo que ya se ha iniciado, también conocido como AKA 1*1=1. Entonces, al menos para mí, llamarlo " ensureHttpServerIsRunning" parece no ser críticamente necesario, me importaría más cuánto tiempo, natural y memorable sea el nombre de la función.
Ahora, si desea saber cómo funciona en detalle la función bajo el capó, existe la documentación o el código fuente para eso, me refiero a cualquier otra función de biblioteca / marco / API / etc ...
Usted aprenderá la función de una vez mientras que escribir varias veces ...
De todos modos, me quedaría con lo startHttpServerque es más corto, más simple y más explícito que ensureHttpServerIsRunning.