Дилемма: Должен ли я изучать Seaside или Python Framework? - PullRequest
9 голосов
/ 30 марта 2009

Я знаю, что это довольно субъективно, но, если бы вы поставили себя на мое место , на что бы вы потратили время на обучение?

Я хочу написать веб-приложение, которое надежно обрабатывает относительно скромные объемы личных данных людей, несколько тысяч записей по несколько килобайт каждая, но вещи, которые необходимо хранить в безопасности, адреса, номера телефонов и т. Д. Я сделал несколько веб-проектов на PHP / MYSQL и решили, что удобно, хотя я действительно не люблю PHP и не хочу делать в нем еще один большой проект ...

Как таковая, я думаю, мне лучше узнать что-то новое, и поэтому я рассматриваю 2 варианта (хотя я с радостью буду развлекать других, если у вас есть предложения). У меня ужасные проблемы с принятием решения. Они оба выглядят довольно вовлеченными, так что вместо того, чтобы просто прыгать и, возможно, тратить дни на то, чтобы набрать достаточную скорость для того, чтобы сделать им обоим осознанный выбор, я подумал, что приду сюда и выскажу некоторое мнение.

Итак, я рассматриваю два варианта ...

Один из веб-фреймворков PYTHON - TurboGears кажется хорошо оцененным? Преимущество: из всех языков, которые я когда-либо пробовал, Python, безусловно, мой любимый. Есть множество фреймворков на выбор, и за последние несколько лет я много занимался не-веб-программированием на python. Недостаток: есть из чего выбирать, поэтому трудно выбрать! Нужно запустить процесс на одном сервере? или mod_python? который мне не нравится. Что мне действительно нравится, так это понятие разделения и разделения процессов, то есть если одна учетная запись пользователя скомпрометирована, это не дает злоумышленнику никаких рычагов воздействия на остальную часть системы. Мне не ясно, в какой степени Python-решение справится с этим.

Запись его как приложения SEASIDE Что, я думаю, работает на сервере приложений Squeak? Adv: Из того, что я слышал, это позволило бы хорошо разделить пользователей, так как у каждого была бы своя маленькая частная виртуальная машина, независимая от всех систем других пользователей, что звучит замечательно с точки зрения безопасности, масштабирования и избыточности. Dis: Я не делал Smalltalk с Uni 15 лет назад, и я никогда не копался в этом слишком глубоко. Я не вижу большой помощи начального уровня для побережья или что многие проекты используют ее. Я подозреваю, что настроить сервер для его запуска сложно по той же причине, т. Е. Не потому, что это сложно по своей сути, а просто потому, что в онлайне будет меньше помощи, и предполагается, что вы уже достаточно уверены в Sqeak / Smalltalk.

Итак, что думают люди? Смогу ли я эффективно получить такое сильное разделение и разделение, которое мне нужно с фреймворком Python? Является ли Seaside настолько хорошим, насколько я думаю, с точки зрения изоляции пользователей друг от друга? Могу ли я быть лучше, с точки зрения безопасности, придерживаясь языков, с которыми я наиболее знаком, чтобы я не делал ошибок n00b, или стоит ли Seaside стоить масштабировать кривую обучения и оказаться более безопасным, понятным и обслуживаемым в долгосрочной перспективе ? В конце концов, это не решение о жизни или смерти, и я всегда могу сделать залог, если начну с одного, а потом возненавижу его, так что, пожалуйста, никто не получит всю священную языковую войну и не начнет никого разжигать! ; -)

Приветствия за любые ответы, которые он получает,

Роджер:)

Ответы [ 9 ]

10 голосов
/ 30 марта 2009

Отказ от ответственности: мне действительно не нравится PHP, Python хорош, но не подходит к Smalltalk в моей книге. Но я предвзятый Smalltalker. Некоторые ответы о Seaside / Squeak:

Q: Что, я думаю, работает на сервере приложений Squeak?

Побережье проходит по нескольким разным Smalltalks (VW, Gemstone, Squeak и т. Д.). Термин «сервер приложений» на самом деле не используется в стране Smalltalk. :)

В: Из того, что я слышал, это позволило бы обеспечить хорошее разделение пользователей, поскольку у каждого была бы своя маленькая частная виртуальная машина, независимая от всех систем других пользователей, что звучит замечательно с точки зрения безопасности, масштабирования и избыточности.

Да, у каждого пользователя есть свой собственный WASession, и все компоненты пользовательского интерфейса, которые он видит, являются экземплярами, живущими на стороне сервера в этом сеансе. Таким образом, разделение состояния между сеансами - это то, что вы должны делать явно, обычно через db.

В: Я не участвовал в Smalltalk с Uni 15 лет назад, и тогда я никогда не копался в этом слишком глубоко. Я не вижу большой помощи начального уровня для побережья или такого большого количества проектов, использующих ее.

С Smalltalk легко начать работу, и на берегу есть целая бесплатная онлайн-книга.

В: Я подозреваю, что настроить сервер для его запуска сложно по той же причине, то есть не потому, что это сложно по своей сути, а просто потому, что в онлайне будет меньше помощи, и предполагается, что вы уже достаточно уверены в Sqeak / Smalltalk.

Нет, не сложно. :) На самом деле довольно тривиально. Тонны помощи - Seaside ml, IRC на freenode и т. Д.

Q: Seaside настолько хорош, насколько я думаю, с точки зрения изоляции пользователей друг от друга?

Я бы так сказал.

В: Могу ли я быть лучше, с точки зрения безопасности, придерживаясь языков, с которыми я наиболее знаком, чтобы я не допустил ошибок n00b, или стоит ли Seaside масштабировать кривую обучения и оказаться более безопасным, понятным и ремонтопригодны в долгосрочной перспективе?

Убийственным аргументом в пользу Приморского ИМХО является истинная компонентная модель. Это действительно, действительно делает это замечательно для сложных пользовательских интерфейсов и обслуживания. Если вы боитесь учиться «чему-то другому» (но я бы даже не подумал об этом), я бы вас предупредил. Но если вы не боитесь, то вам, вероятно, понравится.

Также - Squeak (или VW) - это действительно потрясающая среда разработки - отладка живых сеансов Seaside, изменение кода в отладчике, возобновление и т. Д. И т. Д. Это потрясающе.

10 голосов
/ 30 марта 2009

Забудьте о mod_python, есть WSGI .

Я бы порекомендовал Джанго . Он работает на любом WSGI сервере, есть из чего выбирать. Существует mod_wsgi для Apache, wsgiref - справочная реализация включена в Python и , многие другие Также Google App Engine является WSGI и включает в себя Django.

Django очень популярен, и его сообщество быстро растет.

8 голосов
/ 30 марта 2009

Я бы сказал, взгляните на Джанго . Это среда Python с готовой системой аутентификации, которая не зависит от операционной системы хостинга, что означает, что компромиссы ограничены скомпрометированным приложением (за исключением некоторых эксплойтов против веб-сервера, на котором размещен процесс Python).

6 голосов
/ 31 марта 2009

Я сам добирался до моря, но во многих отношениях очень трудно начать, что не имеет никакого отношения к разговору, который можно поймать очень быстро. Проблема в том, что вы действительно защищены от написания HTML напрямую.

Я нахожу в большинстве фреймворков, когда вы застряли на том, как что-то сделать, всегда есть решение этой проблемы с помощью шаблона. Позже вы можете обнаружить, что это решение вызывает проблемы с ясностью в будущем, и на самом деле в инфраструктуру встроены более эффективные решения, но вы смогли уйти от этой проблемы, пока не узнали правильный способ ее решения.

У Приморья нет шаблонов, поэтому вы не получите этот костыль. Никакие проблемы не поставили меня в тупик, но некоторые заняли у меня больше времени, чем мне бы хотелось. Обратной стороной этого является то, что вы в конечном итоге изучаете морскую методологию гораздо быстрее, потому что не можете обмануть.

Если вы решили пойти по морскому пути, не бойтесь публиковать в приморском списке рассылки squeakfoundation.org. Сначала это показалось мне пугающим, потому что вы не видите там много вопросов для начинающих из-за низкого трафика, но люди готовы помочь там новичкам.

Также есть несколько приморских разработчиков, которые регулярно следят за переполнением стека. Удачи.

5 голосов
/ 22 апреля 2009

Вы смотрели на www.nagare.org ?

Фреймворк, особенно для веб-приложений, а не веб-сайтов.

Он основан на концепциях Seaside, но вы программируете на Python (nagare развертывает дистрибутив Python, называемый Stackless Python, чтобы заставить продолжения работать).

Как и Seaside, он автоматически генерирует HTML, но дополнительно может использовать шаблоны по мере необходимости.

Недавно его открыли http://www.net -ng.com / , которые сами имеют многолетний опыт предоставления веб-приложений / сайтов в таких качественных веб-фреймворках, как zope и plone.

В данный момент я сам исследую это, чтобы выяснить, соответствует ли оно моим потребностям, поэтому не могу сказать вам, что я думаю об этом в дикой природе. Если вы посмотрите, пожалуйста, оставьте свой отзыв.

4 голосов
/ 30 марта 2009

Рассматривая веб-фреймворк Smalltalk, посмотрите также Aida / Web . Aida имеет встроенную защиту с управлением пользователями / группами / ролями и строгим контролем доступа, которые могут вам очень помочь в вашем случае. Таким образом, вы можете добиться достаточно безопасного разделения пользователей на уровне пользователя в одном изображении. Но если вы действительно хотите, вы можете разделить их с запуском множества изображений. Но это приводит к увеличению технического обслуживания, и я бы дважды подумал, стоит ли это.

3 голосов
/ 15 мая 2009

Я сам играю с Seaside и нашел этот урок неоценимым для понимания возможностей фреймворка.

1 голос
/ 07 июля 2010

Сейчас на берегу моря есть электронная книга для завершения учебника , упомянутого ранее .

1 голос
/ 30 марта 2009

Я думаю, что вы в значительной степени суммировали плюсы и минусы. Seaside не , что сложно установить (я установил его дважды для различных проектов), но его использование определенно повлияет на вашу работу - помимо повторного изучения языка, который у вас, вероятно, будет настроить множество предположений о вашем рабочем процессе.

Это также зависит от двух других факторов

  • Если другие люди со временем будут поддерживать его, вам повезет, если вы найдете программистов на Python
  • Если вы делаете сайт с большим состоянием, Seaside собирается отбить штаны от любых других фреймворков, которые я видел.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...