Tôi đang làm việc trên các dự án web khác nhau và tôi tự hỏi liệu có bất kỳ quy tắc nào liên quan đến cấu trúc dự án/thư mục không?Cấu trúc thư mục/thư mục của dự án Web - Các phương pháp hay nhất
Nhiều ứng dụng của tôi được xây dựng trong cấu trúc mà mỗi loại tệp có thư mục riêng. Ví dụ:
└─┬root
|
├─┬node_modules
| └ // node_modules (npm libraries)
|
└─┬www
|
├─┬Libs // Js libraries
| |
| ├─┬Angular
| | └ … (.js files)
| |
| └─┬Bootstrap
| └ … (.js files)
|
├─┬JavaScript // my Js files
| |
| ├─┬Services
| | └ … // my services (.js files)
| |
| ├─┬Controllers
| | └ … // my controllers (.js files)
| |
| ├─┬Directives
| | └ … // my directives (.js files)
| |
| └app.js // js entry point
|
├─┬StyleSheets
| |
| ├─┬Less
| | └ … // my styles (.less files)
| |
| └─┬Css
| └ … // my styles (.css files)
|
├─┬Views
| |
| ├─┬Pages
| | └ … // pages layout (.html files)
| |
| └─┬DirectivesTemplates
| └ // templates layout (.html files)
|
├─┬Assets
| |
| ├─┬Fonts
| | └ … // app fonts (.ttf/ .woff files)
| |
| └─┬Images
| └ // app images (.jpg/ .png files)
|
├─┬Data
| |
| └ // app info (.json files)
|
└index.html // web site entry point
Tuy nhiên thời gian gần đây tôi thấy một số dự án, trong đó mỗi mô-đun có nó là thư mục riêng với nó là mã (.js tập tin), view (file .html), phong cách (.css/file .less) và dữ liệu (tệp .json, hình ảnh, phông chữ, v.v.) Ví dụ:
└─┬root
|
├─┬node_modules
| └ // node_modules (npm libraries)
|
└─┬www
|
├─┬Libs // Js libraries
| |
| ├─┬Angular
| | └ … (.js files)
| |
| └─┬Bootstrap
| └ … (.js files)
|
├─┬Modules
| |
| ├─┬moduleA
| | |
| | ├moduleA.js //modules controller
| | |
| | ├moduleA.html //modules view
| | |
| | ├moduleA.less //modules style
| | |
| | └moduleA.json //modules data
| |
| ├─┬moduleB
| | |
| | ├moduleB.js
| | |
| | ├moduleB.html
| | |
| | ├moduleB.less
| | |
| | ├moduleB.json
| | |
| | └moduleB-icon.png
| |
| └─┬moduleC
| |
| ├moduleC.js
| |
| ├moduleC.html
| |
| ├moduleC.less
| |
| ├moduleC.json
| |
| └moduleC-font.woff
|
└index.html // web site entry point
Có thực tiễn nào tốt nhất về cấu trúc dự án không?
Cấu trúc đầu tiên trông giống như một nhà phát triển duy nhất hoặc một nhóm rất nhỏ. Thứ hai là cho một dự án lớn hơn với nhiều nhà phát triển hơn. Mỗi mô-đun có thể được gỡ bỏ và thay thế, cập nhật hoặc thay đổi mà không cần chạm vào phần còn lại. – Tigger
Trong java, Maven là một tiêu chuẩn thực tế. Nó không cho phép một sự sáng tạo rộng trong các cấu trúc thư mục. Bạn đang sử dụng java? –
Tôi đang làm việc chủ yếu trên các ứng dụng phía máy khách, được phát triển bằng javascript, với nhiều khung công tác khác nhau như: góc, ember, jquery, ionic, webpack, grunt vv .. (trên các dự án khác nhau) –