<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Комментарии на сайте Boolive!</title>
	<atom:link href="http://boolive.ru/comments/feed" rel="self" type="application/rss+xml" />
	<link>http://boolive.ru</link>
	<description>Создание гибкой системы управления сайтом</description>
	<lastBuildDate>Wed, 16 May 2012 18:18:44 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>Комментарий к записи Ядро CMS (Владимир)</title>
		<link>http://boolive.ru/createcms/cms-engine#comment-538</link>
		<dc:creator>Владимир</dc:creator>
		<pubDate>Wed, 16 May 2012 18:18:44 +0000</pubDate>
		<guid isPermaLink="false">http://boolive.ru/?p=738#comment-538</guid>
		<description>Про htaccess вопрос закроем, ЧПУ есть, всё как вы хотите. 

Модули реализуются в виде классов. Ядро является модулем, так как требуются для него особенности модуля. Конфигурация в файле конфигурации, так как у многих уже наметан глаз на файлы с названиями config. Если конфиг засунуть в index, то это не добавит ясности, так как смешается с логикой. Конфигом определяются директории модулей ядра (движка) и модулей проекта. Это конфигурация не того и не другого, это конфиг для запуска движка. Там далее каждый модуль позаботится уже о своих настройках сам, в том числе и ядро (правда у ядра нет настроек). Кроме того, никакого значения для архитектуры нет, где находится конфигурация.

Единственная мелкая проблемка, с которой соглашусь – малая информативность файла index.php. Но это незначительная мелочь ради унификации всей логики системы. 

Модули могут общаться так, как это требуется для решения задач. Напрямую, через события, через другие отношения. Ядро не навязывает архитектуру этих взаимоотношений, а создаёт условия для их удобного применения.</description>
		<content:encoded><![CDATA[<p>Про htaccess вопрос закроем, ЧПУ есть, всё как вы хотите. </p>
<p>Модули реализуются в виде классов. Ядро является модулем, так как требуются для него особенности модуля. Конфигурация в файле конфигурации, так как у многих уже наметан глаз на файлы с названиями config. Если конфиг засунуть в index, то это не добавит ясности, так как смешается с логикой. Конфигом определяются директории модулей ядра (движка) и модулей проекта. Это конфигурация не того и не другого, это конфиг для запуска движка. Там далее каждый модуль позаботится уже о своих настройках сам, в том числе и ядро (правда у ядра нет настроек). Кроме того, никакого значения для архитектуры нет, где находится конфигурация.</p>
<p>Единственная мелкая проблемка, с которой соглашусь – малая информативность файла index.php. Но это незначительная мелочь ради унификации всей логики системы. </p>
<p>Модули могут общаться так, как это требуется для решения задач. Напрямую, через события, через другие отношения. Ядро не навязывает архитектуру этих взаимоотношений, а создаёт условия для их удобного применения.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Комментарий к записи Ядро CMS (Александр)</title>
		<link>http://boolive.ru/createcms/cms-engine#comment-537</link>
		<dc:creator>Александр</dc:creator>
		<pubDate>Wed, 16 May 2012 16:42:50 +0000</pubDate>
		<guid isPermaLink="false">http://boolive.ru/?p=738#comment-537</guid>
		<description>Если вы делаете поддержку ЧПУ (а это уже стандарт), то htaccess обязателен при любом раскладе, если вы конечно не хотите прекомпилировать сайт в статику, но это отдельная история.

По-поводу &quot;мы не должны конфигурировать ядро, редактируя ядро&quot;, в моем варианте файл ядра не редактируется, а изменяются свойства проекта (это данные!), которые автоматом определяются в файле ядра. Но это уже детали.

По-поводу &quot;ясности&quot; и &quot;изучения часами кода&quot;, то это мне видится надуманной проблемой. Не вижу проблемы просмотреть алгоритм в файле ядра и сразу понять логику отображения страницы, когда там есть нормальные комментарии (это конечно в идеале так должно быть). В вашей текущей реализации в файле index.php всего пара подключений и вызов - как раз это и не вносит ясности и не объясняет алгоритм (работу). Единственное что ясно, это что чтобы понять систему надо изучать вглубь другие файлы, классы и т.д. Получается что у вас почти пустой файл ни о чем не говорящий. А значит это нагромождение.

Понятно, что вы пытаетесь реализовать унификацию и как стремление это конечно правильно. Просто речь идет о форме реализации этой унификации. Можно сделать это на уровне стандарта оформления исходных кодов модулей и всё, без необходимости создания контроллера (функции централизации обмена данными между модулями). Я за то, чтобы модули общались между собой НАПРЯМУЮ, миную какой-либо контроллер. Это значительно упрощает логику архитектуры системы. Если вы найдете аргументы против такого подхода, с удовольствием ознакомлюсь с ними.</description>
		<content:encoded><![CDATA[<p>Если вы делаете поддержку ЧПУ (а это уже стандарт), то htaccess обязателен при любом раскладе, если вы конечно не хотите прекомпилировать сайт в статику, но это отдельная история.</p>
<p>По-поводу &#171;мы не должны конфигурировать ядро, редактируя ядро&#187;, в моем варианте файл ядра не редактируется, а изменяются свойства проекта (это данные!), которые автоматом определяются в файле ядра. Но это уже детали.</p>
<p>По-поводу &#171;ясности&#187; и &#171;изучения часами кода&#187;, то это мне видится надуманной проблемой. Не вижу проблемы просмотреть алгоритм в файле ядра и сразу понять логику отображения страницы, когда там есть нормальные комментарии (это конечно в идеале так должно быть). В вашей текущей реализации в файле index.php всего пара подключений и вызов &#8212; как раз это и не вносит ясности и не объясняет алгоритм (работу). Единственное что ясно, это что чтобы понять систему надо изучать вглубь другие файлы, классы и т.д. Получается что у вас почти пустой файл ни о чем не говорящий. А значит это нагромождение.</p>
<p>Понятно, что вы пытаетесь реализовать унификацию и как стремление это конечно правильно. Просто речь идет о форме реализации этой унификации. Можно сделать это на уровне стандарта оформления исходных кодов модулей и всё, без необходимости создания контроллера (функции централизации обмена данными между модулями). Я за то, чтобы модули общались между собой НАПРЯМУЮ, миную какой-либо контроллер. Это значительно упрощает логику архитектуры системы. Если вы найдете аргументы против такого подхода, с удовольствием ознакомлюсь с ними.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Комментарий к записи Ядро CMS (Владимир)</title>
		<link>http://boolive.ru/createcms/cms-engine#comment-536</link>
		<dc:creator>Владимир</dc:creator>
		<pubDate>Wed, 16 May 2012 15:44:01 +0000</pubDate>
		<guid isPermaLink="false">http://boolive.ru/?p=738#comment-536</guid>
		<description>htaccess имеется, он заменяем, если потребуется работа на другом сервере. Если и считать его частью ядра, то отделяемой. Та же ситуация с файлом конфигурации – мы не должны конфигурировать ядро, редактируя ядро. Поэтому конфигурация отделена в файл. 
А логика ядра вынесена из Index.php по двум причинам. Во-первых, для ясности. Часто приходится наблюдать index файлы, откроешь которые и часами исследуешь, что же происходит. А тут всё просто, подключили конфиг, запустили ядро. И логика ядра не требует глубокого последовательного изучения, сразу видно, где инициализация, где работа, где вспомогательные операции. Во-вторых, реализуя ядро как модуль, применяем плюсы унификации. Например, у ядра реализованы методы установки, такие же, как у всех модулей. Кто должен проверить условия установки ядра?

Обоснование всему унификация и ясность.</description>
		<content:encoded><![CDATA[<p>htaccess имеется, он заменяем, если потребуется работа на другом сервере. Если и считать его частью ядра, то отделяемой. Та же ситуация с файлом конфигурации – мы не должны конфигурировать ядро, редактируя ядро. Поэтому конфигурация отделена в файл.<br />
А логика ядра вынесена из Index.php по двум причинам. Во-первых, для ясности. Часто приходится наблюдать index файлы, откроешь которые и часами исследуешь, что же происходит. А тут всё просто, подключили конфиг, запустили ядро. И логика ядра не требует глубокого последовательного изучения, сразу видно, где инициализация, где работа, где вспомогательные операции. Во-вторых, реализуя ядро как модуль, применяем плюсы унификации. Например, у ядра реализованы методы установки, такие же, как у всех модулей. Кто должен проверить условия установки ядра?</p>
<p>Обоснование всему унификация и ясность.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Комментарий к записи Ядро CMS (Александр)</title>
		<link>http://boolive.ru/createcms/cms-engine#comment-535</link>
		<dc:creator>Александр</dc:creator>
		<pubDate>Wed, 16 May 2012 14:17:46 +0000</pubDate>
		<guid isPermaLink="false">http://boolive.ru/?p=738#comment-535</guid>
		<description>Слишком серьезный вопрос вы задаете, чтобы взять так и ответить на него за пару минут. Та функциональность, которую я привел, это только часть от базовой.

Точно могу сказать, что в вашей схеме я полностью согласен с человечком, стрелочкой &quot;запрос-ответ&quot;, и файлом index.php =) Хотя если быть дальновиднее, то вызов index.php должен осуществляться через файл htaccess. Еще начальную инициализацию config.php я бы включил как часть index.php и заменил на простое получение свойств проекта (его настроек mysql, текущей темы оформления и т.д.).

В моём понимании ядро - это файл (index.php + htaccess), который относится к конкретному проекту (сайту) и реагирует на HTTP-запросы отображая страницу со включенными в неё сниппетами, с учетом текущей темы оформления и т.д., а также выдавая код ошибки если требуется. Вот собственно и всё. То есть ядро - это никакой не главный модуль и вообще не модуль. Это просто стартер содержащий линейный алгоритм, в процессе которого вызываются функции от базовых функциональностей (на то они и базовые). То есть блок engine в схеме вообще не нужен.</description>
		<content:encoded><![CDATA[<p>Слишком серьезный вопрос вы задаете, чтобы взять так и ответить на него за пару минут. Та функциональность, которую я привел, это только часть от базовой.</p>
<p>Точно могу сказать, что в вашей схеме я полностью согласен с человечком, стрелочкой &#171;запрос-ответ&#187;, и файлом index.php =) Хотя если быть дальновиднее, то вызов index.php должен осуществляться через файл htaccess. Еще начальную инициализацию config.php я бы включил как часть index.php и заменил на простое получение свойств проекта (его настроек mysql, текущей темы оформления и т.д.).</p>
<p>В моём понимании ядро &#8212; это файл (index.php + htaccess), который относится к конкретному проекту (сайту) и реагирует на HTTP-запросы отображая страницу со включенными в неё сниппетами, с учетом текущей темы оформления и т.д., а также выдавая код ошибки если требуется. Вот собственно и всё. То есть ядро &#8212; это никакой не главный модуль и вообще не модуль. Это просто стартер содержащий линейный алгоритм, в процессе которого вызываются функции от базовых функциональностей (на то они и базовые). То есть блок engine в схеме вообще не нужен.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Комментарий к записи Ядро CMS (Владимир)</title>
		<link>http://boolive.ru/createcms/cms-engine#comment-534</link>
		<dc:creator>Владимир</dc:creator>
		<pubDate>Wed, 16 May 2012 13:01:16 +0000</pubDate>
		<guid isPermaLink="false">http://boolive.ru/?p=738#comment-534</guid>
		<description>Скажите, что конкретно вас смущает в организации ядра, если за функциональность возьмете свои желания?</description>
		<content:encoded><![CDATA[<p>Скажите, что конкретно вас смущает в организации ядра, если за функциональность возьмете свои желания?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Комментарий к записи Ядро CMS (Александр)</title>
		<link>http://boolive.ru/createcms/cms-engine#comment-533</link>
		<dc:creator>Александр</dc:creator>
		<pubDate>Wed, 16 May 2012 12:41:50 +0000</pubDate>
		<guid isPermaLink="false">http://boolive.ru/?p=738#comment-533</guid>
		<description>Функциональность - это база и ПРИЧИНА всего. Пока её нет, не будут видны и причинно-следственные связи, а следовательно все ваши архитектуры и модульности не будут иметь никакого смысла, то есть будут вырваны из контекста :)</description>
		<content:encoded><![CDATA[<p>Функциональность &#8212; это база и ПРИЧИНА всего. Пока её нет, не будут видны и причинно-следственные связи, а следовательно все ваши архитектуры и модульности не будут иметь никакого смысла, то есть будут вырваны из контекста <img src='http://boolive.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Комментарий к записи Ядро CMS (Владимир)</title>
		<link>http://boolive.ru/createcms/cms-engine#comment-532</link>
		<dc:creator>Владимир</dc:creator>
		<pubDate>Wed, 16 May 2012 12:25:28 +0000</pubDate>
		<guid isPermaLink="false">http://boolive.ru/?p=738#comment-532</guid>
		<description>Действительно, я не рассказал всем про задуманную функциональность. Она хоть и размазана свойством расширяемости, всё же имеет в голове четкие представления, и от неё строится архитектура. Хотел преподнести функциональность в виде сюрприза :)</description>
		<content:encoded><![CDATA[<p>Действительно, я не рассказал всем про задуманную функциональность. Она хоть и размазана свойством расширяемости, всё же имеет в голове четкие представления, и от неё строится архитектура. Хотел преподнести функциональность в виде сюрприза <img src='http://boolive.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Комментарий к записи Ядро CMS (Александр)</title>
		<link>http://boolive.ru/createcms/cms-engine#comment-531</link>
		<dc:creator>Александр</dc:creator>
		<pubDate>Wed, 16 May 2012 11:21:26 +0000</pubDate>
		<guid isPermaLink="false">http://boolive.ru/?p=738#comment-531</guid>
		<description>Я уже писал ранее, что вижу первоначальной задачей не реализацию модульной архитектуры и ядра, а логичное описание базовых функциональностей системы. В результате у вас бы имелось описание ряда частных случаев функциональностей системы, и уже на основе анализа этих частностей вы смогли бы выделить универсальные (общие) свойства функциональностей и далее уже придумать программное воплощение единицы (модуля) системы. В этом случае у вас было бы обоснование того, почему модульность реализована именно так, а не иначе.

Я бы вам порекомендовал отмотать немного назад ваши рассуждения, и написать статью о планируемой функциональности системы (хотя бы базовой части, при этом все равно желательно в кратце описать перспективы расширения функциональностей).

Чтобы не быть голословным, приведу пример описания по методу от общего к частному:

1. Система &quot;CMS&quot;
.	&#124;__ Свойства
.	.	name - наименование системы
.	.	version - версия системы
.	.	...
1.1. Функциональность &quot;Проекты&quot;
.	&#124;__ Объект &quot;Проект&quot;
.	.	&#124;__ Свойства
.	.	.	id - идентификатор проекта (сайта)
.	.	.	name - имя проекта
.	.	.	uri - абсолютный URI проекта на сервере
.	.	.	mysql_host - адрес сервера БД (host)
.	.	.	mysql_username - логин пользователя БД (username)
.	.	.	mysql_password - пароль пользователя БД (password)
.	.	.	mysql_basename - имя БД (basename) 
.	.	.	mysql_prefix - префикс имен таблиц БД 
.	.	.	php_error_reporting - уровень вывода ошибкок PHP
.	.	.	fg_log - режим ведения логов
.	.	.	...
.	.	&#124;__ Файлы
.	.	.	robots.txt
.	.	&#124;__ Функции
.	.	.	create - создание проекта (сайта)
.	.	.	select - получение свойств проекта
.	.	.	update - обновление свойств проекта
.	.	.	robots_read - получение текста файла robots.txt
.	.	.	robots_write - сохранение текста файла robots.txt
.	.	.	delete - удаление проекта 
.	.	.	...
.	.	&#124;__ Графический интерфейс администрирования
.	.	.	меню выбора текущего проекта
.	.	.	пункт меню &quot;Проекты&quot;
.	.	.	экран управление списком проектов
.	.	.	экран редактирования свойств проекта
.	.	.	...
1.1.1. Функциональность &quot;Тема оформления&quot;
.	&#124;__ Объект &quot;Тема оформления&quot;
.	.	&#124;__ Свойства
.	.	.	id - идентификатор темы оформления
.	.	.	name - имя темы оформления
.	.	.	...
.	.	&#124;__ Файлы
.	.	.	/files/ - директория общих файлов
.	.	.	/favicon/ - директория файла иконки проекта
.	.	&#124;__ Функции
.	.	.	create
.	.	.	set - назначение темы формления по умолчанию
.	.	.	select 
.	.	.	update
.	.	.	delete
.	.	.	...
.	.	&#124;__ Графический интерфейс администрирования
.	.	.	...
1.1.2. Функциональность &quot;Страницы&quot;
...
1.1.3. ...</description>
		<content:encoded><![CDATA[<p>Я уже писал ранее, что вижу первоначальной задачей не реализацию модульной архитектуры и ядра, а логичное описание базовых функциональностей системы. В результате у вас бы имелось описание ряда частных случаев функциональностей системы, и уже на основе анализа этих частностей вы смогли бы выделить универсальные (общие) свойства функциональностей и далее уже придумать программное воплощение единицы (модуля) системы. В этом случае у вас было бы обоснование того, почему модульность реализована именно так, а не иначе.</p>
<p>Я бы вам порекомендовал отмотать немного назад ваши рассуждения, и написать статью о планируемой функциональности системы (хотя бы базовой части, при этом все равно желательно в кратце описать перспективы расширения функциональностей).</p>
<p>Чтобы не быть голословным, приведу пример описания по методу от общего к частному:</p>
<p>1. Система &#171;CMS&#187;<br />
.	|__ Свойства<br />
.	.	name &#8212; наименование системы<br />
.	.	version &#8212; версия системы<br />
.	.	&#8230;<br />
1.1. Функциональность &#171;Проекты&#187;<br />
.	|__ Объект &#171;Проект&#187;<br />
.	.	|__ Свойства<br />
.	.	.	id &#8212; идентификатор проекта (сайта)<br />
.	.	.	name &#8212; имя проекта<br />
.	.	.	uri &#8212; абсолютный URI проекта на сервере<br />
.	.	.	mysql_host &#8212; адрес сервера БД (host)<br />
.	.	.	mysql_username &#8212; логин пользователя БД (username)<br />
.	.	.	mysql_password &#8212; пароль пользователя БД (password)<br />
.	.	.	mysql_basename &#8212; имя БД (basename)<br />
.	.	.	mysql_prefix &#8212; префикс имен таблиц БД<br />
.	.	.	php_error_reporting &#8212; уровень вывода ошибкок PHP<br />
.	.	.	fg_log &#8212; режим ведения логов<br />
.	.	.	&#8230;<br />
.	.	|__ Файлы<br />
.	.	.	robots.txt<br />
.	.	|__ Функции<br />
.	.	.	create &#8212; создание проекта (сайта)<br />
.	.	.	select &#8212; получение свойств проекта<br />
.	.	.	update &#8212; обновление свойств проекта<br />
.	.	.	robots_read &#8212; получение текста файла robots.txt<br />
.	.	.	robots_write &#8212; сохранение текста файла robots.txt<br />
.	.	.	delete &#8212; удаление проекта<br />
.	.	.	&#8230;<br />
.	.	|__ Графический интерфейс администрирования<br />
.	.	.	меню выбора текущего проекта<br />
.	.	.	пункт меню &#171;Проекты&#187;<br />
.	.	.	экран управление списком проектов<br />
.	.	.	экран редактирования свойств проекта<br />
.	.	.	&#8230;<br />
1.1.1. Функциональность &#171;Тема оформления&#187;<br />
.	|__ Объект &#171;Тема оформления&#187;<br />
.	.	|__ Свойства<br />
.	.	.	id &#8212; идентификатор темы оформления<br />
.	.	.	name &#8212; имя темы оформления<br />
.	.	.	&#8230;<br />
.	.	|__ Файлы<br />
.	.	.	/files/ &#8212; директория общих файлов<br />
.	.	.	/favicon/ &#8212; директория файла иконки проекта<br />
.	.	|__ Функции<br />
.	.	.	create<br />
.	.	.	set &#8212; назначение темы формления по умолчанию<br />
.	.	.	select<br />
.	.	.	update<br />
.	.	.	delete<br />
.	.	.	&#8230;<br />
.	.	|__ Графический интерфейс администрирования<br />
.	.	.	&#8230;<br />
1.1.2. Функциональность &#171;Страницы&#187;<br />
&#8230;<br />
1.1.3. &#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Комментарий к записи Ядро CMS (Владимир)</title>
		<link>http://boolive.ru/createcms/cms-engine#comment-530</link>
		<dc:creator>Владимир</dc:creator>
		<pubDate>Wed, 16 May 2012 10:09:13 +0000</pubDate>
		<guid isPermaLink="false">http://boolive.ru/?p=738#comment-530</guid>
		<description>Хорошо, обсудим другие варианты?</description>
		<content:encoded><![CDATA[<p>Хорошо, обсудим другие варианты?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Комментарий к записи Ядро CMS (Александр)</title>
		<link>http://boolive.ru/createcms/cms-engine#comment-529</link>
		<dc:creator>Александр</dc:creator>
		<pubDate>Wed, 16 May 2012 09:23:39 +0000</pubDate>
		<guid isPermaLink="false">http://boolive.ru/?p=738#comment-529</guid>
		<description>Получился очередной монстр заложника стериотипов программирования. Нет простоты и логичности. Вы же не искусственный интеллект тут разрабатываете, а просто CMS. Если вы сами для себя попытаетесь обосновать почему сделано именно так, а не иначе по каждому блоку в схеме, то вы придете к тому, что это все надо делать по-другому.</description>
		<content:encoded><![CDATA[<p>Получился очередной монстр заложника стериотипов программирования. Нет простоты и логичности. Вы же не искусственный интеллект тут разрабатываете, а просто CMS. Если вы сами для себя попытаетесь обосновать почему сделано именно так, а не иначе по каждому блоку в схеме, то вы придете к тому, что это все надо делать по-другому.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

