Вопрос

Мне интересно, существует ли такая вещь, как простота разработки веб-приложений, подобная Django, в сочетании с хорошим развертыванием, отладкой и другими инструментами?

Django - очень производительный фреймворк для создания сайтов с большим объемом контента;лучшее, что я пробовал, и глоток свежего воздуха по сравнению с некоторыми яванскими чудовищами.Однако он написан на Python, что означает, что реальной поддержки в способе развертывания / упаковки, отладки, профилировщиков и других инструментов, которые значительно упрощают создание и поддержку приложений, практически нет.

У Ruby есть похожие проблемы, и хотя мне действительно нравится Ruby многое больше, чем мне нравится Python, у меня складывается впечатление, что Rails находится примерно в том же положении, что и Django, когда дело доходит до управления / поддержки приложения.

Кто-нибудь здесь пробовал как Django, так и Grails (или другие веб-фреймворки) для нетривиальных проектов?Как они сравнивались?

Это было полезно?

Решение

Вы просили кого-то, кто использовал и Grails, и Django.Я работал над обоими крупными проектами.Вот мои мысли:

IDE- это: Django действительно хорошо работает в Eclipse, Grails действительно хорошо работает в IntelliJ Idea.

Отладка: Практически то же самое (при условии, что вы используете IntelliJ для Grails и Eclipse для Python).Пошаговая отладка, проверка переменных и т.д...ни для того, ни для другого никогда не нужен оператор печати.Иногда сообщения об ошибках django могут быть бесполезны, но сообщения об ошибках Grails обычно довольно длинные и их трудно разобрать.

Время для запуска модульного теста: джанго:2 секунды.Граали:20 секунд (сами тесты выполняются за доли секунды, остальное время уходит на загрузку фреймворка для их запуска...как вы можете видеть, Grails загружается удручающе медленно).

Развертывание: Джанго:скопируйте и вставьте один файл в конфигурацию apache, а для повторного развертывания просто измените код и перезагрузите apache.Граали:создайте файл .war, разверните его на tomcat, промойте и повторите повторное развертывание.

Языки программирования: Groovy - это СОВЕРШЕННО потрясающе.Я люблю его больше, чем Python.Но у меня, конечно, нет никаких жалоб.

Плагины: Граали:множество неработающих плагинов (и может использовать любую библиотеку Java, когда-либо существовавшую).Джанго:несколько стабильных плагинов, но их достаточно, чтобы делать большую часть того, что вам нужно.

База данных: Джанго:схема миграции с использованием South и, как правило, интуитивно понятных отношений.Граали:миграции схемы отсутствуют, и по умолчанию база данных удаляется при запуске...ВТФ

Использование: Джанго:стартапы (особенно в сфере Gov 2.0), независимые магазины веб-разработчиков.Граали:Предприятие

Надеюсь, это поможет!

Другие советы

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

Python имеет:

  1. a отличный интерактивный отладчик, который очень хорошо использует Python REPL.
  2. простая установка наковальня virtualenv для управления зависимостями, упаковки и развертывания.
  3. функции профилирования сопоставимо с другими языками

Так что, ИМХО, вам не стоит беспокоиться об этом, используйте Python и Django и живите счастливо :-)

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

Говоря о фреймворках, я оценивал этот год:

  1. Пилоны (Python)
  2. паутинный (Python)
  3. Симфония (PHP)
  4. КакеФФП (PHP)

Ни один из этих фреймворков и близко не сравнится с мощью Django или Ruby on Rails.Основываясь на мнении моего коллеги, я мог бы порекомендовать вас кохана рамки.Недостатком является то, что он написан на PHP, и, насколько я знаю, в PHP нет превосходных инструментов для отладки, профилирования и упаковки приложений.

Редактировать: Вот очень хороший статья об упаковке и развертывании приложений на Python (в частности, приложения Django).Сейчас это горячая тема в сообществе Django.

Утверждение о том , что grails удаляет базу данных при запуске это совершенно неправильно.Его поведение при запуске полностью настраивается и его легко настроить.Обычно я использую create-drop при запуске приложения в режиме разработки.Я использую update при запуске в тестировании и производстве.

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

Я бы хотел, чтобы кто-то, кто действительно создал и внедрил несколько коммерческих проектов, прокомментировал плюсы / минусы.Будет действительно интересным чтением.

Граали.

Grails просто выглядит как Rails (Ruby), но он использует groovy, который проще java.Он использует технологию Java, и вы можете использовать любую java-библиотеку без каких-либо проблем.

Я также предпочитаю Grails простоте, и есть много java-библиотек (таких как jasper report, jawr и т.д.), И я рад, что теперь они объединяются с SpringSource, что делает их базу надежной.

У меня есть два друга, которые изначально начали писать приложение с использованием Ruby on Rails, но столкнулись с рядом проблем и ограничений.Примерно через 8 недель работы над этим они решили изучить другие альтернативы.

Они остановились на Каркас катализатора, и Perl.Это было около 4 месяцев назад, и они неоднократно говорили о том, насколько лучше работает приложение и насколько большей гибкостью оно обладает.

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

Проблема "хорошего развертывания" - для Python - не имеет того Глубокого значения, которое она имеет для Java.

Развертывание Python для Django - это, по сути, "перемещение файлов".Вы можете запустить прямо из магистрального каталога subversion, если хотите.

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

С моими вещами работает в Linux, у меня есть простой "install.py" сценарии, которые перевезти вещи из каталогов подрывной деятельности в /opt/this и /opt/that справочники.Я использую явные настройки пути в моей конфигурации Apache, чтобы присвоить имена тем каталогам, в которых находятся приложения.

Исправление может быть произведено путем редактирования файлов на месте.(Плохая политика.) Я предпочитаю редактировать в расположении SVN и повторно запускать мою небольшую установку, чтобы убедиться, что у меня действительно есть все файлы под контролем.

cakephp.org

Cakephp действительно хорош, действительно близок к ruby on rails (1.2).Он написан на php, очень хорошо работает на общих хостингах и прост в реализации.

Единственным недостатком является то, что документации несколько не хватает, но вы быстро ее получаете и быстро начинаете делать классные вещи.

Я полностью рекомендую cakephp.

Лично я сделал несколько довольно крупных проектов с Django, но я могу сравнить только с упомянутыми "монтировками" (Spring, EJB) и действительно низкоуровневыми материалами вроде Twisted.

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

Под "хорошим развертыванием" вы сравниваете его с EAR-файлами Java, которые позволяют вам развертывать веб-приложения, загружая один файл на сервер J2EE?(И, в меньшей степени, военные файлы;Файлы EAR могут содержать файлы WAR для зависимых проектов)

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

Капистрано может помочь на стороне Ruby.

К сожалению, я не так уж много работал ни с Python, ни с Ruby, поэтому я не могу помочь с профилировщиками или отладчиками.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top