Helix là kiến trúc tiêu chuẩn do Sitecore đề xuất nhằm giúp các nhà phát triển xây dựng, quản lý và mở rộng các dự án Sitecore theo một cách có tổ chức, dễ bảo trì, và dễ mở rộng.
Mục tiêu chính của Helix là đưa ra quy tắc và hướng dẫn chuẩn về việc:
Tổ chức cấu trúc thư mục và module code
Quản lý phụ thuộc giữa các module
Đảm bảo tính tái sử dụng và mở rộng lâu dài
Helix không phải là framework hay thư viện, mà là một tập hợp các nguyên tắc (principles) và best practices khi phát triển Sitecore.
🔄 Tái sử dụng code: Module được tách biệt rõ ràng, dễ dàng dùng lại giữa các dự án.
🧠 Dễ hiểu và bảo trì: Cấu trúc thư mục thống nhất giúp dev mới dễ nắm bắt.
⚙️ Phát triển song song: Các team có thể làm việc trên các module độc lập.
🧱 Tách biệt mối quan tâm (Separation of Concerns): Giúp dự án không bị phụ thuộc chéo và dễ mở rộng.
Helix chia dự án thành 3 tầng (layers) chính:
Đây là lớp cao nhất, chứa các module cụ thể cho website hoặc site instance.
Chứa code tích hợp từ Feature và Foundation layer.
Ví dụ:
Chứa các tính năng cụ thể của site mà người dùng có thể thấy.
Ví dụ: Navigation, News, Search, Carousel, Hero Banner, Contact Form…
Mỗi tính năng là một module độc lập.
Ví dụ:
Lớp thấp nhất, chứa các chức năng cốt lõi, logic dùng chung cho toàn dự án.
Ví dụ: Serialization, Indexing, Data Access, Multisite, Dependency Injection…
Ví dụ:
Helix định nghĩa rõ ràng về mối quan hệ giữa các tầng:
| Layer | Có thể phụ thuộc vào | Không được phụ thuộc vào |
|---|---|---|
| Project | Feature, Foundation | Dự án khác |
| Feature | Foundation | Feature khác, Project |
| Foundation | (Không phụ thuộc) | Feature, Project |
➡️ Điều này giúp module độc lập và dễ unit test hơn.
Ngoài ra, Helix còn khuyến nghị chia thành các thư mục bổ trợ:
Habitat là dự án mẫu chính thức của Sitecore thể hiện cách triển khai Helix trong thực tế.
Bạn có thể tham khảo tại:
👉 https://github.com/Sitecore/Habitat
Helix không chỉ là cấu trúc thư mục, mà là triết lý phát triển phần mềm bền vững trong Sitecore.
Khi tuân thủ Helix:
Code dễ quản lý, dễ test, dễ mở rộng
Nhiều team có thể làm việc đồng thời
Dự án trở nên “enterprise-ready”
👉 Gợi ý cho bài tiếp theo:
🔸 “Phân biệt Feature và Foundation trong Helix”