Jako ten, który wdraża to narzędzie , startHttpServer
powinieneś starać się, aby było to najprostsze, płynne i bezproblemowe w użyciu ...
Logika funkcji
Technicznie rzecz biorąc, przez rozszczepienie startHttpServer
jest logika w 2 funkcje i nazywając je oddzielnie , wszystko co robisz jest w ruchu startHttpServer
's idempotentność do kodu wzywając obie funkcje zamiast ... Poza tym, o ile nie zawijać zarówno logikę w trzeciej funkcji (co jest, co robi startHttpServer
po pierwsze), to zmusza cię do napisania nieSUSZONEGO kodu, powielając go wykładniczo wszędzie, gdzie będziesz musiał zadzwonić startHttpServer
. Krótko mówiąc, startHttpServer
musi nazywać się isHttpServerRunning
funkcją.
Więc mam na myśli:
- Zaimplementuj
isHttpServerRunning
funkcję, ponieważ i tak może być potrzebna niezależnie ...
- Zaimplementuj
startHttpServer
, używając go isHttpServerRunning
do odpowiedniego zdefiniowania następnego działania ...
Mimo to możesz startHttpServer
zwrócić dowolną wartość, której użytkownik tej funkcji może potrzebować, np .:
0
=> błąd uruchamiania serwera
1
=> serwer rozpoczął sukces
2
=> serwer został już uruchomiony
Nazewnictwo funkcji
Po pierwsze, jaki jest główny cel użytkownika? Aby uruchomić serwer HTTP , prawda?
Zasadniczo nie ma problemu, zamierzając rozpocząć coś, co już rozpoczęto, AKA 1*1=1
. Tak więc, przynajmniej dla mnie, nazwanie go „ ensureHttpServerIsRunning
” nie wydaje się konieczne, bardziej zależałoby mi na tym, jak długa, naturalna i niezapomniana jest nazwa funkcji.
Teraz, jeśli chcesz wiedzieć, jak szczegółowo działa funkcja pod maską, istnieje do tego dokumentacja lub źródło kodu, mam na myśli, jak w przypadku każdej innej funkcji z biblioteki / frameworka / API / etc ...
Nauczysz się tej funkcji raz, pisząc ją wiele razy ...
W każdym razie trzymałbym się tego, startHttpServer
co jest krótsze, prostsze i bardziej wyraźne niż ensureHttpServerIsRunning
.