При использовании функций для управления развертыванием следует ли мне разбивать свою функциональность на множество мелких функций или на одну большую функцию?
Я относительно новичок в модуле функций , и я читал противоречивые рекомендации в Интернете относительно того, проще ли поддерживать А) одну большую функцию или Б) несколько меньших особенности а затем " функция-контроллер" введите модуль, в котором перечислены все более мелкие функции в качестве зависимостей.
Немного о моей конкретной ситуации: я использую рабочий процесс local development -> dev server -> staging server -> live server
. Этот конкретный сайт почти наверняка будет единственным такого рода, который я когда-либо разрабатывал; Я не намерен использовать features
, который я создаю для этого сайта, на каких-либо других сайтах.
Это заставляет меня склоняться к тому, чтобы делать все в одной большой функции, потому что в прошлом у меня были проблемы, когда я случайно определил одни и те же правила в нескольких функциях и попал в беду. Однако с точки зрения структуры это кажется мне неправильным - существуют разные функции/функции, поэтому их следует разделить на отдельные функции. С другой стороны, я чувствую, что по делая это, я могу просто создать для себя дополнительную работу и накладные расходы, которые никому не принесут пользы.
Какой подход легче поддерживать на практике - одну большую функцию или множество более мелких?
1 answers
Создайте несколько небольших объектов, разделенных по концептуальному слою.
Преимущества:
- Детализация при просмотре переопределений и выполнении возвратов - поэтому вам не нужно возвращать все сразу.
- Модульность - даже если вы не планируете повторно использовать отдельные компоненты, разбиение на отдельные модули поможет повысить ремонтопригодность.
Для развертывания одного сайта от разработки до тестирования и производства мы используем следующая таксономия (где "сайт" заменен уникальным именем машины для сайта) -
-
site_types
Функция - объявляет Типы контента, Поля, настройки кэша изображений, Роли пользователей -
site_structure
Функция - объявляет Контексты, Представления, Меню и Ссылки на меню, Блоки, Разрешения пользователей, Переменные- зависит от
site_types
Функции
- зависит от
-
site_content
Функция - объявляет Узлы- зависит от
site_structure
Особенность
- зависит от
Если существует несколько отдельных разделов сайта (например, Публичный и частный), рассмотрите возможность дальнейшего разделения:
-
site_types
Функция -
site_structure
Функция - объявляет структурные компоненты, общие как для государственных, так и для частных- зависит от
site_types
Функции
- зависит от
-
site_public_structure
Особенность- зависит от
site_types
Функции
- зависит от
-
site_public_content
Особенность- зависит от
site_public_structure
Особенность
- зависит от
-
site_private_structure
Особенность- зависит от
site_types
Функции
- зависит от
-
site_private_content
Особенность- зависит от
site_private_structure
Функции
- зависит от