2009-09-30 36 views
7

Các tính năng đập (chơi có mục đích) của grok mà làm cho nó tốt hơn so với django là gì? làm thế nào để tôi biết khi nào dự án của tôi cần grok + zope, hoặc nó chỉ có thể được phát triển với django?grok so với django so sánh

Trả lời

7

Zope là đối tượng đầu tiên xuất bản khuôn khổ evah, và cộng đồng Zope có kinh nghiệm lâu năm với việc làm đúng cách. Zope 2 là nỗ lực đầu tiên, Zope 3 là nỗ lực tiếp theo, và bây giờ chúng ta đã trở thành thế hệ thứ ba của các khung công tác web, bao gồm Grok, BFG và Bobo.

Grok rất lớn và thậm chí có nhiều mô-đun sẵn có hơn khi bạn cài đặt cơ sở (và cũng trong quá trình giảm số lượng mô-đun được yêu cầu, vì vậy dấu chân sẽ nhỏ hơn). BFG và Bobo đi theo một cách khác, và là các khung công tác tối giản nhưng dễ dàng truy cập vào Bộ công cụ Zope và tất cả các chức năng của Zope. Và mặc dù Django đang thực hiện rất nhiều sai lầm giống như Zope2, họ cũng sửa chúng nhanh hơn nhiều, vì vậy tôi hoàn toàn mong đợi nhiều cuộc thảo luận này sẽ được khắc phục trong năm năm, vì tôi mong đợi mọi khung công tác web Python đơn lẻ sử dụng WSGI + WebOb + Repoze + Deliverance + Buildout làm cơ sở trước đó. Nhưng thậm chí sau đó tôi sẽ đi cho các khuôn khổ nơi tôi có thể sử dụng Kiến trúc thành phần Zope và ZODB, nhưng không chỉ bao gồm các khung công tác do cộng đồng Zope tạo ra, mà còn bao gồm cả Turbogears. Và có lẽ nó sẽ bao gồm Django quá bởi sau đó, những người hiểu biết ... :-)

Tùy thuộc vào những gì các yêu cầu dự án tôi sẽ ngày hôm nay đi với một trong hai Plone (nếu họ cần CMS), Grok hoặc BFG (tùy thuộc vào các nhà phát triển có liên quan và sự phức tạp của nhiệm vụ và ngân sách).Điều này tất nhiên một phần phụ thuộc vào kinh nghiệm lớn của tôi với công nghệ Zope và kinh nghiệm nhỏ của tôi với Django, nhưng chủ yếu là vì tôi có thể sử dụng ZTK và ZODB trong Grok và BFG.

YMMV, v.v. blahblah.

2

Tôi không nghĩ rằng bất kỳ khung công tác nào có ý định có bất kỳ 'tính năng' nào làm cho 'các tính năng' tốt hơn 'khác' hoặc 'cần thiết' trong một số trường hợp nhất định. Thay vào đó, sự khác biệt giữa Django và Grok - hoặc giá treo, hoặc Turbogears - thực sự là một trong những cách tiếp cận. Bạn có thể tìm thấy cách tiếp cận của Grok theo ý thích của bạn, hoặc bạn có thể thích một trong những người khác. Tôi nghi ngờ có nhiều bạn có thể đạt được trong một trong số họ mà bạn không thể ở bất kỳ người nào khác.

+1

gì gây ấn tượng cho tôi là kích thước của grok + Zope đối với django với. Vì vậy, tôi tự hỏi. Nếu tôi cần thứ gì đó ở trong đó, nhưng tại thời điểm này tôi không biết? –

+0

Sau đó viết nó cho Django - đó là mã nguồn mở. –

5

Grok về cơ bản là tất cả sức mạnh của zope theo cách dễ dàng hơn để sử dụng gói. Vì vậy, bạn có được tất cả sự sang trọng của một cơ sở dữ liệu đối tượng python thực (mặc dù bạn có thể sử dụng một phụ trợ sql). Và tôi giả sử bạn biết về các bộ điều hợp/tiện ích/quan điểm của cái gọi là "kiến trúc thành phần zope". Chúng cho phép bạn tạo ra một ứng dụng mạnh mẽ. Đặc biệt hữu ích nếu sau này bạn cần phải tùy chọn có chọn lọc nó. Và bảo mật theo truyền thống là một điểm mạnh của zope (và do đó grok). Phát triển và triển khai được xử lý đầy đủ với trứng (và xây dựng): theo kinh nghiệm của tôi, đây là một cách mạnh mẽ và đáng tin cậy và lặp lại và thoải mái.

Nếu bạn có một ứng dụng có thể làm việc với các bảng sql thẳng mà không cần nhiều tùy chỉnh chọn lọc sau đó: không có gì sai với django. Bạn sẽ phải tự bảo vệ mình nhiều, vì vậy cần một con mắt quan tâm. Có rất ít khuôn khổ đằng sau nó (một ORM và một trình ánh xạ url), vì vậy con trăn của bạn sẽ cảm thấy "thuần khiết và đơn giản" hơn. Điều này cũng có nghĩa là bạn cần phải tự mình làm nhiều hơn.

Chẳng có gì ngăn bạn từ việc chọn lọc sử dụng các phần của grok: http://pypi.python.org/pypi/grokcore.component chẳng hạn là cốt lõi rất nhiều. Khá tốt cô lập, vì vậy bạn có thể sử dụng nó mà không cần mua vào toàn bộ ngăn xếp zope. Tôi khá chắc chắn bạn có thể sử dụng nó trong django. thành phần grokcore/zope chỉ là mã python. Điều này giúp bạn có được các bộ điều hợp/giao diện/tiện ích. Tôi không biết những gì bạn đang xây dựng, vì vậy bạn sẽ phải thử nghiệm.

Một điều cực kỳ có lợi cho grok mà tôi khuyên bạn nên thử: cơ sở dữ liệu đối tượng ZODB của Zope. Một ORM tốt (và django là khá ok) giúp rất nhiều lấy nỗi đau ra khỏi cơ sở dữ liệu SQL, nhưng một cơ sở dữ liệu đối tượng thực sự chỉ đơn giản sang trọng :-)