2009-03-30 35 views
9

Tôi biết đó là chủ quan nhưng nếu bạn đặt mình vào đôi giày của mình bạn sẽ đầu tư thời gian vào việc học tập?Tình thế tiến thoái lưỡng nan: Tôi có nên học Seaside hoặc khung công tác Python không?

Tôi muốn viết một ứng dụng web giao dịch một cách an toàn với số lượng dữ liệu cá nhân tương đối khiêm tốn, một vài nghìn bản ghi của một vài Kb nhưng mỗi thứ cần được giữ an toàn, địa chỉ, số điện thoại, v.v. đã thực hiện một số dự án web trong PHP/MYSQL và đã quyết định, tiện dụng mặc dù nó là tôi thực sự không thích PHP và không muốn làm một dự án lớn trong ...

Như vậy tôi hình tôi muốn tốt nhất tìm hiểu một cái gì đó mới và vì vậy tôi đang xem xét 2 lựa chọn (mặc dù tôi sẽ vui vẻ giải trí những người khác nếu bạn có gợi ý). Tôi đang gặp rắc rối khủng khiếp khi quyết định. Cả hai đều trông khá tham gia vì vậy thay vì chỉ nhảy vào và có khả năng lãng phí ngày để tăng tốc độ đủ cho cả hai người để đưa ra lựa chọn sáng suốt, tôi nghĩ tôi sẽ đến đây và vẽ một số ý kiến.

Vì vậy, hai lựa chọn Tôi đang xem xét là ...

Một trong những khuôn khổ Web PYTHON - TurboGears dường như cũng coi? Ưu điểm: Trong tất cả các ngôn ngữ tôi đã từng thử Python, tôi đã rất thích nó. Có rất nhiều khung công tác để lựa chọn và tôi đã thực hiện khá nhiều mã hóa python không phải web trong vài năm qua. Nhược điểm: Có nhiều lựa chọn để bạn lựa chọn! Cần chạy quy trình máy chủ đơn lẻ? hoặc mod_python? mà tôi không thích âm thanh. Những gì tôi làm là khái niệm tách và xử lý quy trình, nghĩa là nếu một tài khoản người dùng bị xâm phạm, nó sẽ cho kẻ tấn công không có đòn bẩy so với phần còn lại của hệ thống. Tôi không rõ ràng về mức độ mà một giải pháp python sẽ xử lý điều đó.

Viết dưới dạng ứng dụng SEASIDE Tôi đoán là máy chủ ứng dụng chạy trên máy chủ squeak? Adv: Từ những gì tôi đã nghe nó sẽ cho phép phân chia tốt người dùng vì mỗi máy ảo riêng của họ độc lập với tất cả các hệ thống người dùng khác nghe tuyệt vời từ quan điểm bảo mật, nhân rộng và dự phòng. Dis: Tôi đã không thực hiện bất kỳ Smalltalk kể từ Uni 15 năm trở lại và tôi không bao giờ đào sâu vào nó sau đó. Tôi không thấy nhiều sự giúp đỡ ở cấp độ nhập cảnh cho bên bờ biển hoặc nhiều dự án sử dụng nó. Tôi nghi ngờ thiết lập một máy chủ để chạy nó là khó khăn cho cùng một lý do tức là không phải vì nó vốn cứng nhưng chỉ gây ra sẽ có ít trợ giúp trực tuyến và giả định bạn đã khá au fait với Sqeak/Smalltalk.

Vì vậy, mọi người nghĩ gì? Liệu tôi có thể có được một cách hiệu quả sự phân chia và ngăn cách mạnh mẽ mà tôi theo sau với một khuôn khổ Python? Seaside có tốt như tôi nghĩ về việc cách ly người dùng với nhau không? Tôi có thể làm tốt hơn, bảo mật khôn ngoan, gắn bó với các ngôn ngữ tôi quen thuộc nhất vì vậy tôi không phạm sai lầm nào hoặc Seaside sẽ đáng để mở rộng đường cong học tập và chứng minh an toàn hơn, dễ hiểu hơn và có thể duy trì lâu dài ? Vào cuối ngày, đó không phải là quyết định về sự sống hay cái chết và tôi luôn có thể bảo lãnh nếu tôi bắt đầu với một và sau đó ghét nó để không ai có được tất cả chiến tranh ngôn ngữ thánh và bắt đầu bốc cháy bất cứ ai! ;-)

Cheers cho bất kỳ trả lời này nhận được,

Roger :)

Trả lời

10

Tuyên bố miễn trừ trách nhiệm: Tôi thực sự không thích PHP, Python rất đẹp, nhưng không đến gần Smalltalk trong cuốn sách của tôi. Nhưng tôi là một Smalltalker thiên vị. Một số câu trả lời về Seaside/Squeak:

Hỏi: Tôi đoán điều gì sẽ chạy trên một máy chủ ứng dụng squeak?

Bờ biển chạy trong một số Smalltalk khác nhau (VW, Đá quý, Squeak, v.v ...). Thuật ngữ "máy chủ ứng dụng" không thực sự được sử dụng ở quốc gia Smalltalk. :)

Q: Từ những gì tôi đã nghe nó sẽ cho phép người dùng phân chia tốt vì mỗi máy ảo riêng của họ độc lập với tất cả các hệ thống người dùng khác nghe tuyệt vời từ quan điểm bảo mật, nhân rộng và dự phòng.

Có, mỗi người dùng có WASession riêng của mình và tất cả các thành phần giao diện người dùng mà người dùng thấy là các cá thể sống ở phía máy chủ trong phiên đó. Vì vậy, chia sẻ trạng thái giữa các phiên là điều bạn phải làm một cách rõ ràng, thông thường thông qua một db.

Hỏi: Tôi chưa thực hiện bất kỳ Smalltalk nào kể từ Uni 15 năm trước và tôi chưa bao giờ đào sâu vào nó sau đó. Tôi không thấy nhiều sự giúp đỡ ở cấp độ nhập cảnh cho bên bờ biển hoặc nhiều dự án sử dụng nó.

Smalltalk rất dễ dàng để tiếp tục và có một cuốn sách trực tuyến hoàn toàn miễn phí trên Seaside.

Q: Tôi nghi ngờ việc thiết lập một máy chủ chạy rất khó vì lý do tương tự, không phải vì nó vốn dĩ khó mà chỉ gây ra ít trợ giúp trực tuyến hơn và giả định bạn đã thay thế với Sqeak/Smalltalk.

Không, không khó. :) Trong thực tế, khá tầm thường. Tấn trợ giúp - Seaside ml, IRC trên freenode, v.v.

Hỏi: Seaside có tốt như tôi nghĩ về việc cách ly người dùng với nhau không?

Tôi sẽ nói như vậy.

Q: Tôi có thể tốt hơn, bảo mật khôn ngoan, gắn bó với các ngôn ngữ tôi quen thuộc nhất nên không mắc sai lầm nào hoặc Seaside sẽ đáng để mở rộng đường cong học tập và chứng minh an toàn hơn, dễ hiểu và có thể duy trì trong thời gian dài?

Đối số sát thủ có lợi cho Seaside IMHO là mô hình thành phần thực sự. Nó thực sự, thực sự làm cho nó tuyệt vời cho giao diện người dùng phức tạp và bảo trì. Nếu bạn sợ học "cái gì đó khác" (nhưng sau đó bạn thậm chí sẽ không xem xét nó ở nơi đầu tiên tôi đoán) sau đó tôi sẽ cảnh báo bạn. Nhưng nếu bạn không sợ thì có thể bạn sẽ thích nó.

Ngoài ra - Squeak (hoặc VW) là môi trường phát triển thực sự tuyệt vời - gỡ lỗi các phiên Seaside trực tiếp, thay đổi mã trong trình gỡ lỗi và tiếp tục v.v.

4

Trong khi xem xét một khuôn khổ web Smalltalk, nhìn vào Aida/Web là tốt. Aida có bảo mật tích hợp với quản lý người dùng/nhóm/vai trò và kiểm soát truy cập mạnh mẽ, có thể giúp bạn rất nhiều trong trường hợp của bạn. Bằng cách đó, bạn có thể đạt được sự tách biệt đủ an toàn của người dùng ở cấp người dùng trong một hình ảnh. Nhưng nếu bạn thực sự muốn, bạn có thể tách chúng bằng cách chạy nhiều hình ảnh.Nhưng điều này mang lại sự bảo trì tăng lên và tôi nghĩ hai lần nếu nó đáng giá.

8

Tôi muốn nói hãy xem Django. Đó là một khung công tác Python với hệ thống xác thực sẵn sàng độc lập với hệ điều hành lưu trữ, có nghĩa là các thỏa hiệp bị giới hạn đối với ứng dụng đã bị xâm nhập (chặn một số khai thác chống lại máy chủ web lưu trữ quy trình Python).

+0

Tôi không nghĩ rằng Django trực tiếp giải quyết các mối lo ngại về an ninh chính của anh ấy, dường như vô tình chia sẻ dữ liệu trên người dùng. Trong khi nó là tốt đẹp để tránh lỗi sql, nếu bạn có một bạn có thể hiển thị dữ liệu cho người dùng sai. Tôi không thể tưởng tượng làm thế nào để làm điều này vô tình ở bên bờ biển. cũng xem xét zope –

+0

Tuyên bố từ chối trách nhiệm: Tôi không biết gì về Seaside. Tuy nhiên, lỗi có thể được thực hiện trong bất kỳ môi trường nào, vì vậy tôi không thấy cách ngăn chặn sẽ ngăn chặn bất kỳ lỗi nào - đặc biệt không phải lỗi SQL (trừ khi bạn có tất cả người dùng ứng dụng là người dùng DB.). –

+0

Bạn đúng nếu bạn sử dụng cơ sở dữ liệu SQL. Zope và seaside không sử dụng cơ sở dữ liệu SQL (trừ khi bạn thêm chúng một cách rõ ràng). –

1

Tôi nghĩ bạn đã tổng hợp khá nhiều ưu và khuyết điểm. Seaside không phải là khó thiết lập (tôi đã cài đặt nó hai lần cho nhiều dự án khác nhau) nhưng việc sử dụng nó chắc chắn sẽ ảnh hưởng đến cách bạn làm việc - ngoài việc học lại ngôn ngữ bạn có thể sẽ phải điều chỉnh rất nhiều giả định về luồng công việc của bạn.

Nó cũng phụ thuộc vào hai yếu tố khác

  • Nếu người khác cuối cùng sẽ được duy trì nó, bạn sẽ có may mắn hơn việc tìm kiếm các lập trình viên python
  • Nếu bạn đang làm một trang web rất stateful, Seaside đang xảy ra để đánh bại chiếc quần khỏi bất kỳ khuôn khổ nào khác mà tôi đã thấy.
10

Quên về mod_python, có WSGI.

Tôi muốn giới thiệu Django. Nó chạy trên bất kỳ máy chủ WSGI, có rất nhiều lựa chọn. Có mod_wsgi cho Apache, wsgiref - triển khai tham chiếu được bao gồm trong Python và many more. Ngoài ra Google App Engine là WSGI, và bao gồm Django.

Django rất phổ biến và cộng đồng của nó đang phát triển nhanh chóng.

6

Tôi đã tự đi sâu vào bờ biển nhưng theo nhiều cách rất khó để bắt đầu, điều này không liên quan gì đến smalltalk có thể được chọn cực kỳ nhanh chóng. Thách thức là bạn thực sự được bảo vệ khỏi việc viết html trực tiếp.

Tôi tìm thấy trong hầu hết các khuôn khổ khi bạn gặp khó khăn về cách làm điều gì đó luôn luôn có một công việc xung quanh việc giải quyết nó bằng cách sử dụng mẫu. Sau này bạn có thể khám phá ra rằng giải pháp này gây ra vấn đề với sự rõ ràng trên đường và thực tế là một giải pháp tốt hơn được xây dựng trong khung nhưng bạn đã có thể tiếp tục từ vấn đề đó cho đến khi bạn học đúng cách để làm điều đó.

Seaside không có mẫu để bạn không có được cái nạng đó. Không có vấn đề gì đã làm tôi bối rối vĩnh viễn nhưng một số đã khiến tôi mất nhiều thời gian hơn để giải quyết. Mặt trái của điều này là bạn sẽ học được phương pháp bên bờ biển nhanh hơn nhiều vì bạn không thể ăn gian.

Nếu bạn quyết định đi theo tuyến đường ven biển, đừng ngại đăng lên danh sách gửi thư bên bờ biển tại squeakfoundation.org. Tôi thấy nó đáng sợ lúc đầu bởi vì bạn không nhìn thấy rất nhiều câu hỏi mới bắt đầu có do lưu lượng truy cập thấp nhưng mọi người sẵn sàng giúp đỡ người mới bắt đầu ở đó.

Ngoài ra còn có một số ít các nhà phát triển bên bờ biển theo dõi lưu lượng truy cập thường xuyên. Chúc may mắn.

+0

Bạn luôn có thể làm: "aCanvas html: '

một số html thô

'" nếu bạn đang tuyệt vọng. :) – Julian

5

Bạn đã xem www.nagare.org?

Một khuôn khổ đặc biệt cho các ứng dụng web thay vì các trang web.

Nó dựa trên khái niệm Seaside nhưng bạn lập trình bằng Python (nagare triển khai phân phối python có tên Stackless Python để làm việc liên tục).

Giống như Seaside, nó sẽ tự động tạo HTML, nhưng ngoài ra có thể sử dụng mẫu theo yêu cầu.

Gần đây nó đã được mở nguồn bởi http://www.net-ng.com/, bản thân họ có nhiều năm kinh nghiệm trong việc cung cấp các ứng dụng web/trang web trong các khuôn khổ web chất lượng như zope và plone.

Tôi đang nghiên cứu bản thân vào lúc này để xem liệu nó có phù hợp với nhu cầu của tôi không, vì vậy không thể cho bạn biết tôi nghĩ gì về điều đó trong tự nhiên. Nếu bạn có một cái nhìn, xin vui lòng cho phản hồi của bạn.

+0

Tôi quyết định tìm hiểu khuôn khổ web2py (là gluon) cuối cùng. Đó là một python toàn diện dựa trên khung ứng dụng web đầy đủ ngăn xếp và môi trường phát triển trong một và kinh nghiệm của tôi với nó là tương đối tốt cho đến nay mặc dù nó khá trẻ và khá một số cách triển khai được nêu ra. Nó có giao diện/IDE dựa trên trình duyệt web mà bạn có thể tự mình hack vì nó được viết bằng python và nó có thể tự động xây dựng các gói ứng dụng bytecode mà bạn có thể phân phối và triển khai trên bất kỳ cá thể nào khác của web2py. Nó cũng khá nhỏ. – user84643

3

Tôi đang đùa giỡn với bản thân Seaside và thấy this tutorial là vô giá trong việc hiểu rõ hơn về khả năng của khung công tác.

+0

Nó thực sự hiện là hướng dẫn có sẵn tốt nhất. –

Các vấn đề liên quan