Como aquele que implementa essa ferramenta , startHttpServervocê deve tentar torná-la a mais simples, suave e perfeita de usar ...
A lógica da função
Tecnicamente, dividindo startHttpServera lógica em 2 funções e chamando-as separadamente , tudo o que você faz é mover startHttpServer a idempotência para o código chamando as duas funções ... Além disso, a menos que você envolva a lógica em uma terceira função (que é o que faz startHttpServerem primeiro lugar), isso obriga a escrever código não-SECADO, duplicando-o exponencialmente em qualquer lugar que você precise chamar startHttpServer. Em suma, startHttpServer tem que se chamar de isHttpServerRunningfunção.
Então, meu ponto é:
- Implemente a
isHttpServerRunningfunção porque isso pode ser necessário independentemente, de qualquer maneira ...
- Implemente
startHttpServero uso isHttpServerRunningpara definir sua próxima ação de acordo ...
Ainda assim, você pode startHttpServerretornar qualquer valor que o usuário dessa função possa precisar, por exemplo:
0 => falha na inicialização do servidor
1 => servidor iniciando com sucesso
2 => servidor já foi iniciado
A nomeação da função
Primeiro de tudo, qual é o objetivo principal do usuário? Para iniciar o servidor HTTP , certo?
Fundamentalmente, não há problema pretendendo iniciar algo que já foi iniciado, também conhecido como AKA 1*1=1. Então, pelo menos para mim, chamá-lo " ensureHttpServerIsRunning" não parece ser criticamente necessário, eu me importaria mais com quanto tempo, natural e memorável é o nome da função.
Agora, se você quiser saber como trabalhar em detalhes a função sob o capô, existe a documentação ou a fonte de código para isso, quero dizer, como para qualquer outra função da biblioteca / framework / API / etc ...
Você aprende a função uma vez enquanto a escreve várias vezes ...
Enfim, eu continuaria com o startHttpServerque é mais curto, mais simples e mais explícito do que ensureHttpServerIsRunning.