<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>FLEXible блог - Архитектура</title>
    <link>http://baron.su/</link>
    <description>Жизнь. Берсерк. Работа. Дневник программиста</description>
    <dc:language>ru</dc:language>
    <generator>Serendipity 1.3 - http://www.s9y.org/</generator>
    <pubDate>Wed, 18 Aug 2010 04:17:30 GMT</pubDate>

    <image>
        <url>http://baron.su/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: FLEXible блог - Архитектура - Жизнь. Берсерк. Работа. Дневник программиста</title>
        <link>http://baron.su/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>PHP фреймворки: сравнение Yii, Kohana (KO3), CodeIgniter (CI), OnPHP, Symfony2</title>
    <link>http://baron.su/archives/272-PHP_frejmvorki_sravnenie_Yii,_Kohana_KO3,_CodeIgniter_CI,_OnPHP,_Symfony2.html</link>
            <category>PROJECTS</category>
            <category>Архитектура</category>
            <category>Программирование</category>
    
    <comments>http://baron.su/archives/272-PHP_frejmvorki_sravnenie_Yii,_Kohana_KO3,_CodeIgniter_CI,_OnPHP,_Symfony2.html#comments</comments>
    <wfw:comment>http://baron.su/wfwcomment.php?cid=272</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://baron.su/rss.php?version=2.0&amp;type=comments&amp;cid=272</wfw:commentRss>
    

    <author>nospam@example.com (Балькин Руслан)</author>
    <content:encoded>
    &lt;p&gt;И снова извечный вопрос выбора. В наше героическое время PHP-фреймворков – хоть жопой жуй. В планах реализация нового проекта (точнее, первый этап – реализация движка для нескольких новых проектов), соответственно в который раз встает вопрос выбора.&lt;/p&gt;  &lt;p&gt;Фреймворки рассматриваются с разных позиций, а именно:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Легкость создания нового проекта, чтения и поиска документации &lt;/li&gt;    &lt;li&gt;Продуманность объектной модели, возможность расширения &lt;/li&gt;    &lt;li&gt;Потребление памяти &lt;/li&gt;    &lt;li&gt;Скорость &lt;/li&gt;    &lt;li&gt;Роутинг &lt;/li&gt;    &lt;li&gt;Удобство настройки и отладки &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Тесты производились на неком “Hello world”-проекте, типичном для MVC фрейморков. Проект включает в себя 1 контроллер, 1 модель, 1 представление, 1 роут. Модель загружается из базы средствами ORM. Поскольку во всех фреймворках скорость выполнения тестового проекта высока, для оценки использовались результаты apache benchmark (ab) на loopback-интерфейсе (127.0.0.1).&lt;/p&gt;  &lt;p&gt;Для тестов использовался VDS (1 Гб памяти, бёрст до 1.5 Гб). Процессор: по 666 Мгц от каждого из 4х ядер “старого” Xeon X3350.&lt;/p&gt;  &lt;p&gt;Настройки всех фреймворков “по умолчанию”. Для &lt;strong&gt;KO3&lt;/strong&gt; включен caching (это не кэширование запросов, это кэширование путей для автозагрузки классов. Ближайший аналог, наверное, prod режим в &lt;strong&gt;Symfony2&lt;/strong&gt;). Для &lt;strong&gt;Symfony2&lt;/strong&gt; включен prod режим, отключен дебаг. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Пост писался 5 июля 2010, но так и не увидел свет в день своего рождения. Публикую спустя месяц.&lt;/p&gt;  &lt;br /&gt;&lt;a href=&quot;http://baron.su/archives/272-PHP_frejmvorki_sravnenie_Yii,_Kohana_KO3,_CodeIgniter_CI,_OnPHP,_Symfony2.html#extended&quot;&gt;Продолжить чтение &quot;PHP фреймворки: сравнение Yii, Kohana (KO3), CodeIgniter (CI), OnPHP, Symfony2&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sat, 14 Aug 2010 16:05:00 +0400</pubDate>
    <guid isPermaLink="false">http://baron.su/archives/272-guid.html</guid>
    <category>benchmark</category>
<category>framework</category>
<category>orm</category>
<category>php</category>
<category>сравнение</category>
<category>фреймворк</category>

</item>
<item>
    <title>Оказалось, что я необразованный ретроград</title>
    <link>http://baron.su/archives/256-Okazalos,_chto_Ja_neobrazovannyj_retrograd.html</link>
            <category>Архитектура</category>
    
    <comments>http://baron.su/archives/256-Okazalos,_chto_Ja_neobrazovannyj_retrograd.html#comments</comments>
    <wfw:comment>http://baron.su/wfwcomment.php?cid=256</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://baron.su/rss.php?version=2.0&amp;type=comments&amp;cid=256</wfw:commentRss>
    

    <author>nospam@example.com (Балькин Руслан)</author>
    <content:encoded>
    &lt;p&gt;Сегодня я узнал, что я – необразованный ретроград – изобрел велосипед. Точнее, пародию на велосипед. Как известно, я программирую на Java и в данное время мы работаем над новой игрой, konklav.ru. Собственно, мы решили избавиться от архитектурных недостатков сервера &lt;a title=&quot;Здесь можно поиграть в Берсерк, онлайн&quot; href=&quot;http://baron.su/exit.php?url_id=753&amp;amp;entry_id=256&quot;  onmouseover=&quot;window.status=&#039;http://berserk.mail.ru/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; target=&quot;_blank&quot;&gt;Берсерка&lt;/a&gt;, и несмотря на то, что в новом движке используется множество старого кода – он довольно сильно переработан.&lt;/p&gt;  &lt;p&gt;Рефакторинг несет в себе две основные цели: первой из них является повышение производительности под высокой нагрузкой (избавляемся от ненужных синхронизаций, переходим на блокирующие коллекции, где это возможно). Вторая цель – улучшение модульности. Уже сейчас скелет сервера &lt;a title=&quot;Тут будет жить Конклав Бессмертных&quot; href=&quot;http://baron.su/exit.php?url_id=754&amp;amp;entry_id=256&quot;  onmouseover=&quot;window.status=&#039;http://konklav.ru/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; target=&quot;_blank&quot;&gt;Конклава Бессмертных&lt;/a&gt; можно использовать для программирования любой онлайн игры.&lt;/p&gt;  &lt;br /&gt;&lt;a href=&quot;http://baron.su/archives/256-Okazalos,_chto_Ja_neobrazovannyj_retrograd.html#extended&quot;&gt;Продолжить чтение &quot;Оказалось, что я необразованный ретроград&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 14 Feb 2010 00:56:27 +0300</pubDate>
    <guid isPermaLink="false">http://baron.su/archives/256-guid.html</guid>
    <category>google</category>
<category>guice</category>
<category>java</category>
<category>oop</category>
<category>программирование</category>

</item>
<item>
    <title>Хороший, качественный код. Условия</title>
    <link>http://baron.su/archives/175-Horoshij,_kachestvennyj_kod._UsloviJa.html</link>
            <category>Архитектура</category>
    
    <comments>http://baron.su/archives/175-Horoshij,_kachestvennyj_kod._UsloviJa.html#comments</comments>
    <wfw:comment>http://baron.su/wfwcomment.php?cid=175</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://baron.su/rss.php?version=2.0&amp;type=comments&amp;cid=175</wfw:commentRss>
    

    <author>nospam@example.com (Балькин Руслан)</author>
    <content:encoded>
    &lt;strong&gt;&lt;/strong&gt;  &lt;p&gt;Итак, очередная статья из цикла &lt;strong&gt;&lt;a href=&quot;http://baron.su/exit.php?url_id=615&amp;amp;entry_id=175&quot; title=&quot;http://baron.su/plugin/tag/%D1%85%D0%BE%D1%80%D0%BE%D1%88%D0%B8%D0%B9+%D0%BA%D0%BE%D0%B4&quot;  onmouseover=&quot;window.status=&#039;http://baron.su/plugin/tag/%D1%85%D0%BE%D1%80%D0%BE%D1%88%D0%B8%D0%B9+%D0%BA%D0%BE%D0%B4&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;&amp;quot;&lt;strong&gt;Хороший, качественный код&lt;/strong&gt;&amp;quot;&lt;/a&gt;&lt;/strong&gt;. На этот раз мне бы хотелось поговорить об оформлении условного оператора if. Этот оператор присутствует почти в каждой программе, и им можно пользоваться по-разному. Как и раньше, не буду претендовать на то, что мои слова - истина в последней инстанции, и предоставлю несколько возможностей выбора.&lt;/p&gt;  &lt;p&gt;Начнем с форматирования исходников:&lt;/p&gt;  &lt;br /&gt;&lt;a href=&quot;http://baron.su/archives/175-Horoshij,_kachestvennyj_kod._UsloviJa.html#extended&quot;&gt;Продолжить чтение &quot;Хороший, качественный код. Условия&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 29 Oct 2008 08:03:29 +0300</pubDate>
    <guid isPermaLink="false">http://baron.su/archives/175-guid.html</guid>
    <category>exception</category>
<category>php</category>
<category>программирование</category>
<category>хороший код</category>

</item>
<item>
    <title>Хороший, качественный код. Комментарии</title>
    <link>http://baron.su/archives/162-Horoshij,_kachestvennyj_kod._Kommentarii.html</link>
            <category>Архитектура</category>
    
    <comments>http://baron.su/archives/162-Horoshij,_kachestvennyj_kod._Kommentarii.html#comments</comments>
    <wfw:comment>http://baron.su/wfwcomment.php?cid=162</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://baron.su/rss.php?version=2.0&amp;type=comments&amp;cid=162</wfw:commentRss>
    

    <author>nospam@example.com (Балькин Руслан)</author>
    <content:encoded>
    &lt;p&gt;Очень часто, и в книгах, и в Интернет, и (возможно) от начальства, можно слышать про необходимость комментариев. Давайте посмотрим, насколько написание комментариев является необходимым.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Во-первых, чем большее количество разработчиков работают над проектом, тем более необходимо наличие комментариев. Если разработчиков немного, возникает другой фактор - фактор человеческой памяти. Если еще три-четыре месяца спустя написания кода можно прекрасно вспомнить, зачем он нужен, как писался, что и почему он делает - вряд ли это удастся вспомнить спустя несколько лет. Особенно, если ведется интенсивная работа над различными проектами.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;С другой стороны, комментарии внутри методов - очень часто излишни. Например, напишем (с использованием псевдокода, подозрительно похожего на Java) небольшой метод для магазина по торговле электронными товарами:&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://baron.su/archives/162-Horoshij,_kachestvennyj_kod._Kommentarii.html#extended&quot;&gt;Продолжить чтение &quot;Хороший, качественный код. Комментарии&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 19 Oct 2008 00:12:40 +0400</pubDate>
    <guid isPermaLink="false">http://baron.su/archives/162-guid.html</guid>
    <category>комментарии</category>
<category>программирование</category>
<category>хороший код</category>

</item>
<item>
    <title>Хороший, качественный код. Введение</title>
    <link>http://baron.su/archives/161-Horoshij,_kachestvennyj_kod._Vvedenie.html</link>
            <category>Архитектура</category>
    
    <comments>http://baron.su/archives/161-Horoshij,_kachestvennyj_kod._Vvedenie.html#comments</comments>
    <wfw:comment>http://baron.su/wfwcomment.php?cid=161</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://baron.su/rss.php?version=2.0&amp;type=comments&amp;cid=161</wfw:commentRss>
    

    <author>nospam@example.com (Балькин Руслан)</author>
    <content:encoded>
    &lt;p&gt;Я уже вскользь писал на эту тему ранее, в статье &amp;quot;&lt;a href=&quot;http://baron.su/exit.php?url_id=581&amp;amp;entry_id=161&quot; title=&quot;http://baron.su/archives/93-Kak_ne_nado_pisat_kod.html&quot;  onmouseover=&quot;window.status=&#039;http://baron.su/archives/93-Kak_ne_nado_pisat_kod.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; target=&quot;_blank&quot;&gt;Как не надо писать код&lt;/a&gt;&amp;quot;. Но в том случае упоминалось лишь о том, что мне не нравится, а не о том, как все должно быть на самом деле.&lt;/p&gt;  &lt;p&gt;Я не собираюсь писать, скажем, про паттерны, про них и без меня написано многое. Мне приходится (и я этому рад) работать с самым разным кодом - отличным и ужасным, разных авторов, на разных языках программирования. В связи с этим я вкратце изложу, какой стиль программирования я считаю правильным и почему. Не настаивая на том, что моя точка зрения - мудрая, правильная и единственно верная (&amp;#169; Ильф и Петров).&lt;/p&gt;  &lt;p&gt;Небольшой цикл статей &amp;quot;Хороший, качественный код&amp;quot; - скорее повод задуматься, чем руководство к действию.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Sat, 18 Oct 2008 03:23:30 +0400</pubDate>
    <guid isPermaLink="false">http://baron.su/archives/161-guid.html</guid>
    <category>программирование</category>
<category>хороший код</category>

</item>

</channel>
</rss>