Anliegen, Dekorateure, Moderatoren, Serviceobjekte, Helfer, Hilf mir zu entscheiden [geschlossen]

8

Es gibt wenige Dinge in Rails:

%Vor%

Kann jemand mir ein echtes Problembeispiel in welcher Art von Situation geben, was sollte ich befolgen, damit ich diese Eigenschaften besser verstehen kann?

Beispiele sind besser, um das Konzept zu verstehen

Vielen Dank im Voraus und danke für das Schauen

    
user3118220 19.03.2015, 10:14
quelle

2 Antworten

7

Nun, wie ich im Kommentar gesagt habe, werden Sie besser mit einfachen Google-Suchen sein.

Zum Beispiel dies ist ein schöner Artikel über die meisten von ihnen.

Ich werde Sie einfach durch die Grundlagen führen.

  1. Bedenken bestehen hauptsächlich darin, Ihre Modelle und Controller zu trocknen. Wenn Sie einen sehr fetten Controller / Modell haben, das viele Funktionen enthält (Verletzung der SRP), ist es viel besser, sie in mehrere unabhängige Probleme zu zerlegen und sie einfach wieder einzubinden. Auf diese Weise können Sie auch Funktionen zwischen ähnlichen Controllern teilen / Modelle. Hier ist ein schöner Artikel.

  2. Dekoratoren werden verwendet, um die Geschäftslogik von Modellen mit ihrer Benutzererscheinung zu trennen. Z.B. zum Speichern von Methoden, die nur in den Ansichten und für andere Anzeigen verwendet werden. Sie werden auch verwendet, um die Logik eines Objekts zu erweitern. Hier ist ein netter Thumbot-Beitrag.

  3. Moderatoren sind praktisch identisch, werden aber nur zur Anzeige verwendet.

  4. Service Objects werden hauptsächlich für anspruchsvolle Logik verwendet, die nicht notwendigerweise zu einem bestimmten Modell / Controller gehört und / oder sich beispielsweise mit mehreren Modellen befasst.

  5. Helfer sind solid, um die Logik aus der Ansicht zu entfernen und damit die Ansichtsmuster zu vereinfachen und die Ansichten zu trocknen. Normalerweise für einfache Dinge verwendet (weil es sonst besser ist, einen Dekorateur oder einen Moderator zu verwenden).

Almaron 19.03.2015, 10:45
quelle
0

Bedenken

Wird verwendet, um Funktionen zwischen Dateien in einem 'Typ' ('Modell', 'Controller', ...) zu teilen. So hast du

%Vor%

In concerns setzen Sie Module, die in Klassen enthalten sind. Es ist eine gute Übung, einen Verhaltenscode einzugeben. Zum Beispiel

%Vor%

Projektmodell

%Vor%

Vorschlagsmodell

%Vor%

in app/models/concerns/messageable.rb

%Vor%     
Nermin 19.03.2015 10:33
quelle