Пора нарушить молчание и рассказать о том, что на недавней замечательной конференции 404fest я тоже имел честь выступать с докладом. Посвящен он был модной ныне теме - NoSQL. Доклад получился коротким и поэтому больше политическим чем техническим. Я хотел показать, что этот новый тренд не просто так захватывает умы всё большего числа разработчиков.
Это только первое моё выступление на эту тему, но, я надеюсь, что в скором времени последуют другие на новых площадках
Вы когда-нибудь задумывались каким таким магическим образом джанговская админка сияет своим синим стилем в только что созданном проекте? Ведь одна из самых больших проблем у новичков в Джанге - это наладить отдачу статики в проекте, но её даже не надо настраивать чтобы правильно заработала админка!
Это потрясающий маркетинговый ход - встроить глубоко во внутрь фреймворка костыль лишь для того, чтобы у человека, первый раз читающего и делающего туториал (или просто первый проект), уже на втором шаге случился культурный шок от админки, а точнее от её полу-магического появления и внешнего вида.
Есть устоявшееся мнение, что у Джанги реальные проблемы с PR'ом и продвижением в массы. Что мол не кричат разработчики и члены сообщества, что вот она какая крутая и что всем надо ею пользоваться. Так у нас свой путь - не надо бить во все колокола, а лишь в нужных местах сгладить углы и сделать вхождение новых людей плавным и беззаботным. Благими намерениями - дорога в ад!
Проза в том, что медиа админки в runserver хендлится специальной WSGI мидлвариной. Причем даже в основном хендлере есть проверка на наличие в урле префикса медии админки и подавлении нотификации о запросе в консоле - чтобы не пугало неподготовленное сознание!:-)
Вам не кажется, что чем большее распространение получаются всякие фреймворки для быстрого создания веб-приложений, то всё большему числу людей кажется, что можно "за один вечер" сделать какой-то сайт и это получится хорошо, интересно и полезно. Нет, так не бывает.
Сейчас я хочу немного порассуждать про сайты-сообщества, например Питона, Джанги или любой другой любимой вами технологии/языка. Это очень похвально, что люди готовы только на энтузиазме (ну или почти только на нем) продвигать продукт, которым они пользуются. Но зачем это делать "как все" и совершенно неэффективно, наступая на всё те же грабли из раза в раз?
Сто есть на каждом сайте какого-либо сообщества?. Агрегатор блогов - так называемая "планета". Но многие уже разочаровались в таком способе в одной ленте получать записи из разных источников. Главная проблема - это автоматическая суть таких агрегаторов. Т.е. авторы чьи блоги входят в эту ленту могут вдруг начать писать что-то совсем отвлеченное или банально неинтересное и что делать? Отписываться от планеты целиком? Не очень удобно, но нет выбора, если кто-то действительно в неё "спамит" и захламляет ваш ридер.
Как показывает практика, гораздо лучше ручные агрегаторы. Все наверно читают Саймона Виллисона и регулярно ходят по интересным ссылкам на какие-то статьи или проекты из его постов. Такого уровня качества ...
Сравнительно недавно поймал себя на мысли, что когда пишу код джанговских шаблонов, то у меня и html и шаблонные теги живут в голове в одном контексте. Т.е. мне долго пришлось себя перебарывать чтобы написать это:
Недавний релиз Джанги 1.1 принес с собой новую фичу - пространства имен урлов. Цель они призваны достичь благую, но увы их механизм пока не очень прозрачен и понятен при первом приближении. Давайте разбираться.
Всё это родилось из идеи иметь несколько админок в одном проекте. И после рефакторинга админки под новые формы это стало возможным. Так же нужно было решить как разделять их урлы и главное как их реверсить по имени. Понятно, что в общем случае имена паттернов урлов разных админок будут пересекаться и однозначно преобразовать имя в урл невозможно. Тогда придумали каждому объекту SiteAdmin давать имя и это имя становилось частью названия паттерна урлов соответствующей админки. Ещё особенностью являлось то, что админка это объект и её урлы скрыты в атрибуте urls, что немного ломало классический способ инклюда урлов Джанги.
Что же сделали? Добавили разделение имен урлов. Причем разделенние на 2 уровня - уровень приложения и уровень инстанса приложения. Так что за приложения и что за инстансы?
Допустим у вас есть приложение foo, в котором присутствует какое-то количество урлов. Раньше хорошей практикой считалось урлы называть с префиксом имени приложения, например foo_index (или ещё каким-то уникальным идентификатором, что делала раньше админка (именем)). Теперь же. использую пространства имен, можно ограничится только index и указать ...