Каковы относительные преимущества различных веб-фреймворков Python / PHP (особенно для моего проекта)? - PullRequest
4 голосов
/ 04 августа 2011

Я выбираю веб-фреймворк для предстоящего проекта и буду признателен за любые советы. Мы решили использовать jQuery для JavaScript и сильно склоняемся к Python или PHP (больше Python) для нашей логики на стороне сервера. Я особенно заинтересован в web2py из-за его интеграции с jQuery.

О нашем проекте

  • Наш проект - разработка консоли безопасности для комплекса. система кибербезопасности, работающая внутри организации сеть.
  • Эта консоль будет в основном управляться сервером, так как сообщения поступают из сети и должны передаваться сервером пользователю.
  • Пользователь также сможет инициировать действия безопасности, реализация которых, вероятно, будет в C ++.
  • Запланированный нами интерфейс будет относительно богатым, и я хочу максимально использовать возможности jQuery.
  • У нас есть некоторый контроль над средой браузера, в которой мы будем работать (например, нам не нужно беспокоиться о клиентах с отключенным JavaScript).
  • Скорее всего, наш сайт будет иметь только несколько долгоживущих клиентских подключений.
  • Мы ищем программные компоненты с разрешающими лицензиями, хотя мы используем некоторые компоненты с авторским левом (я вижу, что web2py - это LGPL, а Django - это BSD, поэтому +1 к Django)
  • У нас есть около месяца, чтобы создать функциональную демонстрацию нашей системы, частью которой является небольшой (но видимый) интерфейс.

О нас

Мы два разработчика с 5-летним опытом программирования, но небольшим опытом веб-разработки. У меня есть несколько лет опыта работы с Python и летний опыт работы с PHP. Мой коллега имеет некоторый опыт работы с Python и никогда не касался PHP. Я использовал Django один раз в 2008 году, и был разочарован структурой файлов и кода, которая показалась мне не очень понятной. Возможно, эта структура присуща модели MVC (с тех пор у меня был похожий опыт работы с Django и CakePHP), и мне просто нужно прикусить пулю и запомнить ее.

Мой вопрос

Учитывая приведенную выше информацию, каковы относительные преимущества различных веб-фреймворков Python / PHP для нашего проекта? Как упоминалось выше, я особенно заинтересован в web2py из-за его интеграции с jQuery, хотя доминирование Django (еще раз) трудно игнорировать.

Большое спасибо за потраченное время!

Ответы [ 5 ]

2 голосов
/ 04 августа 2011

Прежде чем принять решение о фреймворке, вы должны сначала решить, хотите ли вы перейти на язык, с которым вы не знакомы.

Вы сказали, что у вас обоих минимальный опыт работы с PHP, поэтому вам нужно взвеситьпреимущества здесь;Будут ли плюсы для выхода PHP (если таковые имеются) измерить количество времени, которое разработчики должны будут потратить на переподготовку?(Хотя PHP зависит от вашего опыта работы с ним, его будет очень легко подобрать.)

Если вы создадите его таким образом, PHP должен будет предложить вам довольно убедительное предложение.Из того, что я вижу, в частности, Django против web2py, они оба кажутся очень близкими по функциональности - что хорошо, но не дает «вы должны использовать x!»Сценарий, по которому вы, возможно, будете следовать.

Однако, если вы будете привлекать больше людей позже и почувствуете, что поиск людей для работы с web2py будет затруднен, он может дать подсказку PHP.Вы сказали, что популярность Django (и лицензии BSD) трудно игнорировать, и это должно облегчить поиск людей для последующего расширения.

Если бы это был я, на вашем месте, я бы пошел с web2py,Предполагая, что команда разработчиков будет и впредь ориентирована на Python в обозримом будущем.

1 голос
/ 05 августа 2011

Python против PHP: Python

В python вы всегда можете написать обертки для кода C, чтобы вам не приходилось связываться с запуском других процессов и передачей им аргументов. Это может быть полезно для ваших функций безопасности.

Web2py позволит вам легко написать веб-сервис для этого, чтобы легче интегрировать части C с инфраструктурой веб-сайта.

Если вы уже предпочитаете python, я бы с этим согласился. Если вам необходимо привлечь веб-разработчиков, которые обучаются PHP, научите их Python. Это не займет много времени, и я уверен, что они оценят это в долгосрочной перспективе. Кроме того, переход от среды PHP MVC к web2py или даже к django сделает все проще. Я использовал CodeIgniter для PHP и обнаружил, что web2py был намного проще и понятнее.

Также, что касается структуры каталогов, django на самом деле не является истинным MVC - это MTV (модель, шаблон, вид).

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

В web2py «view» - это html-разметка с возможностью написания необработанного кода Python. Контроллер извлекает данные из модели (базы данных), присоединяет любые необходимые файлы (css / js и т. Д.), И модель, конечно, просто определяет структуру данных и позволяет получить к ним доступ ОО.

Наконец, я бы не стал склоняться в пользу web2py только из-за интеграции с jQuery. Он использует его, и некоторые из встроенных элементов инфраструктуры (например, response.flash / session.flash, функция LOAD, которая загружает страницу или данные из другого контроллера) полагаются на jQuery, но использование его в другой среде означает только Вы должны написать оператор включения (например).

Но то, как это позволяет / заставляет вас сосредоточиться на развитии, - это то, что приносит мне удовольствие.

0 голосов
/ 05 августа 2011

Я бы порекомендовал спросить о web2py в его списке рассылки - там вы получите много помощи и советов.Что касается лицензии LGPL, обратите внимание, что она применяется только к платформе, а не к вашему приложению - вы можете лицензировать свое приложение, как вам нравится , включая закрытый исходный код / ​​коммерческий.Вам потребуется некоторая функциональность push-сервера, но если вам действительно нужно всего лишь несколько долгоживущих соединений одновременно, вам, возможно, не придется беспокоиться о таких решениях, как Twisted или Gevent.Однако при необходимости web2py включает this (требует Tornado и работает с использованием WebSockets, хотя может быть адаптирован для использования других методов ).

0 голосов
/ 04 августа 2011

Насколько я понимаю, проект не обычное веб-приложение, вам нужна программа, управляемая событиями, веб-сервер на python.

Django вам здесь не поможет. Вы должны изучить Flask , Flask также имеет встроенную консоль. http://werkzeug.pocoo.org/, вам может понадобиться twisted , gevent , Колба jquery .

0 голосов
/ 04 августа 2011

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

Начать новый проект относительно простои начать кодирование.Но есть все виды маленьких уловок, которые мешают работе, если вы отклоняетесь от нормы.Например, если вы хотите, чтобы ваш проект django обслуживался из подкаталога, например example.com/django.Информация там, чтобы заставить это работать.Но это трудно найти.

Я не могу сказать вам, есть ли у web2py те же проблемы или нет.Я только что узнал об этом из вашего вопроса.Это выглядит гладко и просто, хотя.Я могу вам сказать, что после трудностей с тем, чтобы приложения работали должным образом с любой конфигурацией сервера, которую я использую, django гораздо интереснее программировать, чем обычный php.Фреймворки PHP могут отличаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...