Как тот , кто реализует этот инструмент , startHttpServerвы должны пытаться сделать это самый простой, гладкой и бесшовные для использования ...
Логика функции
Технически, расщеплением startHttpServer«s логики в 2 -х функций и называя их по отдельности , все , что вы делаете это перемещение startHttpServer » s идемпотентность в код вызова обе функции вместо ... Кроме того, если вы не завернуть как логику в третьей функции (что делает startHttpServerв первую очередь), это вынуждает вас писать незадействованный код, экспоненциально дублируя его везде, где вам нужно будет позвонить startHttpServer. Короче говоря, startHttpServer должна сама вызывать isHttpServerRunningфункцию.
Итак, моя точка зрения такова:
- Реализуйте
isHttpServerRunningфункцию, потому что это может понадобиться независимо в любом случае ...
- Реализуйте,
startHttpServerиспользуя его, isHttpServerRunningчтобы определить его следующее действие соответственно ...
Тем не менее, вы можете startHttpServerвернуть любое значение, которое может понадобиться пользователю этой функции, например:
0 => Ошибка запуска сервера
1 => Успешный запуск сервера
2 => сервер уже запущен
Наименование функции
Прежде всего, какова основная цель пользователя? Чтобы запустить HTTP-сервер , верно?
По сути, нет проблем с намерением начать то, что уже началось, АКА 1*1=1. Так что, по крайней мере для меня, называть это " ensureHttpServerIsRunning", кажется, не является критически необходимым, я бы больше заботился о том, насколько длинным, естественным и запоминающимся является название функции.
Теперь, если вы хотите узнать, как подробно работает функция под капотом, для этого есть документация или источник кода, я имею в виду, как и для любой другой функции из библиотеки / framework / API / etc ...
Вы изучаете функцию один раз, а пишете ее несколько раз ...
Так или иначе, я бы придерживался того, startHttpServerчто короче, проще и понятнее, чем ensureHttpServerIsRunning.