Дилемма: Должен ли я изучать Seaside или Python Framework?

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

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

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

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

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

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

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

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

Роджер:)

9 ответов

Решение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам