2016-09-25 21 views
5

Khi các dự án Django của tôi lớn hơn và lớn hơn, tôi đang đối mặt với các vấn đề liên quan đến kiến ​​trúc. Trước khi bắt đầu viết mã, tôi dành rất nhiều thời gian để tìm một kiến ​​trúc đẹp cho dự án của mình: cách tôi chia dự án của mình trong ứng dụng, ứng dụng nào phụ thuộc vào các ứng dụng khác, v.v. Để được rõ ràng, bởi kiến ​​trúc tôi không có nghĩa là bố trí dự án.Kiến trúc dự án Django

Tôi đã thực hiện nghiên cứu của mình và tôi chưa tìm thấy một nguồn tài nguyên giới thiệu một số phương pháp để tìm kiến ​​trúc tốt nhất cho dự án Django đã cho. Bên ngoài phát triển web, UML có vẻ là con đường để đi.

Câu hỏi của tôi là:

1) Tại sao hầu như không có thảo luận về các chủ đề đó trên internet? Tôi có thiếu cái gì đó và hoàn toàn sai trong cách tiếp cận của tôi?

2) UML có thể được sử dụng để hoạt động trên kiến ​​trúc dự án Django không?

3) Có cách nào phổ biến để giải quyết vấn đề này với Django không?

Trả lời

4

Trước khi bắt đầu viết mã, tôi dành rất nhiều thời gian để tìm kiến ​​trúc đẹp cho dự án của mình: cách tôi chia dự án của mình trong ứng dụng, ứng dụng nào phụ thuộc vào các ứng dụng khác.

Tôi nghĩ bạn đang suy nghĩ quá mức về điều này. Kiến trúc dự án của bạn có thể (& có lẽ nên) phát triển khi bạn đi. Bạn có thể bắt đầu với 1 ứng dụng lớn và sau đó chia nhỏ nó khi cấu trúc phù hợp trở nên rõ ràng với bạn.

1) Tại sao hầu như không có thảo luận về các chủ đề đó trên internet? Tôi có thiếu cái gì đó và hoàn toàn sai trong cách tiếp cận của tôi?

Vì câu trả lời ngắn gọn là "tùy thuộc vào bạn" hoặc "tùy thuộc vào dự án của bạn". Điều này sẽ giúp bạn: Django: best practice for splitting up project into apps

2) UML có thể được sử dụng để hoạt động trên kiến ​​trúc dự án Django không?

Tôi không hiểu tại sao không.

3) Có cách nào phổ biến để giải quyết vấn đề này với Django không?

Có một số cách, hãy xem xét phân chia các ứng dụng của bạn xung quanh:

  • responsabilities (1 ứng dụng để làm 1 điều)
  • Có thể dùng lại (một ứng dụng có thể được chuyển không có những thay đổi giới hạn đối với một dự án khác)
  • Dễ sử dụng (dev khác có thể đoán được nơi một mô hình/xem nên)
+2

Tôi không nghĩ rằng việc tạo ra một kiến ​​trúc trước khi mã hóa bị lạm dụng theo bất kỳ cách nào. Đây là cách tiếp cận tốt nhất mà người ta có thể thực hiện. Hãy suy nghĩ đầu tiên, hành động sau đó. Không phải ngược lại. –

+0

Trước đây tôi đã từng đi thẳng vào mã nhưng tôi nhận thấy rằng tôi hiệu quả hơn nhiều khi tôi lên kế hoạch trước. Khi thiết kế được thực hiện tốt, mã hóa trở nên dễ dàng hơn nhiều – Kowalsy

+1

Tôi không nói để đi thẳng vào mã nhưng có một sự cân bằng để tìm, về cơ bản: suy nghĩ một chút => hành động => nhắc lại. –

2

Nếu bạn muốn có một số hướng dẫn về cách tạo thiết kế UML cho ứng dụng web, bạn có thể thích giấy trắng của tôi "Technical design in UML for AngularJS applications". Nó tập trung vào các ứng dụng Góc, nhưng hầu hết nó áp dụng cho các ứng dụng web nói chung.

+0

Cảm ơn tôi sẽ có một cái nhìn vào nó! – Kowalsy

1

Sau khi thu thập thêm thông tin, tôi đi qua một kiến ​​trúc thú vị (tôi đã tìm thấy ý tưởng về reddit nhưng không thể truy xuất url).

toàn bộ mã của bạn nên được sperated vào các ứng dụng độc lập (tách mối quan tâm) và bạn cần phải xác định 2 "dự án rộng" ứng dụng (trang web và utils):

  • ứng dụng trang web có thể phụ thuộc vào bất kỳ ứng dụng khác .
  • ứng dụng utils không phụ thuộc vào các ứng dụng khác nhưng các ứng dụng khác có thể phụ thuộc vào ứng dụng đó.
  • các ứng dụng độc lập chỉ có thể phụ thuộc vào utils.
Các vấn đề liên quan