2NetFly
-
Концепции современной СУК
Продолжительное время интересуюсь системами управления контентом, впервые опробовал свои силы в данном направлении около 4,5 лет назад, когда соорудил процедурное подобие CMS на перле. Спустя некоторое время появились наработки ООП системы, началось знакомство с HTML::Template, TT, lxp, Mason и прочими популярными в то время разработками. Все время работа велась не над CMS, как таковой, а над неким инструментом, позволяющим создавать веб-приложения любого уровня сложности (в том числе и CMS).
В данном топике хотелось бы обсудить вопросы, связанные с СУК, а так же обменяться опытом с людьми, которые занимаются разработкой подобных приложений.
Для начала я хотел бы поговорить о недостатках современных СУК и поделиться своим мнением по этому поводу. Итак недостатки:
1. Попытка создать систему, которая "проста и доступна для использования человеку, не знакомому с программированием". Как следствие, чрезмерное акцентирование внимания на разработке средств инсталляции, "интуитивно понятных редакторов и интерфейса", преднамеренное упрощение системы за счет лишения ее функциональности.
2. Проектирование и разработка не с того конца (сам так ошибался), т.е. первоочередное решение таких второстепенных задач, как поддержка многоязычности, стилей, тем и т.д.
3. Недостаточная гибкость и скудные возможности кастомизации. Зачастую действует следующая схема: страница делится на пять частей (шапка, низ, левая часть, правая часть, основная часть). Каждый модуль предоставляет ограниченное количество экшенов (например, для новостей: список новостей, страница новости, архив новостей), а так же набор блоков, которые могут быть размещены в левой или правой части страницы. Для каждого экшена существует набор настроек, позволяющий в некоторой степени управлять основной частью страницы (например, для списка новостей указать количество оных). В продвинутых системах для каждого экшена можно настроить список отображаемых в левой и правой части блоков, их порядок, применить уникальные для каждого экшена настройки. На этом кастомизация зачастую заканчивается. Даже такая банальная задача, как вывод двух одинаковых блоков с разным дизайном на одной странице порой становится реализуема только после перекапывания кода.
4. Полная зависимость модулей друг от друга, когда этого не нужно, и невозможность интеграции модулей между собой там, где в этом действительно возникает необходимость.
Это только малая часть того, о чем можно написать.
Свое виденье системы я вкратце описал в данной теме в 16 сообщении: http://phpclub.ru/talk/showthread.php?s=&threadid=58641#post404069 .
Продолжительное время интересуюсь системами управления контентом, впервые опробовал свои силы в данном направлении около 4,5 лет назад, когда соорудил процедурное подобие CMS на перле. Спустя некоторое время появились наработки ООП системы, началось знакомство с HTML::Template, TT, lxp, Mason и прочими популярными в то время разработками. Все время работа велась не над CMS, как таковой, а над неким инструментом, позволяющим создавать веб-приложения любого уровня сложности (в том числе и CMS).
В данном топике хотелось бы обсудить вопросы, связанные с СУК, а так же обменяться опытом с людьми, которые занимаются разработкой подобных приложений.
Для начала я хотел бы поговорить о недостатках современных СУК и поделиться своим мнением по этому поводу. Итак недостатки:
1. Попытка создать систему, которая "проста и доступна для использования человеку, не знакомому с программированием". Как следствие, чрезмерное акцентирование внимания на разработке средств инсталляции, "интуитивно понятных редакторов и интерфейса", преднамеренное упрощение системы за счет лишения ее функциональности.
2. Проектирование и разработка не с того конца (сам так ошибался), т.е. первоочередное решение таких второстепенных задач, как поддержка многоязычности, стилей, тем и т.д.
3. Недостаточная гибкость и скудные возможности кастомизации. Зачастую действует следующая схема: страница делится на пять частей (шапка, низ, левая часть, правая часть, основная часть). Каждый модуль предоставляет ограниченное количество экшенов (например, для новостей: список новостей, страница новости, архив новостей), а так же набор блоков, которые могут быть размещены в левой или правой части страницы. Для каждого экшена существует набор настроек, позволяющий в некоторой степени управлять основной частью страницы (например, для списка новостей указать количество оных). В продвинутых системах для каждого экшена можно настроить список отображаемых в левой и правой части блоков, их порядок, применить уникальные для каждого экшена настройки. На этом кастомизация зачастую заканчивается. Даже такая банальная задача, как вывод двух одинаковых блоков с разным дизайном на одной странице порой становится реализуема только после перекапывания кода.
4. Полная зависимость модулей друг от друга, когда этого не нужно, и невозможность интеграции модулей между собой там, где в этом действительно возникает необходимость.
Это только малая часть того, о чем можно написать.
Свое виденье системы я вкратце описал в данной теме в 16 сообщении: http://phpclub.ru/talk/showthread.php?s=&threadid=58641#post404069 .