При использовании функций для управления развертыванием следует ли мне разбивать свою функциональность на множество мелких функций или на одну большую функцию?


Я относительно новичок в модуле функций , и я читал противоречивые рекомендации в Интернете относительно того, проще ли поддерживать А) одну большую функцию или Б) несколько меньших особенности а затем " функция-контроллер" введите модуль, в котором перечислены все более мелкие функции в качестве зависимостей.

Немного о моей конкретной ситуации: я использую рабочий процесс local development -> dev server -> staging server -> live server. Этот конкретный сайт почти наверняка будет единственным такого рода, который я когда-либо разрабатывал; Я не намерен использовать features, который я создаю для этого сайта, на каких-либо других сайтах.

Это заставляет меня склоняться к тому, чтобы делать все в одной большой функции, потому что в прошлом у меня были проблемы, когда я случайно определил одни и те же правила в нескольких функциях и попал в беду. Однако с точки зрения структуры это кажется мне неправильным - существуют разные функции/функции, поэтому их следует разделить на отдельные функции. С другой стороны, я чувствую, что по делая это, я могу просто создать для себя дополнительную работу и накладные расходы, которые никому не принесут пользы.

Какой подход легче поддерживать на практике - одну большую функцию или множество более мелких?

 14
Author: DRUPWAY, 2012-02-24

1 answers

Создайте несколько небольших объектов, разделенных по концептуальному слою.

Преимущества:

  1. Детализация при просмотре переопределений и выполнении возвратов - поэтому вам не нужно возвращать все сразу.
  2. Модульность - даже если вы не планируете повторно использовать отдельные компоненты, разбиение на отдельные модули поможет повысить ремонтопригодность.

Для развертывания одного сайта от разработки до тестирования и производства мы используем следующая таксономия (где "сайт" заменен уникальным именем машины для сайта) -

  • 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 Функции
 7
Author: smokris, 2012-02-25 19:13:22