Jako ten, który wdraża to narzędzie , startHttpServerpowinieneś starać się, aby było to najprostsze, płynne i bezproblemowe w użyciu ...
Logika funkcji
Technicznie rzecz biorąc, przez rozszczepienie startHttpServerjest 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 startHttpServerpo 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ę isHttpServerRunningfunkcją.
Więc mam na myśli:
- Zaimplementuj
isHttpServerRunningfunkcję, ponieważ i tak może być potrzebna niezależnie ...
- Zaimplementuj
startHttpServer, używając go isHttpServerRunningdo odpowiedniego zdefiniowania następnego działania ...
Mimo to możesz startHttpServerzwró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, startHttpServerco jest krótsze, prostsze i bardziej wyraźne niż ensureHttpServerIsRunning.