Инженерный журнал

Блог

Как устроен Universal Engine изнутри - архитектура, шаблонизатор, грабли, собранные в бою.

Сквозная аналитика и IP-телефония в CRM: видно, какая реклама реально приносит деньги

Как связать рекламу, звонки и продажи в одну картину: по каждой кампании видно не просто число заявок, а сколько из них дошло до денег - и как телефония с Telegram-уведомлениями не даёт терять пропущенные звонки.

crmаналитикамаркетинг
Скины шаблонизатора: TemplateSneat против своего лёгкого скина

Класс Template генерит оболочку, скин по duck-typed контракту решает чем её наполнить. Тяжёлый Sneat - для админки, лёгкий холст - для лендинга.

bootstraptemplatesneatскины
Эффекты только через шаблонизатор - и почему это дисциплина, а не ограничение

Ни одного <script src> или <link> на библиотеку в разметке страницы. Всё идёт через класс Affects или скин - и это экономит время, а не связывает руки.

affectsassetsдисциплина
Страница за 10 строк

Прикладная страница - это один файл page/x.php. Ни контроллеров, ни вью-моделей, ни аннотаций маршрутов.

pagephpпаттерн
Universal table: одна таблица вместо тридцати сущностей

Аккаунты, чаты, проекты и платежи лежат в одной таблице sogerien. Схема не мигрирует под каждую фичу - меняется только содержимое jsonb.

dbcontrollerjsonbpostgresql
Почему я выкинул MVC

MVC ставит три слоя классов между HTTP-запросом и ответом. Universal Engine убирает переходники - и кода становится меньше, а не больше.

anti-mvcphpuniversal-engine