Сетевой кот для управления веб-сайтами

Дата публикации: 16.08.2008

Категория: Оффтопик

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

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

Система управления веб-сайтами NetCatВсе дело в том, что некоторое время назад мне пришлось познакомиться с очередной системой управления веб-сайтами. Весьма интересной, универсальной и, конечно же, не бесплатной. Как вы наверно уже догадались, речь идет о NetCat CMS.

Нельзя сказать, что разработчики этой системы изобрели что-то мегаоригинальное или суперинновационное. Ни для кого не секрет, что большинство современных систем разработки и поддержки веб-сайтов во многом похожи друг на друга и основываются на одних и тех же фундаментальных принципах построения. Тем не менее, логика и архитектура программного комплекса NetCat произвели на меня достаточно сильное впечатление. Прежде всего речь идет о практически полной самодостаточности системы, весьма продуманном API и реально удобном (на мой взгляд) пользовательском интерфейсе.

Таким образом, в конечном итоге было принято решение перевести на эту платформу проект webstandards.org.ru.

Не все коту масленица

Не обошлось, конечно же, и без ложки дегтя в бочке меда. В первую очередь меня поразило качество прилагаемой к системе документации. Снабдить такую серьезную систему таким эээ... нехорошим описанием – это надо было суметь. Я не знаю, с какой планеты снизошли к нам составители и редакторы «Руководства разработчика CMS NetCat 3.0», но количество ошибок и опечаток в нем не поддается исчислению. Складывается такое впечатление, что документация изначально призвана окончательно запутать веб-разработчика и спровоцировать у него негативное отношение к системе.

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

Для упрощения работы мы рекомендуем Вам использовать одинарные кавычки ' (они равноправны двойным практически во всех стандартах, включая HTML, XHTML) или же отказаться от них вовсе.

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

Какой еще такой DOCTYPE? Нам и в Quirks Mode хорошо...
<html>
<head>
<title>Моя компания / Каталог товаров / Рога / Прямые</title>
<style type=text/css>
body {background-color: white; margin: 0; font-family: verdana;}
</style>
</head>

<body>
<table width='100%' cellpadding='3'>
<tr>
  <td><img src='/images/logo.gif'></td>
  <td align='right' valign='bottom'><img src='/images/collage_12.gif'></td>
</tr>
<tr>
  <td colspan='2' bgcolor='#eeeeee'>
    <a href='/about/'>О компании</a> &nbsp;
    <a href='/news/'>Новости</a> &nbsp;
    <b><a href='/catalog/'>Каталог товаров</a></b> &nbsp;
    <a href='/contacts/'>Контакты</a>
  </td>
</table>

<table width='100%'>
<tr>
  <td valign='top' width='200' bgcolor='#eeeeee'>
    <p>
      <table width=100% cellpadding=2>
      <tr><td><a href=/roga/>Копыта</a></td></tr>
      <tr><td><b><a href=/roga/>Рога</a></b></td></tr>
      <tr><td><font size=-1>&nbsp; <a href=/roga/vetvistye/>Ветвистые</a></td></tr>
      <tr><td><font size=-1>&nbsp; Прямые</td></tr>
      <tr><td><font size=-1>&nbsp; <a href=/roga/complexnye/>Комплексные</a></td></tr>
      <tr><td><a href=/roga/>Другие части</a></td></tr>
      </table>
    <p>
    <font size=-2>
      <b>Последние новости</b>
      <p>21.08.2007<br><a href=/news/news_12.html>В каталог добавлены новые рога</a>
      <p>20.07.2007<br><a href=/news/news_11.html>Из каталога удалены старые копыта</a>
      <p><b>Новинки в каталоге</b>
      <li>Рога ветвистые: <b>5</b><br>
      <li>Копыта когтистые: <b>2</b><br>
      <p>
    </font>
  </td>
  <td valign='top'>
    <div align=right>
      <a href=/search/>поиск</a> |
      <a href=/map/>карта сайта</a> |
      <a href=/english/>english version</a>
    </div>
    <h1>Рога прямые</h1>
    <p>
  </td>
</tr>
</table>

<p align='center'>&copy; 2000-2007 "Рога и копыта". Все права защищены.
</body>
</html>

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

Тем не менее, все это нельзя считать объективным недостатком системы. Совершенно ничего не мешает переписать HTML-шаблоны самостоятельно и получить в конечном итоге безупречный синтаксически и семантически корректный интернет-ресурс. Речь идет только лишь о том, что весьма низкопробное качество стандартных компонентов системы негативно сказывается на имидже программного комплекса NetCat в целом.

На мой взгляд, единственным серьезным недостатком NetCat CMS является отсутствие поддержки двухбайтовых кодировок (в частности, UTF-8). Именно по этой причине проект webstandards.org.ru, как это ни прискорбно, незаметно перебрался с UTF-8 на windows-1251. Признаюсь честно, некоторые очевидные «вкусности» системы заставили меня закрыть глаза на это форменное безобразие.

Мыши плакали, кололись, но продолжали жрать кактус...

Очень хочется надеяться, что в ближайшее время разработчики платформы все-таки пересмотрят ее ядро и исправят это досадное упущение. В этом случае систему управления NetCat можно будет с уверенностью рекомендовать для построения и поддержки веб-сайтов, соответствующих всем современным веб-стандартам.

Доработка напильником

Параллельно с перемещением проекта на новую платформу наконец-то были доработаны «всякие полезные штуки», которых проекту очень не хватало.

В первую очередь, благодаря системе NetCat был снят вопрос, касающийся ЧПУ. Честно говоря, «прикрутить» mod_rewrite можно было и к старой платформе, но времени на проведение этого мероприятия постоянно не хватало.

Другим важным событием стала организация двух долгожданных RSS-лент (публикации и комментарии), до реализации которых у меня тоже все время не доходили руки.

Еще одно интересное нововведение – нестандартные всплывающие предупреждения в случае неправильного заполнения полей форм. На мой взгляд, подобные визуальные решения являются гораздо более привлекательными по сравнению с обычными «алертами» JavaScript.

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

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

Комментарии

  • Ссылка на комментарий 01.09.2008 12:59

    inkoGnito

    Россия, Москва

    Система хороша с логической стороны. Хорошо продуман процесс разработки.

    Плюсы на мой взляд:

    1. Нет темам! Даешь макеты! предоставляет больш`ие возможности в настройке отображения чем, темы оформления.

    2. Компоненты - очень удобный инструмент описания и управления контентом страницы.

    3. Модули - достаточно просты в написании, сложность только в написании инсталятора, позволяют нести в своем составе несколько компонентов и набор определенных пользователем функций.

    4. Встроенный редактор компонентов.

    5. Автогенератор форм добавления / изменения

    Недостатки.

    1. Невозможность определить связь Многие-к-Многим в компонентах.

    2. Один вид отображения информации - список. Для других приходится стучать в бубен (дерево, таблица...)

    3. Невозможность одновременно в одном разделе стандартными методами использовать несколько компонентов.

    4. Нет поддержки стандарта xHTML

    5. Документация полное Г...

    6. Непонятный механизм обработки компонентов при генерации содержимого страницы.

    --------------------

    Баг-Фитча-ХЗ что

    При обработке компонента раздел "системные настройки компонента" обрабатывается 2 раза. Приходится постоянно отлавливать этот момент, иначе при внесении какой либо информации в базу или выполнении каких либо действий происходит дублирование

  • Ссылка на комментарий 01.09.2008 16:23

    Константин Ефимов

    Россия, Тольятти

    http://webstandards.org.ru

    Спасибо, что так подробно поделились мнением.)

    Нет темам! Даешь макеты!

    Честно говоря, не могу себе представить ни одну серьезную CMS с «темами оформления». Это ж, простите, детский сад...)

    Один вид отображения информации - список. Для других приходится стучать в бубен (дерево, таблица...)

    Тем не менее, подход к данным как к спискам шаблонной информации все-таки наиболее универсален, не так ли?

    Невозможность одновременно в одном разделе стандартными методами использовать несколько компонентов.

    Если у этих компонентов разные «действия по умолчанию», отчасти можно с Вами согласиться. В противном случае использовать несколько компонентов в одном разделе можно без проблем. Причем самыми что ни на есть стандартными методами.

    Нет поддержки стандарта xHTML

    Простите, а где именно?) В разметке самой системы или в принципе?

    Непонятный механизм обработки компонентов при генерации содержимого страницы.

    Очень хотелось бы узнать, чем именно он непонятен. Вроде бы все предельно просто: префикс, объект в списке, суффикс. Или Вы немного о другом?

    При обработке компонента раздел "системные настройки компонента" обрабатывается 2 раза.

    Совершенно верно, об этом даже в документации упоминается. Только вот, к сожалению, я до сих пор так не понял, зачем это потребовалось разработчикам.

  • Ссылка на комментарий 02.09.2008 16:09

    inkoGnito

    Россия, Москва

    Простите, а где именно?) В разметке самой системы или в принципе?

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

    Непонятный механизм обработки компонентов при генерации содержимого страницы.

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

    Честно говоря, не могу себе представить ни одну серьезную CMS с «темами оформления». Это ж, простите, детский сад...)

    Скажите это поклоннику Drupal или Joomla - они нас заплюют.

    Да и в догонку. Постоянно надо следить за экранированием кавычек :( А это при разработке больших проектов не есть гуд.

  • Ссылка на комментарий 02.09.2008 21:45

    Константин Ефимов

    Россия, Тольятти

    http://webstandards.org.ru

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

    Теперь все понятно.) Охотно Вам верю, хотя сам в модуле «Форум» пока еще не копался. Аналогичную ситуацию можно наблюдать и в других системах...

    Скажите это поклоннику Drupal или Joomla - они нас заплюют.

    Ну, это точно не серьезно...)

    Постоянно надо следить за экранированием кавычек

    Что поделать – идеальных систем не бывает... Всегда приходится за что-то платить.

  • Ссылка на комментарий 07.09.2008 14:38

    Pavel

    Украина, Kiev

    http://azovsky.com.ua

    Спасибо автору. Иноформация поучительная.

    Константин, я подозреваю Вы не знакомы с Drupal? :)

    Если нет - совету узнать поближе. Описывать почему - не стану. Просто CMS Drupal действительно уневерсальная и все мелочи, типа ЧПУ, RSS и удобные формы комментов, покажутся действительно обыденными вещами на фоне всех остальных "вкусностей".

    желаю удачи!

 Оставить комментарий 
 *
 *


 *   [не публикуется]
 *

Последние комментарии