Sau khi viết một vài ứng dụng appengine python, tôi thấy mình bị rách giữa hai cách tiếp cận để tổ chức cây mã nguồn của tôi: rộng hoặc sâu.cây mã nguồn: rộng hoặc sâu
Để biết cụ thể, hãy xem xét đơn đăng ký nội bộ cho một cửa hàng tư vấn nhỏ để quản lý hoạt động kinh doanh như quản lý liên hệ, theo dõi dự án & báo cáo và quản lý nhân viên. Ứng dụng có thể sử dụng các thực thể chính như: Công ty, Người dùng, Danh bạ, Khách hàng, Dự án, Timesheets, v.v. Nếu không đi vào chi tiết, người ta có thể tưởng tượng rằng các mô hình này cắt ngang qua các chức năng của trang web. Điều này có thể có nghĩa là có một số khớp nối.
Trong ví dụ này, là nó thích hợp hơn để tổ chức trong một cách sâu sắc, ví dụ:
models/
people.py
accounting.py
projects.py
foo.py
controllers/
reporting.py
employeeops.py
accounting.py
crm.py
views/
...
hoặc rộng cách, ví dụ, bằng cách "ứng dụng":
people/
models/
views/
controllers/
contact-mgmt/
models/
views/
controllers/
time-tracking/
models/
views/
controllers/
project-reporting/
models/
views/
controllers/
tôi biết tất cả các thiết kế liên quan đến sự cân bằng, vì vậy khi trả lời bạn có thể chỉ ra sở thích của bạn và một số lý do (ví dụ, giả định, điều chỉnh các mối quan tâm, giới hạn khuôn khổ, vấn đề khả năng mở rộng, cân nhắc bảo trì mã, tác động của cấu trúc nhóm phát triển, v.v.).
Tôi sẽ không gọi một trong hai lựa chọn đó là "rộng" hoặc "sâu", khi bạn kết thúc với hai cấp độ lồng nhau, dù bằng cách nào. –