Pull to refresh

Причины выбора Django для разработки сайта

Reading time2 min
Views27K
Меня часто спрашивают, почему именно Django стоит использовать для написания сайтов? Почему не ASP.NET, Ruby on Rails, Grails и т.п.? Ниже я кратко опишу свое мнение, и причины, его сформировавшие. Но хочу сразу сказать, что это не сравнительный анализ фреймворков, и я не ставил перед собой цель что-то кому-то доказывать. Это просто перечисление преимуществ и мои мысли о них.

  • Использование Python в качестве языка программирования. Может это не самый идеальный и быстрый язык программирования, однако он достаточно прост с синтаксической точки зрения, что автоматом дает низкий порог вхождения. Ну и в довесок мы имеем всю его мощь метапрограммирования, обширную библиотеку классов, хорошую документацию и достаточно компактный и интуитивно понятный синтаксис.
  • Великолепная документация. Более качественной документации я не встречал в своей работе — множество примеров, объяснений, и самое главное — открытый исходный код, который очень хорошо написан.
  • Встроенный ORM (Object-relational mapper). Конечно, есть более гибкие и мощные библиотеки, обеспечивающие проецирование реляционных данных в объекты, но свои задачи Django ORM решает. Самое главное, что в нем мне нравится — в абсолютном большинстве случаев совершенно не требуется использование SQL-синтаксиса в выражениях, что автоматом снижает риск появления SQL-injection уязвимости.
  • Автоматически генерируемая админка. Это одна из уникальных фич Django, у которой практически нет аналогов. Помимо того, что данная функциональность позволяет значительно сократить время на написание нужного админского интерфейса, она еще и дает возможность клиентам сразу начать работать с сайтом еще на начальных этапах его разработки! Фактически, достаточно набросать нужные модели, и можно сразу показывать сайт клиенту, и уже интерактивно с ним обсуждать бизнес-логику, не отвлекаясь на дизайн.
  • Поддержка MTV (Model-Template-View). Данный паттерн проектирования очень близок к классическому MVC, и самое главное, что он позволяет — это хорошо отделять бизнес-логику от дизайна. Причем, несмотря на то, что многие возмущаются небогатством функциональных возможностей шаблонов Django, я наоборот считаю этот «недостаток» плюсом — программист имеет меньше соблазна залепить всю логику в шаблоны, чтобы потом разбираться со спагетти-проектом.
  • Высокая скорость работы. Несмотря на то, что Python не блещет скоростью, в целом Django работает достаточно быстро. Он может выдерживать высокую нагрузку, плюс имеет встроенные возможности кэширования и распределения нагрузки. Причем для того, чтобы писать на нем очень мощные сайты, не нужно иметь особо высокую квалификацию, не нужно быть гуру, и штудировать кучу форумов и других ресурсов. В довесок хочу привести ссылку на мою статью Django speed, stability and security.

Ну и собственно, вы сами можете составить представление об этом замечательном фреймворке, потратив всего пару часов на туториал.
Tags:
Hubs:
+48
Comments293

Articles