Як той, хто реалізує цей інструмент , startHttpServerви повинні намагатися зробити його найбільш простим, гладким і безпроблемним у використанні ...
Логіка функції
Технічно, шляхом розщеплення startHttpServer«s логіка в 2 -х функцій і називаючи їх по окремо , все , що ви робите це переміщення startHttpServer » s ідемпотентність в код виклику обидві функції замість ... Крім того, якщо ви не звернути як логіку в третьої функції (що робить startHttpServerпо-перше), це змушує вас писати код unDRYed, дублюючи його експоненціально скрізь, де вам доведеться зателефонувати startHttpServer. Коротше кажучи, startHttpServer доводиться називати себе isHttpServerRunningфункцією.
Отже, моя думка:
isHttpServerRunningФункція реалізації, оскільки це може знадобитися незалежно в будь-якому випадку ...
- Реалізуйте,
startHttpServerвикористовуючи його isHttpServerRunningдля визначення відповідної наступної дії ...
Тим не менш, ви можете startHttpServerповернути будь-яке значення, яке може знадобитися користувачеві цієї функції, наприклад:
0 => помилка запуску сервера
1 => сервер починає успіх
2 => сервер вже запущений
Іменування функції
Перш за все, яка головна мета користувача? Щоб запустити сервер HTTP , правда?
По суті, немає жодної проблеми, маючи намір почати щось, що вже було розпочато, AKA 1*1=1. Тож, принаймні, мені називати це " ensureHttpServerIsRunning" видається не критично необхідним, я б більше піклувався про те, як довго, природно і запам'ятовується ім'я функції.
Тепер, якщо ви хочете дізнатися, як детально працювати функція під кришкою, є документація або джерело коду для цього, я маю на увазі, як і для будь-якої іншої функції з бібліотеки / фреймворку / API / тощо ...
Ви дізнаєтесь функцію один раз, коли ви пишете її кілька разів ...
Так що я все-таки дотримуюся цього, startHttpServerякий коротший, простіший і чіткіший, ніж ensureHttpServerIsRunning.