Python и Django - платформа для фрилансера. Часть 1

Данный материал не является текстовой перепечаткой моего доклада на Exception #07. Это повторное изложение мыслей на заданную тему. Полная версия слайдов в формате odp - 21кб

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

слайд 1 - титул

В момент, когда я искал новую платформу/технологию для быстрого и удобного создания сайтов, то мой взор был почти сразу обращен в сторону питона. Хоть, к тому времени с питоном я уже был знаком, но на очень низком уровне. И всё норовил перенести в него парадигмы используемые мною до этого в С++. Как вы понимаете, это ни к чему хорошему не приводило. Но постепенно благодаря всё более плотному знакомству с джангой, изучению её внутренностей и вообще изучению потоночьего кода, я стал исправляться. И чем дальше, тем больше я понимал, что этот язык действительно "заточен" для быстрой и качественной разработки.

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

Питон обладает рядом свойств, которые выделяют его даже из, как казалось бы, схожих динамический языков. И это прекрасно. Он не стал в себя впитывать все новые веяния и тренды, постепенно превращаясь в монстра. Нет, питон, шел своим путем. Точнее сказать не язык, а его создатель и сообщество вокруг. Как мне кажется, Гвидо специально выбрал такой путь развития и не прогадал. По прошествии многих лет развития языка, он всё так же прост, лаконичен и очень функционален в плане возможностей.

слайд 2

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

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

Сообществом создаются огромное число сторонних библиотек, многие из которых сделаны мега профессионально и с точным пониманием того, как это должно выглядеть. Очень важно, чтобы разработчик точно знал, чего он хочет добиться от своей библиотеки и не делал "мастера на все руки". У многих это получается и благодаря им, мы имеем очень толковые библиотеки. Которые уже точно покрывают 100% всех потребностей в разработке.

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

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

Но это знаем мы, как люди варящиеся в котле питонистов и веб разработчиков. Но как донести до потенциального заказчика эти идеи? Как ему объяснить, что выбор именно этого языка разработки - правильный выбор?

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

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

И так, с питоном мы определились, но нужна ещё какая-то библиотека/фреймворк для создания веб приложения. Тут проявляется вся мощь питоньего сообщества. По первости, просто разбегаются глаза от обилия вариантов. И тоже было со мной в своё время.

Выбор пал на джанго благодаря стечению обстоятельств. Я методично пробовал разные фреймворки, но hello world приложение быстрее всего и проще получилось именно с использованием django. Как потом я понял - мне очень повезло, что так получилось.

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

Но чего не получается у них, очень хорошо получается у джанго.

слайд 3

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

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

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

Легкость в установке и настройки тоже помогают экономить время и нервы. Всё в целом дает огромное преимущество перед безфремворковой разработкой, либо перед другими схожими решениями. Да, у меня нет опыта плотного знакомства с другими реализациями, но по ощущениям и взгляду со стороны это именно так.

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

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

Продолжение следует...

Комментарии 4

  1. Гвидон Маляров написал:

    в последнее время мой rss reader аж кипит от обилия постов про питон и django в частности. приятная тенденция:). но все же поработать с этой связкой в ближайшее время не предвидится:(, пока не популярно

    зы: Александр, ну почему нельзя было вместо глагола "нивелирует" использовать очень подходящий "сглаживает"?:) пока не разобрался с его значеием ломал голову над смыслом фразы:)

    Оставлен 15 Апрель 2008 в 12:59
  2. Александр Кошелев написал:

    Александр, ну почему нельзя было вместо глагола "нивелирует" использовать очень подходящий "сглаживает"?:) пока не разобрался с его значеием ломал голову над смыслом фразы:)

    Так получилось;)

    Оставлен 15 Апрель 2008 в 22:13
  3. RaD написал:

    А также документация на русском - http://cargo.caml.ru/djangobook/

    Оставлен 16 Апрель 2008 в 21:46
  4. И.В.. написал:

    А как насчет создать новостной проект на Python и Django? :)

    Оставлен 08 Сентябрь 2008 в 17:10