Дорогие Друзья!
Рад вам сообщить о выходе новой версии движка Flextype 0.9.6!
Более двух месяц работы над новой версией движка и почти 300 часов программирования и тестирования! Основное отличнее Flextype 0.9.6 от 0.9.5 - это улучшение производительности в разы! Flextype всегда была быстрой системой, но новая Flextype 0.9.6 еще быстрее! Быстрее в 12 - 14 раз!
С помощью backfire.io было найдено несколько критических мест, которые оказывали влияние на производительность системы в целом.
Было проведено несколько тестов и сравнений производительности с другим Flat File CMS, Flextype 0.9.6 быстрее их в разы! Новая Flextype 0.9.6 отдает одну страницу из 100 000 тысяч страниц за доли миллисекунд!
Новая Flextype 0.9.6 отдает одну страницу из 100 000 тысяч страниц за доли миллисекунд, что нельзя сказать например о Grav CMS.
Секрет такой высокой производительности Flextype, в том что Flextype не загружает всю базу данных страниц в память при каждом запросе к странице (не понимаю зачем вообще так делать ?!), а загружает лишь запрашиваемую страницу. Flextype загружает толко то что вы запрашиваете и ничего лишнего. Так же прирост производительности получается благодаря сохранению результат парсинга YAML, Markdown, JSON в кэше!
Да, YAML - удобный и легко читаемый язык для работы с данными, но его парсинг занимает большое количество времени, особенно когда данных достаточно много и в Flextype 0.9.6 эта проблема решается с помощью кэша по ключу генерируемого на основе передаваемого контента. Сохраняем результаты работы парсеров и получаем дополнительный прирост производительности :)
Вот такие результаты теста производительности: Flextype 0.9.6 vs Grav 1.7.0-rc.1!
БД из 100 000 страниц! Размер БД - 700mb! Запрашиваемую страницу Flextype мне отдал отдал за 269ms! в то время как Grav просто разогрел мой МакбукПро до 100℃ градусов и ничего мне не отдал :(
Страшно вообще тестировать выборку страниц из большой коллекции в Grav.
Как видите, Flextype 0.9.6 очень шустрая Flat File CMS и она быстрее своих конкурентов в разы!
Для уточнения! Тест проводился на запрос одной страницы из 100 000 страниц и Flextype 0.9.6 отлично с этой задачей справляется, но важно заметить, то что работа с коллекциями данных это непростая задача и ее решение крайне непростое!
Flextype практически мгновенно отдаст запрашиваемую страницу из 100 000 страниц, но вот выборка коллекции страниц из 100 000 страниц потребует дополнительной оптимизации со стороны пользователей(разработчиков) и со стороны Flextype над которыми я также работаю!
Итого: производительность Flextype уже возросла в 12 — 14 раз, но работа над улучшением производительности продолжается! Есть куда расти и есть что улучшать!
Для повышения производтельности в будущем необходимо будет еще раз пересмотерть работу с кешем на уровне ядра и реализовать stache_always_update функциональность, которая повысит в разы скорость загрузки страниц клиентской части сайта. Пересмотреть и отсечь двойные запросы к одним и тем же данным. Убрать всю графику из папок с entries (там должны быть только записи!) все что относится к assets должно храниться отдельно от страниц. Например в папке /site/assets/
В Flextype 0.9.6 появилась возможность редактирования и перезагрузки настроек плагинов и тем оформления, которые идут по умолчанию с плагинами и темами. Больше не будет необходимости лазить ручками в плагины и править их настройки прямо в их директориях, так как теперь все настройки можно перезаписать поверх или добавить новые. В будущих версиях скорее всего появится интерфейс кнопок, вместо редактора настроек. Также мы получаем еще один способ хранения глобальных переменных :) Например, можно сохранить какие нибудь глобальные переменные в плагине site и потом использовать их глобально по сайту, вызывая их из реестра.
В Flextype 0.9.6 появилась возможность назначать индивидуальные иконки для записей и коллекций записей. Так как записи в Flextype это нечто большее чем просто страницы - иконки позволят визуально выделить их в зависимости от их назначения 🤠
Теперь каталоги, отзывы и прочий функционал сайта созданный с помощью записей будут выделяться на фоне других записей (страниц) сайта.
Интерфейс админки стал более минималистичнее и удобнее! Появились иконки во всех разделах админки и все кнопки действий спрятаны в выпадающие списки.
Также появились подсказки и автозаполнение полей!
В сборке начиная с Flextype 0.9.6 включено Flextype Core + Admin Panel Plugin + Site Plugin и всего одна главная страница!
Страницы, наборы полей, скрипты и графика необходимая для блога, галереи и тд. будут вынесены из сборки в отдельные решения: плагины, темы, скрипты или мануалы и гайды. Если посмотреть успешные Headless решения - они всегда идут "голыми", но предлагают возможные варианты развертывания какого либо проекта: блога, каталога и тд. - и это по желанию каждого, но без принудительного навязывания.
Идея в том чтобы иметь чистую сборку, а проект на ней разворачивать уже под свои требования!
Flextype уже предоставляет возможность работы с индивидуальными полями для страниц/записей, но в Flextype 0.9.6 появилась возможность создавать индивидуальные поля и для каждой записи индивидуально! Набор индивидуальных полей записи можно хранить в поле еntry_fieldset
В новой Flextype 0.9.6 появилась полноценная возможность работать с кешем в twig шаблонах. Это позволит оптимизировать производительность проекта на уровне шаблонов, например сохраняя результаты запросов или парсинга в кеше.
А также множество других улучшений и исправлений найденых багов: https://github.com/flextype/flextype/releases/tag/v0.9.6
Скачать https://github.com/flextype/flextype/releases/tag/v0.9.6