Czy korzystając z funkcji do zarządzania wdrażaniem, powinienem podzielić swoją funkcjonalność na wiele małych funkcji lub jedną dużą funkcję?

15

Jestem stosunkowo nowy w module funkcji i przeczytałem w Internecie sprzeczne zalecenia dotyczące tego, czy najłatwiej jest utrzymać A) jedną dużą funkcję lub B) kilka mniejszych funkcji, a następnie moduł typu „ kontroler funkcji ”, który zawiera listę wszystkich mniejszych funkcji jako zależności.

Trochę o mojej konkretnej sytuacji: używam local development -> dev server -> staging server -> live serverprzepływu pracy. Ta konkretna strona prawie na pewno będzie jedyną tego rodzaju, jaką kiedykolwiek stworzyłem; Nie zamierzam używać tego, featuresco tworzę dla tej witryny, w innych witrynach.

To sprawia, że ​​skłaniam się do robienia wszystkiego w jednej wielkiej funkcji, ponieważ w przeszłości miałem problemy, w których przypadkowo zdefiniowałem te same zasady w wielu funkcjach i wpadłem w kłopoty. Jednak jeśli chodzi o strukturę, wydaje mi się to niewłaściwe - istnieją różne cechy / funkcje, dlatego należy je podzielić na osobne cechy. Z drugiej strony czuję, że robiąc to, mogę po prostu stworzyć dla siebie dodatkową pracę i koszty ogólne, które nikomu nie przyniosą korzyści.

Które podejście jest łatwiejsze do utrzymania w praktyce - jedna duża cecha czy wiele mniejszych?

Patrick Kenny
źródło

Odpowiedzi:

7

Wykonaj kilka małych funkcji, podzielonych według warstw pojęciowych .

Zalety:

  1. Szczegółowość podczas przeglądania Zastąpień i przywracania - dzięki czemu nie musisz cofać wszystkiego naraz.
  2. Modułowość - nawet jeśli nie planujesz ponownego użycia poszczególnych komponentów, rozbicie elementów na odrębne moduły pomoże w utrzymaniu.

W celu wdrożenia pojedynczej witryny od projektu do przetestowania do produkcji stosujemy następującą taksonomię (gdzie „witryna” jest zastąpiona unikalną nazwą maszyny dla witryny) -

  • site_typesFunkcja - deklaruje typy zawartości, pola, ustawienia ImageCache, role użytkownika
  • site_structureFunkcja - deklaruje konteksty, widoki, menu i łącza menu , bloki, uprawnienia użytkownika, zmienne
    • zależy site_typesFeature
  • site_contentFunkcja - deklaruje węzły
    • zależy site_structureFeature

Jeśli istnieje wiele odrębnych sekcji witryny (na przykład Publiczna vs. Prywatna), rozważ dalsze rozdzielenie:

  • site_types Funkcja
  • site_structure Cecha - deklaruje komponenty konstrukcyjne wspólne zarówno publicznie, jak i prywatnie
    • zależy site_typesFeature
  • site_public_structure Funkcja
    • zależy site_typesFeature
  • site_public_content Funkcja
    • zależy site_public_structureFeature
  • site_private_structure Funkcja
    • zależy site_typesFeature
  • site_private_content Funkcja
    • zależy site_private_structureFeature
smokris
źródło