Sie sehen sich Hilfeinhalte der folgenden Version an:

Setzen Sie das Modell von David Nuescheler um

„David’s Model“ wurde vor Jahren von David Nuescheler entworfen, hat aber bis heute Gültigkeit. Die wichtigsten Grundsätze des Modells lauten:

  • Erst die Daten, dann die Struktur. Zumindest gegebenenfalls.
  • Steuern Sie die Content-Hierarchie, anstatt sie dem Zufall zu überlassen.
  • Workspaces sind für „clone()“, „merge()“ und „update()“ vorgesehen.
  • Bei gleichgeordneten Elementen mit identischem Namen ist Vorsicht geboten.
  • Verweise richten mehr Schaden an, als sie nutzen.
  • Dateien sind Dateien.
  • IDs sind schlecht.

„David’s Model“ finden Sie in der Jackrabbit Wiki unter http://wiki.apache.org/jackrabbit/DavidsModel.

Alles ist Inhalt

Sie sollten alles im Repository speichern, anstatt sich auf separate Datenquellen von Dritten wie etwa Datenbanken zu verlassen. Dies bezieht sich auf erstellte Inhalte, Binärdaten wie Bilder, Code und Konfigurationen. Auf diese Weise können Sie mit einem Satz von APIs alle Inhalte verwalten und die Promotion dieser Inhalte durch Replikation steuern. Außerdem profitieren Sie von nur einer einzigen Quelle für Backups, Protokollierung usw.

Anwenden des Designgrundsatzes „Content Model First“

Wenn Sie eine neue Funktion entwickeln, beginnen Sie immer damit, zunächst die JCR-Inhaltsstruktur zu entwerfen. Befassen Sie sich dann erst mit dem Lesen und Schreiben Ihrer Inhalte mithilfe der standardmäßigen Sling-Servlets. Auf diese Weise können Sie sicherstellen, dass Ihre Implementierung problemlos mit Standardmechanismen für die Zugriffssteuerung funktioniert, und darüber hinaus die Erstellung überflüssiger Servlets im CRUD-Stil vermeiden.

RESTful statt Panik

Servlets sollten auf Basis von Ressourcentypen anstelle von Pfaden definiert werden. Dies ermöglicht die Verwendung von JCR-Zugriffssteuerungen, die Anwendung der REST-Prinzipien und die Verwendung der Ressource und des Ressourcen-Resolvers, die in der Anforderung bereitgestellt werden. Damit lassen sich außerdem die Skripte ändern, die URLs auf Serverseite rendern, ohne die URLs auf Client-Seite ändern zu müssen, während die serverseitigen Implementierungsdetails vor dem Client verborgen werden, um die Sicherheit zu erhöhen.

Vermeiden der Definition neuer Knotentypen

Knotentypen setzen auf einer niedrigen Ebene der Infrastrukturschicht an und die meisten Anforderungen können erfüllt werden, indem ein „sling:resourceType“ verwendet wird, der einem Knotentyp „nt:unstructured“, „oak:Unstructured“, „sling:Folder“ oder „cq:Page“ zugewiesen ist. Knotentypen entsprechen dem Schema im Repository und das Ändern von Knotentypen kann sich äußerst aufwendig gestalten.

Einhalten Sie Namenskonventionen im JCR

Durch die Einhaltung von Namenskonventionen wird die Konsistenz der Codebasis erhöht, die Fehler-Inzidenzrate gesenkt und der Arbeitsprozess der beteiligten Entwickler beschleunigt. Adobe wendet die folgenden Konventionen bei der Entwicklung von AEM an:

  • Knotennamen
    • Ausschließliche Verwendung von Kleinbuchstaben
    • Worttrennung mithilfe von Bindestrichen
  • Eigenschaftsnamen
    • Gemischte Groß-/Kleinschreibung, beginnend mit einem Kleinbuchstaben
  • Komponenten (JSP/HTML)
    • Ausschließliche Verwendung von Kleinbuchstaben
    • Worttrennung mithilfe von Bindestrichen

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie