內容架構

關注David的型號

David』s Model是David Nuescheler幾年前寫的,但其想法今天仍然成立。 David』s Model的主要原則如下:

  • 資料先來,結構後來。 也許吧。
  • 推動內容階層,別讓它發生。
  • 工作區包括clone()merge()update()
  • 小心同名兄弟姐妹。
  • 參照被認為有害。
  • 檔案是檔案。
  • 身份證是邪惡的。

David』s Model)可在Jackrabbit Wiki上找到,網址為https://wiki.apache.org/jackrabbit/DavidsModel

一切都是內容

所有內容都應儲存在儲存庫中,而不是依賴單獨的第三方資料源(如資料庫)。 這適用於製作內容、二進位資料(例如影像、程式碼、設定等)。 這可讓我們使用一組API來管理所有內容,並透過複製來管理此內容的促銷。 我們還獲得了單一備份、日誌記錄等源。

使用「內容模型優先」設計原則

建立新功能時,請務必先設計JCR內容結構,然後使用預設的Sling servlet來閱讀和寫入內容。 這可讓您確保實作能順利運用現成可用的存取控制機制,並避免產生不必要的CRUD樣式servlet。

為REST風格

Servlet應根據resourceTypes而非路徑來定義。 這樣,您就可以使用JCR存取控制、遵循REST原則,以及使用在要求中提供給我們的資源和資源解析程式。 這也允許我們變更在伺服器端轉換URL的指令碼,而不需從用戶端變更任何URL,同時隱藏伺服器端實作詳細資訊,以增加安全性。

避免定義新的節點類型

節點類型在基礎架構層的低層運作,而且大部分需求都可透過使用指派給nt:unstructured, oak:Unstructured, sling:Folder或cq:Page節點類型的sling:resourceType來滿足。 節點類型等於儲存庫中的模式,而更改節點類型在將來可能會非常昂貴。

遵循JCR中的命名慣例

遵循命名慣例可為程式碼庫增加一致性,降低缺陷發生率,並提高開發人員在系統中工作的速度。 Adobe在開發AEM時會使用下列慣例:

  • 節點名稱

    • 全部小寫
    • 使用連字型大小分詞
  • 屬性名稱

    • 駝峰大小寫,以小寫字母開始
  • 元件(JSP/HTML)

    • 全部小寫
    • 使用連字型大小分詞

本頁內容

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now