0+

Эпический рефакторинг МОРФ sci-fi mach:n

И без того самый быстрый в мире движок стал еще быстрее в 10 раз, практически реализована уникальная система генерации статики, еще больше развита мультисервисность и снижена зависимость от базы данных.

Статика

Из множества вариантов реализации кэширования у нас есть свой вариант. 

Мы регенерируем статические файлы только после внесения изменений в объекты  пользователем. Затем регенерируем списки объектов. Если никто изменений не вносит, то ничего и не происходит, клиент получает кэшированную версию запроса к базе, при этом сам интерфейс остается динамическим и кэшируется препроцессором. 

МОРФ sci-fi mach:n

API

В разработке мы умышленно ставим ограничения на размер файлов и придерживаемся принципа 1 сервис - 1 файл.  На данном этапе исключение составляют только Виды, имеющие несколько зависимостей, адекватное решение этой задачи пока не придумано.

Но тем не менее программный интерфейс (API) реализован сегментировано и элементарно: просто используется параметр в запросе v=json на url с необходимым интерфейсом. Например чтобы получить объект, используется его псевдоним и id: 

https://yuai.ru/morf-sci-fi-mach-n_681?v=json

result->content хранится и в базе и в статике кодированным,  в целях безопасности, поэтому его необходимо раскодировать. Например на js это делается примерно так:

function decodeHTMLEntities(text) { 
 	 let textArea = document.createElement('textarea'); 
 	 textArea.innerHTML = text; 
 	 return textArea.value;
 }

Дизайн

Пользовательский интерфейс является отражением философии и внутренней логики приложения. Имея серверную часть потрясающей производительности , вы не станете мириться с медленным фронтендом и чем больше оптимизируется код на сервере, тем большее влияние он оказывает на структуру. 

Имея разработку с чистого листа, мы постепенно добавляем и оптимизируем элементы интерфейса, внимательно следя за производительностью. Современная техника дает возможности сверх-избыточных нагромождений фреймворков и прочих заготовок, но только не для нас и по прежнему нашим основным  требованием остается сохранение базовой функциональности приложения с отключенным javascript и показатели 100 из 100 в лабораторной среде на базе PageSpeed Insights.

cthvlab
11 05 2023 09:07 👁 362