Показаны сообщения с ярлыком философия. Показать все сообщения
Показаны сообщения с ярлыком философия. Показать все сообщения

воскресенье, 26 апреля 2009 г.

Страшный секрет

Дело в том, что в Django есть магия, которую нельзя удалить! Собственно я вот об этом:

ponybadge

И вообще это необычайный фреймворк (для тех кто не в курсе), а Cal Henderson вообще его ненавидит и рассказывает об этом серьёзным и зловещим голосом.

А теперь, когда вы это узнали, вас придётся убрать.

вторник, 7 апреля 2009 г.

Простая магия переиспользования

Наткнулся на очень интересное видео с Джеймсом Беннетом, одним из значимых разработчиков в Django и автором книги Practical Django Projects, несколько устаревшей (по версии фреймворка), но, судя по всему, стоящей (поэтому она стоит у меня в списке к прочтению). В этом видео он рассказывает об очень важной составляющей идеологии фреймворка - идеи reusable apps, т.е. переиспользуемых приложений. В соответствии с ней, сайт представляет собой не оргомную монолитную кучу кода, а совокупность отдельных приложений, небольших, отвечающих за отдельную функциональность, но делающих это хорошо. За счёт этого приложение становится более прозрачным, код - более переиспользуемым, и повышается его поддерживаемость и расширяемость. На примерах показывается каким образом можно строить эти самые reusable apps.
Этому же посвящена 1-я часть слайдов с презентации Real World Django, прошедшей на PyCon 2009 (очень жалко, что не опубликовано видео оттуда).

среда, 1 апреля 2009 г.

Язык определяет мышление

Наверное, многие знают, что, согласно гипотезе Сепира - Уорфа, язык человека определяет его мышление и способ познания реальности. Поэтому, во-первых, программисту не стоит замыкаться на одном языке, и, во-вторых, стоит выбирать такой язык, который как можно лучше позволяет реализовывать проще и удобне решения задач, которые стоят перед разработчиком. К области веб-приложений это тоже вполне применимо.
Так вот "основой" для Django служит очень неплохой язык python: довольно простой и в то же время одновременно выразительно мощный и элегантный. Одной из наиболее ценных черт его, на мой взгляд, является целостность, т.е. все составляющие следуют общим принципам (наверное, тут снова стоит упомянуть The Zen of Python), одним из которых является There's Only One Way To Do It (Есть только один способ сделать это). Следование этому принципу уменьшает число вариантов, которые стоит рассматривать при решение задачи, поэтому разработчик тратит меньше времени и усилий, что не может не радовать. Хотя есть мнение, что ограничение свободы не есть положительная вещь, т.к. рамки сковывают "твоческий порыв". В качестве противоположной идеи сразу вспоминается перловский TIMTOWTDI. Однако, по-моему простота и скорость работы играют чаще всего определяющую роль, а если надо будет решать какие-то более "креативные" задачи, то никто не запрещает использовать другой инструмент.
В python я ещё пока совсем новичёк, поэтому для "подтягивания" своих навыков штудирую книгу Dive Into Python (текст доступен онлайн, есть и русская версия, хотя я предпочитаю читать оригинал) - довольно неплохо написано, правда стиль со сносками к исходникам мне немного не нравится.

среда, 25 марта 2009 г.

Метод избавления от рутинных задач в Django

Вебразработка очень часто навевает скуку на людей, которые ей занимаются. Ведь, несмотря на всю увлекательность и прелесть интернета, очень много вещей повторяется из раза в раз. Для пользователя это скорей плюс, т.к. не надо каждый раз выяснять, какие ссылки нажимать и т.д. Но вот для программиста это становится очень утомительно, когда приходится писать не первый десяток одинаковых формочек, списков объектов и т.п., которые очень похожи и отличаются лишь небольшими ньюансами. Получается, что разработчик теряет мотивацию, начинает допускать ошибки, ни просто его время расходуется на практически совершенно тупые по своей сути действия. Но прагматичные программисты понимают, что с этим надо бороться и провозглашают одним из основых принципов - DRY, т.е. Don't Repeat Yourself (кстати в вышеуказанной книге этому посвящена глава 2.1 The Evils of Duplication). И авторы Django с этим вполне солидарны.
Скажем, меня всегда утомляло дублирование разных аспектов обработки форм:
  • для начала надо иметь html, который будет их отображать;
  • потом надо обработать информацию, полученную как результат POST-запроса, в частности сделать валидацию;
  • проверенные данные надо "запихать" в БД;
  • если валидация данных не была успешна, то надо отобразить снова ту же форму, сохранив данные, которые были введены пользователем.
Кроме этого можно ещё упомянуть обобщённые виды (generic views), переиспользуемые приложения (как в составе самого фреймворка, так и большое количество сторонних), блоки и тэги для шаблонов и, наверное, это ещё не всё.
Ну и, я уверен, тут не обошлось без влияния The Zen Of Python :)
В целом, если Вы хотите автоматизировать нудные типовые задачи вебразработки и больше времени посвятить сути вашег крутого сайта, то Django может оказать Вам в этом неплохую помощь.