Кратко о том, что случилось: в процессе допиливания сториза Орхи намеренно привязал его к используемой им самим платформе и лишил технической возможности пилить сториз большинство потенциальных разработчиков, в том числе и меня. Образовавшуюся от такого технического вандализма пуканную тягу пришлось срочно перененаправить на допиливание своего форка, чтобы не улететь разглядывать Плутон вслед за New Horizons. Не уверен, есть ли теперь в этом смысл, ибо на гитхабе с недавних пор тщательно имитируют бурную деятельность (правда, дальше этого дело у них пока не идёт), но не пилить своё не мог. В первую очередь сейчас пилил всякое техническое.
Что же я натворил теперь (в порядке технической важности):
Портировано с Django на Flask. В отличие от джанги, фласк не только позволяет отклоняться от «генеральной линии партии», запиливая всякие свои велосипеды, но и даже почти поощряет это. Запилить здесь API теперь — как нефиг делать, чего на джанге мы с Орхи не осилили.
Нормальная кроссплатформенность сервера. Мне удалось запустить и потыкать это всё на следующих платформах:
- Arch Linux (куда ж без него)
- Mac OS X 10.10
- FreeBSD 10/11
- Windows 8.1/10 (скачивание рассказов не ломалось!)
Почти наверняка и на каких-нибудь других юниксах работает. Плюс за счёт Pony ORM поддерживаются СУБД MySQL, PostgreSQL, Oracle и SQLite3; имеется механизм переноса данных между разными СУБД.
Переписан почти весь javascript. Все переходы по ссылкам и отправки форм теперь выполняются через AJAX (по образу и подобию PJAX и TurboLinks). Сильно меньше jQuery, несильно меньше bootstrap'а, местами сильно больше быстродействия за счёт AJAX. (Нет, это не SPA в привычном смысле. Нет, SPA не будет. Да, SPA — ересь. Да, смайлопак я тоже считаю ересью, но с ним ничего не поделать) (Для Орхи и Гибоникуса исходники NSFW.)
Переделаны комментарии с нуля. Ответы, голосование, скрытие заминусованных, подсветка новых, РЕДАКТИРОВАНИЕ, вот это вот всё. Плюс из ЖЖ утащены пагинация и скрытие веток (настраивается в профиле.) Не без косяков пока, но сториз не табун, может их и не надо фиксить, не знаю)
Начало переноса валидации с Django-Forms/WTForms на Cerberus. Сильно облегчает вьюхи, снижает вероятность появления багов и уязвимостей, упрощает разработку API.
Базовая поддержка интернационализации. Местным, конечно, нафиг не надо, но в данном случае запиливать проще, чем не запиливать. Правда, сейчас всё рано доступен только русский язык, потому что на английский переводить некому.
Нормальный механизм объявлений. А не через django-pages, насильно пихаемый в верх главной страницы, как раньше. И уж тем более не через рассказы *mother-of-celestia.jpg* У каждого объявления есть красивый адрес и комменты.
Можно пихать картинки в описание рассказов :)
Многочисленные мелкие исправления багов и уязвимостей, оптимизации и всё такое. В процессе портирования много чего нашлось. Часть отправил обратно в ponyFiction, часть нет. (Ну и без новых багов, появившихся при портировании, тоже не обошлось.)
Что со всем этим делать дальше — хз.
Комментарии (3)
Yay!
Great!
Хоть этот сайт работает, в отличии от сториза