
Меня это всё не устраивало, поэтому как только у меня выдалось время, я начал портирование сайта на технологии, поработать с которыми захочет каждый из нашей команды. Кандидатами были — Ruby on Rails и Django. Оба фреймворка — прекрасны! И самое главное — подходят по уровню инноваций, фана, красивого кода. Django я выбрал из-за языка — Python мне как-то сразу запал в душу.
После первых helloworld сайтов стало ясно, что «нужно еще что-то почитать». И тут я весьма кстати наткнулся на djangobook, которую читал запоем несколько дней подряд. Дочитав до 12й главы, я решил что готов :))))
В первый день я перенес главную страницу (включая импорт записей из wordpress) и был на десятом небе от радости. На второй день я перенес пару статических страниц, а вот когда подошел к странице со списком пользователей, то тут меня и ждала настоящая работа.
Первое мини-просветление я получил, когда начал писать функции для вызова API сервера приложений. Нужна была функция «получить список последних комиксов». Протокол — близкий к XML-RPC (и я планирую начать работу по замене его на RESTful web service). Собираю XML, отправляю, получаю ответ, разбираю, определяю класс Comic и возвращаю массив этих классов. Потом — список пользователей. Опять то же самое + класс User. На третьей функции я вспомнил, что Python — это не C++ и удалил описания классов, возвращая вместо них массив из словарей (гениальнейший встроенный тип данных, в C++ есть его аналог std::map). В общем, все функции работы с application server заняли сотню строк, и при ближайшем рефакторинге я планирую сократить код процентов на 20 :))))
День на пятый я сделал-таки страничку со списком пользователей (еще немного времени поглотил paging и прочие мелочи). За шестой и седьмой день я доделал все остальное (страница профиля, список комиксов, страница комикса, обратная связь + десяток статических страниц).
Т.е. за одну неделю новый сайт был готов. Еще полдня — и я выложил его на test.risovaska.ru. Потом мы его неспешно тестировали, добавляли какие-то мелочи, вчера он заменил основной — risovaska.ru
В Django, кроме собственно технических вкусностей и красот архитектуры, меня особо радуют:
— Офигенная документация
— Очень хорошее сообщество вокруг фреймворка (например, есть такие люди как Иван Сагалаев — softwaremaniacs.org/blog/category/django)
Кроме Django и Python, при разработке использовал распределенную систему версионирования Mercurial. Главное её удобство — это то, что не нужно настраивать никаких репозиториев под апачем на сервере, если у тебя есть туда доступ по SSH. Один репозиторий лежит у тебя на компьютере, второй — на сервере. Изменения просто переливаешь по SSH. Dev-ветка создается очень быстро — простым клонированием репозитория. Во-первых удобно, а во-вторых — какая-то новая извилина появилась в мозгу. Ну и в-третьих — поскольку все чаще люди просят открыть код Рисоваськи, то такой распределенный подход может очень пригодиться, когда мы переведем клиентское приложение в open-source.
Новые интересные технологии приходят на смену старым и скучным!