Что тебе нравится в Джанго? - PullRequest
7 голосов
/ 30 октября 2008

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

Так что я хотел бы узнать ваше мнение о Джанго.

Что тебе нравится в этом?
Что заставило вас переключить / использовать его?
Какие функции вы хотели бы иметь, которых нет?
Что заставит вас переключиться на это?
Как быстро это в производстве?
Насколько сложно это освоить?

Ответы [ 6 ]

8 голосов
/ 30 октября 2008

Что тебе нравится в этом?

Диспетчеризация URL: я никогда не был большим поклонником "/foo.php" файла "foo.php" на моем сервере, и если мне нужны более хорошие URL, мне нужно возиться с mod_rewrite и поддерживать его что ожидает моя логика в foo.

ORM. Поскольку, по моему опыту, более 90% ваших запросов не нужно писать вручную. Интеллектуальное кэширование гораздо важнее для производительности в целом. При необходимости вы можете всегда переходить на необработанный SQL.

Промежуточное программное обеспечение и сигналы: легко расширить большинство частей цикла запрос / ответ / просмотр / рендеринг, не затрагивая сам код Django.

Что заставило вас переключить / использовать его?

Он вышел, когда я был разочарован предложениями веб-фреймворка Python. Легкая продажа для меня.

Как быстро это в производстве?

Хм, честно говоря, я никогда не заботился слишком сильно. Часть веб-сервера вашего приложения (на мой взгляд) всегда легче всего масштабировать. Пока вы используете «лучшие практики» и ничего не делитесь, все, что вам нужно сделать, это добавить программный балансировщик нагрузки, и вы можете добавлять новые веб-серверы, пока коровы не вернутся домой. Первое узкое место, с которым обычно сталкиваются, это загрузка базы данных, но Django предоставляет вам отличные API-интерфейсы кэширования, которые помогут вам облегчить это.

Тем не менее, я только просмотрел это, но это кажется быстрее, чем Rails и хорошо известные PHP-фреймворки: http://wiki.rubyonrails.org/rails/pages/Framework+Performance

Насколько сложно это освоить?

Полагаю, это зависит от того, как вы определяете «хозяина». Документация отличная, в течение сайта / приложения приличного размера, я думаю, вы будете использовать всего понемногу, и это хорошее начало.

8 голосов
/ 30 октября 2008

Что мне в этом нравится:

  • Очень простая ORM
  • четкое разделение шаблона / контроллера
  • Джанго-админ
  • подключаемые приложения: мне кажется, что сообщество Django действительно прибило это!

Что заставило меня переключиться:

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

Какие функции мне бы хотелось:

  • лучше / проще контролировать транзакции (настройка различных типов транзакций (только чтение / чтение, запись / некоторые настройки здесь и там) не так просто, как я привык. Наличие модели сеанса в представлении, где транзакция все еще открыт в представлении, не делает меня таким удобным, я бы предпочел, чтобы транзакции не покидали сервисный уровень, но опять же, в модели Django действительно нет сервисного уровня.
  • лучшая модель для бизнес-логики (возможно, это только я, но я скучаю по сервис-ориентированному подходу корпоративной Java, я никогда не знаю, должен ли я представить бизнес-логику в виде, в форме или в модели. Ни один из них решение заставляет меня чувствовать себя тепло и нечетко ... в то же время у меня нет тяжелой бизнес-логики в приложении, которое я сейчас разрабатываю, и я бы, вероятно, все еще использовал бы Java для них)
  • стабильность (в смысле не меняется, не в смысле не падает). Опять же, пришло из Java, где я все еще работаю над Java 1.4 для многих проектов, имея проект, который только что выпустил 1.0, и весь проведенный с ним рефакторинг не очень обнадеживает. Потребовалась некоторая работа, чтобы следовать за стволом, и использование 0,96 не было особенно убедительным. Я не думаю, что мне было бы удобно использовать его в критически важном корпоративном проекте.

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

4 голосов
/ 05 ноября 2008

Что тебе нравится в этом?

  • шаблоны, особенно функция наследования, были удивительны после работы с jsps
  • больше не нужно писать sql

Что заставило вас переключить / использовать его?

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

Каких функций вы хотели бы иметь, которых нет?

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

Что заставит вас переключиться на это?

Я уже использую его дома, и я не принимаю эти решения на работе.

Как быстро это в производстве?

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

Насколько сложно это освоить?

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

4 голосов
/ 31 октября 2008

Любит

Отличная документация. Вместе с помощью stackoverflow я многому научился всего за несколько дней. Это написание на Python. У него есть замечательный contrib.admin, который даже модульный и расширяемый, чтобы встроить его в собственное веб-приложение.

1007 * Не любит * Пока нет. Я все еще очарован Переключатель

Это мой первый веб-фреймворк, так что без переключателя. После нескольких лет использования Python Django показался мне естественным выбором, в основном из-за его чистого дизайна.

3 голосов
/ 05 ноября 2008

Любит:

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

Зачем переключаться?

  • надоел PHP с нуля.
  • у меня на руке был RSI, очень больно. после переключения на язык без точек с запятой он исчез (ИСТИНА!)
  • гораздо более надежная разработка (TDD) и более быстрая (вы можете создать CMS за считанные минуты) - как и многие другие веб-фреймворки.

Не любит:

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

Как сложно освоить?

  • Если у вас уже есть навыки работы с Python, вы можете создать вещи за несколько часов.
  • Если вы этого не сделаете, сначала погрузитесь в Python (хе) - это займет несколько дней.
  • "Освоение" может занять некоторое время ... И вы часто обнаруживаете драгоценности в документации Django, которые заставят вас кричать "Я люблю Django!" (ну, у меня это работает)
3 голосов
/ 30 октября 2008

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

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