Tôi đã sử dụng Django trong nhiều năm (kể từ Django 1.2). và trong quá khứ, tôi đã sử dụng các loại khung web khác nhau (chẳng hạn như CakePHP, Rails, ASP.NET MVC và một số khung công tác toàn diện khác). Django không phải là khuôn khổ đầu tiên của tôi.Mô hình khung giống như Django
Các khuôn khổ khác nhau có sự khác biệt về cách tiếp cận và lợi ích của chúng. Có một phần nào đó của khung tôi thích và tôi thì không. Trong bối cảnh này, tôi muốn nhìn vào thiết kế của Django Framework cụ thể hơn.
Sau khi chuyển sang Django, tôi thích cách thiết kế khung của nó. Khi học một ngôn ngữ mới (như Go, Scala, Ruby, Haskell), tôi cố gắng tìm một khuôn khổ có một số điểm tương đồng trong thiết kế của nó, đặc biệt là những gì tôi đã đề cập sau.
Sau đây là 2 Django quyết định thiết kế khuôn khổ đó là rất khác nhau:
- nó khuyến khích ứng dụng pluggable hoặc ứng dụng có thể dùng lại. Do đó:
- di chuyển ra khỏi monolithic design by Jacob Kaplan-Moss
- sử dụng nhiều ứng dụng để create a full feature site, without any model or logic
- viết một dự án-less Django nêu tại Practical Django Projects by James Bennett
- nó sử dụng Model View Template thay vì cổ điển MVC:
- được đề cập trong FAQ.
- xem mô tả mà dữ liệu được trình bày
- mẫu mô tả cách thức dữ liệu được trình bày
- một cái nhìn bình thường đại biểu cho một mẫu
- khiển có lẽ là khuôn khổ bản thân: các máy móc mà gửi yêu cầu đến chế độ xem phù hợp, theo cấu hình URL Django.
Tôi sẽ không tin rằng tính năng tiên phong của Django như vậy. Tôi tin rằng mô hình này rất phổ biến trong Framework Design. Chỉ là tôi không có ý tưởng, mẫu thiết kế (thiết kế) này được gọi là gì? Khái niệm này rất hữu ích để được áp dụng trong khuôn khổ khác. Tôi tin rằng biết tên của mô hình có thể giúp tôi hiểu hoặc thậm chí xây dựng một khuôn khổ mới về ngôn ngữ khác nhau với cùng một khái niệm.
Hiện tại có rất nhiều khung công tác web, hầu hết trong số họ đang theo mẫu MVC cổ điển. Một số sử dụng khái niệm plugin để thêm khả năng nhất định. Tuy nhiên, Plugin giải quyết khả năng sử dụng lại theo cách tiếp cận khác nhau tùy thuộc vào ngữ cảnh.
Vì vậy, tôi đã cố gắng tìm hiểu nhiều khuôn khổ tôi có thể để tìm một khung thay thế bằng các ngôn ngữ khác nhau. Hy vọng rằng tôi có thể tìm ra mô hình mà Django sử dụng.Tuy nhiên, tôi rất khó học được all of them. Trong thực tế, tôi đã không tìm thấy một cho đến nay.
Tôi đã được tìm kiếm:
- Django like framework in 'ruby'
- Django like framework in 'Java'
- Django như khuôn khổ trong 'Haskell'
- Django như khuôn khổ trong 'Go-Lang'
- Django như khuôn khổ trong 'Scala'
Thật không may, không ai trong số họ thực sự, làm nổi bật khái niệm mà tôi quan tâm.
Trong Q & A, tôi muốn biết mọi người gọi khung như thế nào? (Hoặc những gì mô hình là Django sử dụng?) Sẽ là tốt nếu bạn có thể cung cấp cho một tài liệu tham khảo trong thiết kế này mà khuôn khổ khác có thể đã được sử dụng nó quá?
Đừng rơi vào điều này giống như để so sánh. Thật ra tôi cũng đang tìm kiếm mẫu này nhưng tôi thấy rằng không phải mọi ngôn ngữ đều mang lại cùng một trải nghiệm và sức mạnh biểu cảm như một thứ khác. PHP khác với ruby và Scala khác với Go. Khung của họ cũng khác nhau. Django là duy nhất cho nó là gì. –
@FanisDespoudis, Đồng ý rằng chúng tôi không nên tìm ra khung sự thật duy nhất, khung công tác khác nhau có khả năng khác nhau. Họ cũng phục vụ tốt hơn trong miền khác nhau. Chỉ cần câu hỏi này là nhằm mục đích học mẫu, để chúng ta có thể áp dụng cho các miền khác nhau. – Yeo
Tôi không chắc chắn lý do tại sao những người downvoters nên downvote câu hỏi này. Hy vọng chúng tôi không so sánh khung nào tốt hơn. Nhưng thay vào đó chúng ta học những gì chúng ta có thể từ các khuôn khổ khác nhau. Câu hỏi – Yeo