Портрет 4X_Pro
Был в Сети 27 авг. 2025 г., 05:32
Мультиблог
4X_Pro
Кратко о себе: Web-разработчик. Пишу на PHP, Python, JavaScript. Знаю Ruby и Go, со студенческих времён более-менее помню C и asm. Специализируюсь на ускорении загрузки сайтов и разработке ботов для Telegram. Linuxоид (использую Debian+LXDE). Сторонник IndieWeb, slow lifer.

Социальные сети


Новости сайта в Telegram

t.me/4x_pro

Лог жизни

Лог моей жизни, где я фиксирую наиболее эмоционально значимые для меня события и текущее настроение. Является продолжением блога, который я вел в ЖЖ с ноября 2004 по апрель 2018 года.


О скрипте каталога и фреймворке для него

4X_Pro

Во время последнего заезда на дачу обдумывал, как сделать свой скрипт каталога сайтов. Вернулся к тому, о чём думал во времена начала работы над IntB 3.x в 2007 году — хранить все сущности, которые могут быть выведены в виде Web-страниц, в одной таблице: сами сайты, категории, подборки по формату сайтов, пользовательские подборки, вспомогательные фильтры, теги и т.п. По сути, у всего этого атрибуты одинаковые: название, описание, HURL, владелец, основной текст, дата создания и последней модификации, а также поле для сериализованных специфических атрибутов. Но в отличие от IntB, где предполагалась чисто иерархическая структура, предусмотреть таблицу для возможности связывать сущности произвольно. К тому же, как выяснилось, современные версии MySQL и Postgres позволяют хранить такие атрибуты в виде JSON с возможностью выборки по атрибутам внутри JSON и даже создавать по этим атрибутам индексы!
Потом мысль пошла дальше — решил сделать собственный микрофреймворк, взяв за основу тот код, который я писал для движка MLCE в прошлом году. И потом на нём реализовать и каталог сайтов, и мобильное сообщество, и, возможно, в дальнейшем вернуться движку для сообщества идеалистов, только переделать его на SQL вместо MongoDB. Но потом застрял на вопросе, использовать ли namespaces и загромождать код противоестественными конструкциями вида \MLFW\App\Router или \MLFW\Models\Entity или писать в духе CMS двухтысячных, используя namespaces только для указания путей, где искать необходимые классы (то есть Models\Entity или Templates\MainPage).


Задать вопрос

Здесь можно задать мне вопрос или спросить совета по любой теме, затронутой в блогах или на форуме. После того, как я отвечу, вопрос и ответ появятся в соответствующем разделе. Но не забываем, что я — сторонник slow life, поэтому каких-либо сроков ответов не обещаю. Самые интересные вопросы станут основой для новых тем на форуме или записей в блоге.
Сразу предупреждаю: глупости, провокации, троллинг и тому подобное летит прямо в /dev/null.