Pull to refresh

cogear — система управления сайтами

Reading time 4 min
Views 3.1K
Доброго времени суток, %username%.
Довольно давно не обращался к тебе по-имени, но, проснувшись этим приятным и по-зимнему снежным осенним утром, решил снова донести до тебя информацию о разрабатываемой системе управления сайтами cogear.
Итак, чтобы у тебя была информация к размышлению, рекомендую ознакомиться с топиками анонса и релиза движка.
Что изменилось с того времени? Именно об этом мы сегодня поговорим.

Первый вопрос, который наверняка посетит тебя после перехода «под кат» — зачем вообще создавать собственную CMS-ку, когда можно выбрать из множества уже существующих решений?
Часто задаю себе тот же вопрос. На деле получаю ответ — так удобнее. За 10 лет работы веб-мастером успел уделить внимание практически всем общедоступным движкам. Многие из них симпатичны и сегодня — Drupal, Wordpress, Joomla, впрочем, ты и сам знаешь названия, не хуже меня.

Экскурс в историю


Человек всегда отмечался тягой к познанию. Говорят верно — век живи, век учись. Живу и следую этому правилу. Поэтому мне мало просто изучить и дополнить существующие движки, надо было разобраться во всем что происходит «от и до», изучить все процессы системы, разложить все «по косточкам», а после из полученных гаечек и винтиков, а еще точнее — шестеренок, собрать свой движок, в котором было бы все то, чего так не доставало в других системах.
шестеренка
К тому же, довольно часто хочется настроить на свой лад используемую CMS, но чем глубже вникаешь в то, как устроена та или иная система управления сайтами, тем сильнее ощущение, что все можно было сделать более просто или грамотнее. Именно поэтому два года назад, уволившись из замечательной компании Spb Software House, приступил к созданию собственного движка. Если вас интересует первый опыт разработки движка, советую прочитать топик, написанный по горячим следам лета 2008 года.
Рабочее место
Напомню, что осенью 2008 года приступил к разработке cogear, взяв за основу проверенный временем фреймворк CodeIgniter. Весной 2009 года поставил «штуку» для сбора инвайтов, а в середине июня состоялся релиз.

Поскольку разработку вел в одиночку, хочу отметить несколько ключевых ошибок, которые были допущены на тот момент.
  • Перед релизом обязательно следует устроить закрытое тестирование, чтобы его участники могли выявить те баги, которые не увидит разработчик.
    Вышло очень забавно, когда из-за допущенной по усталости ошибки (вместо get_where написал get запрос в Active Record CodeIgniter'а), в результате чего каждый желающий автоматически залогинивался под моим аккаунтом :-) Результатом стал временный хаос, созданный троллями. Собравшись с силами, исправил ошибку, и все встало на свои места.
  • Пока система не стала стабильной, обязательно укажи на сайте о бета/альфа/гамма-тестировании.

Самое главное для меня в разработке cogear — колоссальный опыт. Да, можно говорить, что досконально знаешь, как устроен Drupal или любой другой движок, но если попробуешь создать свою систему, навряд ли на деле все окажется именно так. Всегда есть тысяча и одна мелочь о которых не задумываешься тогда, когда пользуешься уже готовым программным продуктом.

Особенности


Позволю себе напомнить основные моменты, которые считаю наиболее важными в отношении cogear:
  • Работает на CodeIgniter.
  • Полностью модульная система с гибкой системой хуков. Включение/отключение модулей (шестеренок) в один клик.
  • Подробная документация. В том числе и в PDF-формате.
  • Система контроля версий, которая позволит вам легко и просто обновиться, а также отслеживать все изменения в коде.
  • «Склеивание» файлов всех javascript и css в отдельные файлы. Обрати внимание на то, что файлы подхватываются автоматически — нужно просто положить их в соответствующую папку шестеренки. Обновление файлов движок также отслеживает самостоятельно, добавляя к адресу «склееных» файлов на выходе суффикс вида "?1234567" для своевременного обновления информации в браузерах. Возможность определять для разных браузеров свои наборы стилей и скриптов путем добавления суффиксов.
    Пример:
    scripts.ie7.js
    styles.opera9.6.css
  • Автоматическая загрузка библиотек, классов и моделей. Ты просто кладешь файл в нужную папку, и при вызове класса он подключается сам.
  • Свободная лицензия GPL второй редакции. До последнего времени была Creative Commons Attribution-Noncommercial-ShareAlike 3.0 Unported, но время показало, что тем, кто не считает лицензию пустым звуком, по душе больше приходится именно GPL.
  • Собственный шаблонизатор, по синтаксису похожий на Smarty, но много быстрее его. На самом деле это просто PHP-обертка, смотрящая в сторону последнего.
  • Использование поддоменов в любых целях.
  • Видео по установке системы — для новичков.
  • Большое количество входящих в дистрибутив полезных модулей (шестеренок):
  • Интернационализация. Возможность использования множественных форм.
  • Демо.
Более подробно ты можешь узнать обо всем, ознакомившись с документацией.
cogear — система управления сайтами
Конечно, движок не идеален, поэтому отмечу наиболее весомые минусы:
  • Уход от концепции MVC в сторону HMVC и, соответственно, идеологическое отдаление от CodeIgniter. Прочитав документацию фремворка и движка, поймешь, о чем речь.
  • Скромное на данный момент сообщество.
  • Чем на большее время отдаляюсь от конкретных этапов разработки, особенно ранних, тем чаще возникает желание вернуться и сделать все более грамотно. Но текущие задачи, а также другие жизненные обстоятельства, не позволяют пока этого сделать. В итоге потихоньку пишу собственное ядро, без вовлечения CodeIgniter, но с сохранением всех принципов и наработок cogear.


Выводы


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

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

Хочу поблагодарить всех людей, которые так или иначе последние полгода помогали мне в разработке.

В данном топике не стал приводить скриншоты, как делал раньше, поскольку официальный сайт cogear и демо работают в полном режиме и готовы удовлетворить твой интерес в любую минуту.
Tags:
Hubs:
+37
Comments 120
Comments Comments 120

Articles