Нашел интересные мысли одного из разработчиков CMS:
"...
Итак
у сформировавшихся ядер самая большая проблема это их
усовершенствование.
и чем больше становится ядро тем труднее там чтото изменить.
изменить както принципиально.
помимо этого разрабатывая ядро водиночку нечего даже и мечтать о том чтобы "сеть и написать" ... совершенно очевидно что процесс растянется на месяцы.
и тут возниает очередная проблема.
ну если написать маленткое работающее ядрышко и пустить его в эксплуатацию... то потом современем понадобится напимер добавить аутентификацию.
или даже контороль доступа..
что тогда?..
переписывать?..
ни вкоем случае.
ядро с самого начала должо быть посорено так чтобы в далеком будущем моглобы в себя принять без какихбыто переделок.
любые сложности и усовершенствования.
итак закладывя ядро сейчас я думаю о том как потом оно будет поддерживать следующие навороты.
(порядок их следования не связан с их значимостью)
многосайтовость.
(это типа один и тотже скрипт но на него заведены разные домены и выдает он разные сайты ессесно.)
многоязычность
(гибкая , те на любю страницу или ветвь сайта можно произвольно навешивать разне языки, и разное их количество)
темплейты
(тоже самое.. любая страница со своим темплейтом, наследование темплейта от старешей страницы, перегрузка темплетйа... итп. )
модули сайта.
(совмесный вызов одного или нескольких модулей в зависимости от ветви сайта... тоже гибкий как и в пердыдущих примерах)
полный аудит деятельности администрации
(об этом я уже говорил)
система конторля действий
(это например ктото отредактрировал, сохранил... но на сайте ничего не поменялось пока старший по званию не подтвердит новую версию)
аутентификация юзеров.
(разными спсобами)
8.система безопаснсти
(о... это отдельный и большой разговор. в кратце.. защита от перебора, "файрволл" входящих данных, контроль прав доступа к модулям, контороль прав на исплнение команд...., конторль прав на доступ к ветвям сайта, и отдельным страничкам... итд... )
тестовый режим работы.
(это когда можно сделать изменения и посмотреть как это реально будет выглядеть на сайте.. и только потом перенести изменения на сайт)
контороль сессий .. и сам механизм сесий.
(кто что делает, делал,и где смотрит.... с возможностью пнуть человека =)
SSL странички
(можно указать что некая ветвь сайта(или страничка(например логин)) доступна только по SSL ..должно быть гибко.. хоть каждой страничке по своему отдельному серверу. )
версионинг!.. ну кудаж без него?.. =)
Drag-N-Drop интерфейс...
(О ДА!... делфи выступет во всей красе...
интерфейс админки будет несравнимо лучше и удобнее чем любая страничка!..
куда уж тягаться DHTML супротив VCL? ... =). )
обязательно должны быть красивые урлы...
только! только! только! правильный урлы!!!...
никаких "\?id=123&from=1&to=100&func=view"
такие урлы только в помойку!...
должно быть так и не иначе...
/section-name/items-listing-1-to-100.html
или
/guestbook/page_3.html
должен быть WYSIWYG редактор...
ну этотоже теперь не проблема.. делфи рулит.
система отката действий.
группы юзеров с уровнями доступа юзеров.
(все должно быть редактируемое...ничего прошитого намертво.! )
контороль сопутствующих файлов.
(недолжно быть бесхозных JPG, PDF , ... и прочей медии.. если файл есть на жеском диске ... это значит что CMS знает какому документу принадлежит этот файл.... иначе будет хламовник!. )
вывод контента по расписанию
(вывод-скрытие по расписанию.... это стандартно... я пойду немного дальше... будет не просто публикация по расписанию... а вобще любое управление сайтом по расписанию... поскольку как я уже говорил будет журнал комманд которые можно как сценарии проигрывать ... то можно будет автоматизировать это проигрывание команд(любх))
20 возможность онлайн администрирования.
(несмотря на клиента-exe всеравно можно будет вносить исправления прямо онлайн. если хозяин сайта увидел опечатку в контенте.то он обязательно сможет войти в администратиывный режим прямо в браузере... ну проще говоря будет типа WIKI(с возможностью отката по версиям.. а то вдруг он нечайно запорит))
"мусорная корзина" ...
ну вобщем .. чтобы ничто не проподало безвозвратно...
я думаю система версионинга прекрасно выполнит эту функцию.
статистика полюбому должна быть встроена.
когданибуть в свободное время надо будет прикрутить RSS
CMS должна быть расчитана на применение любых кодировок.
(ну ту главый запор с UTF и не UTF )
маштабируемость
(сайт будет прекрасно себя чувствовать и без базы данных... ну нафиг база если у чувака всего 10 страниц?... и при этом все будет хорошо работать... (как именно это реализовано я потом расскажу)...)
ссылки на контент
(ну это чтото вроде символиеской ссылки, когда физически элемент один..а показывается в разных местах... без копирования)
расширяемость свойст
(очень интересная тема!... например она охватывает такие проблемы как свойства пользователей.. нунапример их данные... бывет что надо только логин и пароль с емайлом .. а иногда надо держать кучу полей.. с данными на каждого пользователя...
и так со многими вещами.. напримр статьи.. на одном сайте нужно хранить свединия кто автор.. а на другом надо хранить дату публикаци....
всех вареантов не учтешь... а создавать огромные мнгополевые таблицы- не выход...
НО ЕСТЬ ОЧЕНЬ КРАСИВОЕ И МОЩНОЕ РЕШЕНИЕ..
я ещё расскажу про то как "убить" проблему расширяемых свойст на корню. )
28 улучшенное кеширование(помимо простого)
(улучшенное это не просто кеширование всей страницы... это кеширование работы отдельных компонент... ну напимер можно меню отдельно закешить... отдельно ленту новостей.. итп. )
29 проблемы распределения нагрузки на разные БД и на разные WEB серверы
(в этой версии CMS я не буду касаться этих проблем.)
это конечно основные и принципапиальные но далеко не все моменты которых придется коснуться во время работы...
это .. скорее вопросы которые влияют на архитектуру CMS
поэтому я не написал про такие вещи как поисковик, управление контентом, голосовалки, и прочие подобные штуки ...
потому что это уже другой уровень...уровень компонент а не самой системы..."
Может что убить или добавить?