iCore - бесплатный движок социальной сети

Вы не представились. Зарегистрироваться.
восстановить пароль
Карма блога:
7,24

Процесс разработкиБлог «Процесс разработки» (7)

Что сделано, что делаться и когда будет новая сборка - все в этом блоге.

Архитектура ядра. Вступление

Наконец я добрался до этой статьи, а это значит что ядро практически готово. С опозданием, конечно, но все же.

Итак поговорим немного про архитектуру и идеологию.

Идея написать ядро появилась много лет назад, когда я еще не программировал на PHP, а целые дни проводил в написании программ на Asm, C++ и Delphi. В это время я увлекся Perl — это был единственный язык программирования, который связывал мою деятельность с Internet.

Семья у меня была не из богатых, и конечно желание заработать на своих продуктах возникла очень рано. И тут возникли определенные проблемы — каждый клиент постоянно хотел что-то эксклюзивное.

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

  1. Программа должна состоять из расширений и легкого ядра
  2. Расширения должны инкапсулировать законченный функционал и быть законченной и независимой единицей
  3. Расширения должны привносить новый функционал, расширять или модифицировать старый
  4. Ядро должно загружать только необходимые расширения или только используемые в текущем решении.
  5. Ядро должно уметь легко подключать и отключать расширения "на лету"
  6. Расширения должны уметь обходить без функционала из других расширений (что бы обеспечить независимость)


Очень похоже на плагиновую систему. Достигать этих целей можно используя разные шаблоны проектирования. Так ядро изначально писалось на Delphi и в качестве ядра использовался суперглобальный реестр (Dependency Lookup), то в PHP добавилась инверсия зависимостей (Dependency Injection).

Что же позволяет такая архитектура ядра?

- Накапливать опыт разработки в виде расширений (готовой функциональности)
- Писать все законченными модулями (формировать функциональность в одном месте)
- Легко менять части системы или переписывать отдельные расширения затрагивая только необходимую часть системы
- Более простая совместная разработка
- Расширять функциональность или менять поведения системы за счет доработки дополнительных расширений.

Стоит также сказать что упор делаться на разработку через конфигурирование (здесь может выступать скриптовой язык или система конфигурации).

Цели - легко собирать продукт под текущую задачу с минимальным необходимым набором расширений, готовый к легкой модификации по требованию, но обладающий при этом высоким быстродействием.

В php — это кодогенерация и сборка проекта в один рабочий файл, то есть на этапе разработки ядро работает "в полную силу" — загружает, парсит, генерирует файлы ORM ... и т.д. Но на боевом сервере работает собранный проект с только необходимыми пакетами.





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

Vasya    17.03.2009 10:57# +3

А я уже думал проект давно утонул с камнем на шее.

Иван    18.03.2009 07:59# +1

Проект живой, просто не получается уделять ему столько времени, сколько хочется

netnikogo    19.03.2009 18:58# +3

Вы же создали svn http://code.assembla.com/icore/subversion/nodes
выкладывайте хотя бы туда уже созданное, а мы бы тестили )

Evgeniy    23.04.2009 02:28# +1

Приветствую Иван,
очень интересует, будет ли новая версия icore cms, давно жду и когда.
на самом деле из всех предложенных аналогичных цмс, у вас более продуманная и легкая в использовании, возможно ли хотя бы выложить новую версию как есть?

С уважением, Евгений.
если не затруднит, напишите ответ пожалуйста

Иван    23.04.2009 06:52# +2

Уважаемый Евгений.

Новая версия iCore пишется и планируется к выпуску. К сожалению я не в состоянии заниматься полноценно разработкой этого проекта в силу определенных обстоятельств.

Но у меня есть определенные успехи. Выкладывать неполные версии я не могу — такой у меня характер.

Назвать точные сроки релиза я не могу. Но я хочу построить свой небольшой бизнес на основе OpenSource iCore — тогда точные сроки релизов будут называться обязательно.

Спасибо за понимание
С уважением,
Иван
Вы не можете обсуждать рецепты. Для этого необходимо авторизоваться или зарегистрироваться.

С вами на этой странице ↓

1 гостей сайта