...

четверг, 27 ноября 2014 г.

Cобрать лучшее из двух миров — фреймворков и CMS

Четыре года — это в IT уже долгострой. Именно столько, и даже чуть больше времени мне понадобилось чтобы довести CleverStyle CMS до версии 1.0, до состояния когда архитектура устаканилась, имеется достаточная функциональность и целостность системы как таковой, все найденные баги исправлены, и основные сценарии работают без проблем.

Получилось создать что-то среднее между фрейворком и, собственно, CMS, как раз то, что нужно для разработчика, и хочу поделиться этим с сообществом.

Уверен, многим не хватало именно такого решения, это подтверждается многочисленными вопросами на том же Тостере и долгими ветками комментариев под ними.

Обязательно нужно объяснить почему




Сложность, избыточность, гибкость, функциональность и скорость.


Я не нашел решения, которое имело бы удовлетворительный для меня баланс этих параметров (безопасность тоже, но это очевидно и подразумевается само собой изначально).

CleverStyle CMS — это не CMS в привычном смысле, это CMF, выше фреймворка по уровню архитектуры но ниже и гибче CMS.

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



Отличия в сравнении с фреймворком:





  • существенно меньше слоев абстракции

  • как следствие проще и прозрачнее структура

  • как следствие более высокая скорость работы и меньше потребление памяти (ядро отрабатывает за 2-4 мс и кушает около 1 МиБ памяти в пике, остальное зависит от разработчика конечного функционала)

  • не предполагает сборки из разнообразных компонентов — всё уже собрано и адекватно настроено

  • нет централизованного конфига маршрутов, каждый компонент хранит всё в себе

  • простота — благодаря более низкому уровню абстрактности кода порог входа значительно ниже

  • все части ядра подогнаны, при необходимости пропатчены, и гарантированно работают вместе, это не просто набор произвольных библиотек, а единое функциональное целое




В сравнении с CMS:

  • из коробки никакой специфической функциональности, только ядро и больше ничего

  • как следствие добавляется только необходимая функциональность

  • как следствие более высокая скорость работы и меньше потребление памяти

  • так же выше гибкость — настраивается и хакается буквально всё

  • практически не существует вида сайта, который нельзя сделать из-за архитектурных ограничений

  • поддержка вещей более характерных для фреймворков, например подхватывается composer, есть Restful API




Сложность, избыточность






Мне всегда не нравились файлы вида:

Комментариев нет:

Отправить комментарий