Xpoint
   [напомнить пароль]

Проектирование CMF

Метки: [без меток]
2005-04-18 18:19:12 [обр] maklein[досье]

Буду писать CMF. Вопросы:

  1. Схемы. Есть ли в нете готовые схемы работы или кто-то может поделиться своими наработками, не обязательно в полном варианте. Сам я пришел к схеме: инициализатор грузит ядро(подключает настройки, стандартные методы), ядро загружает модули(предпроц. обработка, проц. обработка, постпросц. обработка), завершение работы. С загрузкой и завершение работы, я думаю, все понятно. Остановимся на ядре.
  2. Работа ядра состоит из трех этапов, но это настроиваемо:
  1. Предпроцессорный. Проверяем режим работы системы. Если, например, система держит более одного сайта, то выбор, какой сайт грузить. Ну и тому подобное.
  2. Процессорный. После этого грузим главный модуль, который получает данные, обрабатывает и выдает страницу.
  3. Постпроцессорный. Например, если мы загрузились режиме дебага, то пишем логи по отработке скрипто или их отдельных частей, в завис. от настройки.
  1. Стоит ли встраивать функции в само ядро или стоит сделать ядро исключитель средой работы без функционала как такового?

Что бы хотелось:

  1. Маштабируемость, т.е. само по себе ядро почти не влияет на производительность. Список модулей проекта к проекту изменяется, а ядро как таковое не меняется, это скорее среда для работы модулей.
  2. Отчужденность модулей, из не связанность друг с другом, т.е. связь между модулями не критична и не влияет на правильность работы системы. Например, модуль статистики будет работать и без модуля авторизации, но в случае наличия последнего, в стат. данные можно будет вкл. инф. о входах/выходах конкретных пользователей. И в этом же духе.
  • Если вы не согласны с моей реализацие или у вас она другая, то просьба давать ответ более развернуто, с комментариями.
спустя 18 минут [обр] maklein[досье]
  • Главный модуль, я думаю, модно назвать API
спустя 30 минут [обр] Сергей Сирик(7/737)[досье]
М Перенесено из форума "Программирование::Теория и алгоритмы"
спустя 14 часов [обр] Андрей Новиков(0/1242)[досье]
Совсем не модно.
  1. Это очень сильно зависит от языка, архитектуры платформы и будущих разрабатываемых с помощью Вашего CMF решений.
  2. Что такое "ядро", что такое "главный модуль"?
  3. Что вообще Вы пытаетесь написать? Что в Вашем понимании CMF? Какие цели он должен преследовать? У Вас есть свой опыт разработки тиражируемых систем? Вы изучали чужие CMF? Вы остановились на определенном языке программирования?
спустя 9 часов [обр] maklein[досье]
Предполагаемые требования.
  1. Язык PHP. Сервак Apache. Пардон, что не написал про это.
  2. Что я пытаюсь написать. Мне нужна CMS, хорошо маштабируемая и настраиваемая под нужды каждого проекта, так сазать "без воды лишней".Можно, конечно, такое реализовывать с помощью универсатьных систем, но это уже клепание сайтов, причем заведомо не очень качественных ИМХО. Поэтому мне нужен скорее конструктор CMS. CMF сооств. — это конструктор CMS в моем понимании для данного конкретного случая. Цели: ускорение разработки, возможность подключение др. программеров, т.е. стандартизация хорошая. Система нужна под внутрефирменные нужды. Ессно, система будет теститься и т.д. Чужые CMF я простматривал бегло, но, если честно, там очень все смутно для меня. Доки к половине я не нашел или нашел пресс-релизы скорее...
  3. Я примерно так хочу проектировать систему и жду критики и советов:
  1. Верхний уровень — Система. Имеет смысл выделять, если работает несколько сайтов(или ядер, см. ниже). Собсно, можно совместить с ядром, я поэтому и спрашиваю.
  2. Ядро — это ядро конкретного сайта. В моем понимании "ядро" — это среда для работы всего сайта, может быть, стандартный набор функционала. Я бы хотел разделить ялро и модули. Поэтому и задавал вопросу на эту тему выше.
  3. "Главный модуль" — это модуль, который ПОЛНОСТЬЮ отвечает за построение страницы и отдачу её пользователю.
спустя 8 минут [обр] maklein[досье]
ДА, может есть какие-то доки по вопросу,в нете только про Зоп нашел и по мелочам.
спустя 15 часов [обр] Андрей Брайнин(0/127)[досье]

при описании своих идей вы пользуетесь очень общими словами, в которых сложно за что-либо зацепиться и начать обсуждать.
чего критиковать/обсуждать, если вы неясно описываете и (складывается такое впечталение) плохо себе представляете вашу будущую систему?

P.S. очень схожие по манере изложения намерения уже декларировались ранее на xpoint (не вами ли?). по каким-то причинам конструктивного обсуждения не получилось и темы поудаляли.

спустя 2 часа 34 минуты [обр] Андрей Новиков(0/1242)[досье]
А как-же всеми любимый PHP-Nuke?
спустя 36 минут [обр] maklein[досье]

Система у меня работает примерно след. образом:


Система в моем описании--------------
-index.php
 |-Грузим конфиг
 |-Грузит ядро


Ядро---------------------------------
  |-Конфиг(Базовая конфигурация, использовать ли модули и т.п.)
  |-Стандартные функции(Работа с модулями, БД-Модуль и т.п.)
 |-Запуск ядра
  |-Предпроц.(Контроль версий и т.п.)
  |-Запуск "обработчика страницы"(Полностью отвечает за получение данных, их обработку и выдачу её пользователю)
  |-Постпроц. обработка(Запись статистики и т.п.)
|-Завершение работы.

====================
По-русски, что я хочу.
Для написания сайтов я хочу мне нужна CMS. Я скорее менеджер, чем программер, но с этим вроде все неплохо.
CMF, как я понимаю, скорее некая стандартизация для написания CMS, поэтому остановился на CMF. Вообще, я правильно понимаю значения?
Опыта написания CMS не было. Хочу заодно и опыт получить. Инфы по этому поводу нигде не нашел, ни в форумах, ни в Рамблере. На английском только доки к некоторым системам почитываю. В этом и проблема, негде почитать, приходится изобретать велосипед.
Собсно, CMF — это легко настраиваемая в любом плане CMS, т.е. не только модули можно подключать легко, но и, например, ввсести контроль версий или удалить его. Т.е. CMF — это стандартизация.
Писать буду один. Мануалом умею пользоваться, т.е. с технической стороны проблем быть не должно.
Самое главноре качество — маштабируемость. От него и надо отталкиваться. Можно написать большой корп. сайт с высокой функциональнорстью, несколькими режимами работы и т.д., а можно сайт средний руки с добавление новостей и т.п. несложными функциями.
Проблема — проектирование. Сейчас, видимо, начну писать "а там уж разберусь", раз уж никто ничего не говорит.
Если я опять написал общими словами и не конкретно, то поправьте меня и тыкните носом, плз., я только начинаю.
P.S. Я очень давно писал. И только про ЯваСкрипт и БД для сайта. Вроде, больше ничего не писал.
Заранее спасибо.

спустя 2 минуты [обр] maklein[досье]
Нюк - не маштабируем, т.е. подходит только для типовых сайтов. Несерьезно, имхо.
спустя 10 дней [обр] Merlin[досье]

Каких условий будет требовать Ваш CMF ?

Версия PHP, база ?

спустя 45 минут [обр] maklein[досье]
Если Вы имеете ввиду условия окружения, то PHP 4.3+ или можно расчит. на 5 версию, т.к. на хостингах с этим уже все нормально. База MySQL 3.23+. Ничего сверх ординарного использовать, вроде, не надо.
Powered by POEM™ Engine Copyright © 2002-2005