~191622
в гостевой книге
Как известно, рефакторинг нельзя закончить, а можно только прекратить. Поэтому в этот воскресный вечер пришлось остановиться и в несравненном билде 1481 выкатить версию ФКФВ 6.3.
6.3 — апдейт огромный, но за редкими исключениями полностью подкапотный и для вас ничем не примечательный. За 2,5 года скопился жирный техдолг, который я немного прибрал и упаковал покрасивше.
Наконец-то логика /gb, /ob и постов разделена по разным контроллерам. В 20 году, когда я переписывал ФКФВ с пыхи на руби, я сделал так же, как было у Виктора Разуваева (то есть когда гест и посты живут в одном контроллере). Но потом оказалось, что это было неправильно, ведь кроме самого главного появились как бы два новых геста (Зиндан и ОБ) — и они жили наростами говна прямо поверх контроллера постов. Теперь все по своим аккуратным углам.
Теперь есть сущность Board, к которой клеятся посты. Теоретически это значит, что гораздо проще расширять ФКФВ горизонтально, добавляя новые борды. Но по новым бордам у меня пока идей нет.
Все сниппеты сайдбара, всякие плашки нотификейшнов (когда чел забанен или не одобрен после реги, санитарный режим и проч), селектор даты, плашка Премии, телевизор ФКФВ, запиненные посты — все это добро ранее было навалено прямо во вьюхах абы как. Теперь оно аккуратно рассовано по методам примерно так (прям хорошо):
(Как было я вам показывать не буду, потому что там что ни строка, то слезы)
Хелпер методы — это лучше, но тоже не фонтан, потому что все надо делать на компонентах, но я пока не умею. Слышал, что для руби есть какая-то ультра-новая компонентная шняга под названием Phlex, которая делает разметку не из ХТМЛ-партиалов, а прямо из руби-кода (прямо как в кристале по дефолту); это любопытно, и с этим было бы круто поиграться, ведь это намного быстрее (60% времени типового респонса рельса рендерит ХТМЛ). Но пока хз, потом как-нибудь.
Еще огромную кучу вещей по логике кому что можно, и кому что нельзя я переписал на Action Policy. Это решение для понятной авторизации на основе полиси-подхода, написанное каким-то русским парнем с ник-неймом Palkan Tula. Ранее это была богатая каша навоза прямо в каждом экшне контроллера, просто смотреть не хотелось.
Еще мне разонравился шаблонизатор slim, поэтому кучу всего я переписал на erb.
Поскольку появились новые борды, сегодня пришлось опять переписать сраный Монитор (удавил бы).
И наконец теперь для версионирования рубей мы юзаем не rbenv, а asdf. Asdf вообще позволяет версионировать не только руби, а вообще что угодно, от ноды до редиса, это вообще намного круче и понятнее.
Ну и да! Господи, я самый счастливый человек в мире — ведь можно что-то программировать, и оно еще будет связано с Факелом, грандиозно!