Soll ich meine Funktionen bei der Verwaltung der Bereitstellung in viele kleine oder eine große Funktion aufteilen?

15

Ich bin relativ neu in die Funktionen Modul und ich habe in Bezug auf widersprüchliche Empfehlungen online zu lesen , ob es am einfachsten A) ein großes Feature oder B) mehrere kleinere zu halten Merkmale und dann ein „ Feature-Controller “ Typ - Modul , dass listet alle kleineren Features als Abhängigkeiten.

Ein bisschen zu meiner spezifischen Situation: Ich verwende einen local development -> dev server -> staging server -> live serverWorkflow. Diese spezielle Site wird mit ziemlicher Sicherheit die einzige ihrer Art sein, die ich jemals entwickelt habe. Ich beabsichtige nicht, das, was featuresich für diese Site erstelle, auf anderen Sites zu verwenden.

Das bringt mich dazu, alles in einem großen Feature zu machen, weil ich in der Vergangenheit Probleme hatte, bei denen ich versehentlich die gleichen Regeln in mehreren Features definiert habe und in Schwierigkeiten geraten bin. In Bezug auf die Struktur scheint mir dies jedoch falsch zu sein - es gibt verschiedene Merkmale / Funktionen, daher sollten sie in separate Merkmale unterteilt werden. Auf der anderen Seite habe ich das Gefühl, dass ich auf diese Weise möglicherweise nur zusätzlichen Aufwand für mich selbst schaffe, der niemandem nützt.

Welcher Ansatz ist in der Praxis einfacher beizubehalten - ein großes Merkmal oder viele kleinere?

Patrick Kenny
quelle

Antworten:

7

Erstellen Sie mehrere kleine Features, die nach konzeptionellen Ebenen unterteilt sind .

Vorteile:

  1. Granularität bei der Überprüfung der Überschreibungen und Durchführen Kehrt - so dass Sie nicht haben zu revert alles auf einmal.
  2. Modularität - auch wenn Sie nicht vorhaben, einzelne Komponenten wiederzuverwenden, trägt die Aufteilung in einzelne Module zur Wartungsfreundlichkeit bei.

Für die Bereitstellung eines einzelnen Standorts von der Entwicklung über den Test bis zur Produktion verwenden wir die folgende Taxonomie (wobei "Standort" durch einen eindeutigen Maschinennamen für den Standort ersetzt wird):

  • site_typesFeature - Deklariert Inhaltstypen, Felder, ImageCache-Einstellungen und Benutzerrollen
  • site_structureFeature - deklariert Kontexte, Ansichten, Menüs und Menüverknüpfungen , Blöcke, Benutzerberechtigungen, Variablen
    • hängt von der site_typesFunktion ab
  • site_contentFeature - deklariert Knoten
    • hängt von der site_structureFunktion ab

Wenn es mehrere unterschiedliche Site-Abschnitte gibt (z. B. Öffentlich oder Privat), sollten Sie die Dinge weiter aufteilen:

  • site_types Feature
  • site_structure Feature - Deklariert sowohl öffentliche als auch private Strukturkomponenten
    • hängt von der site_typesFunktion ab
  • site_public_structure Feature
    • hängt von der site_typesFunktion ab
  • site_public_content Feature
    • hängt von der site_public_structureFunktion ab
  • site_private_structure Feature
    • hängt von der site_typesFunktion ab
  • site_private_content Feature
    • hängt von der site_private_structureFunktion ab
Smokris
quelle