Блог

Руководителям, продажникам и менеджерам


Что греха таить – у программистов, а тем более у продажников иногда возникает желание прекратить «общение» с  CMS «Битрикс», свернуть её трубочкой и отправить на доработку.


А что по факту?


По факту мы имеем следующие данные. В ноябре 2014 г. всего было опрошено 4 884 633 -0,42% доменов зоны RU. 54,2% -3,6 опрошенных доменов ответили в течение 30 секунд, а CMS обнаружена на 23,5% +1,1 доменов. Доля платных тиражных CMS составила примерно 12,9% от общей доли обнаруженных CMS, а доля узкоспециализированных* — 6,5%.


Взглянем на общий рейтинг CMS в России


Рейтинг CMS


Теперь посмотрим на рейтинг исключительно платных CMS в России


Исследование Ruward


А это уже анализ от RU-CENTER


Доли CMS


Если же мы посмотрим на рынок европейских CMS, то увидим, что их платформы  разработки отличаются гораздо большим разнообразием. Тут тебе и ColdFusion, и Java, и .NET, Python, и Perl. В России же 80% всех известных CMS написаны на PHP4. Конечно, PHP пользуется спросом и за рубежом, но в основном лишь в пятой версии.


Среднемесячный прирост CMS



Также около половины европейских систем используют связку XML + XSLT. Многие  продвигают это в качестве одного из своих главных преимуществ. В России последняя технология не получила широкого распространения. Но самое интересное во всей этой ситуации в том, что некоторые участники рынка CMS проповедуют неэффективность XSLT в CMS, вопреки мировым тенденциям и здравому смыслу. 


Хватит это терпеть!


Нет, я не призываю просто взять и выкинуть вашу текущую CMS. Попробуем взглянуть на неё с другой стороны. «Битрикс» - это очень и очень развитая CMS. Она даёт человеку незнакомому с программированием свободно конфигурировать любые приложения. Однако чем сложнее система, тем больше необходимо знаний и умений этому человеку. Парадокс!


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


Так и «Битрикс» постепенно уводит нас от эры «кодинга» в эру проектирования и компоновки. Насколько быстрым будет этот процесс? Зависит от того, как быстро «Битрикс» избавится от своих главных недостатков:


1. Стоимость адекватной редакции начинается от 30’000 руб.


2. Довольно большие системные требования и старая версия PHP.


3. Большое количество багов и недоработок в совокупности с далеко не всегда понятной документацией.


Есть ли альтернатива? Конечно! Это фреймворки. Они созданы как раз для того, чтобы писать производительный, чистый, красивый, легко разрабатываемый код.


Сейчас в PHP есть три лидера:


1.    Symfony


2.    Zend


3.    Yii


Все они имеют большую инфраструктуру, хорошую поддержку и документированность. Но всё же это не CMS. Скорее, набор кирпичиков и камней, которые необходимо сложить.


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


Так в чём же смысл?


Смысл всё тот же - каждый инструмент хорош для своего дела. Не будете же вы молотком наливать суп? Или будете? «Битрикс» хорош для магазина, а Symfony для сайта без развитой админки (хотя и ее можно написать часов за 50). 


Программистам


Чуть подробнее о «Битриксе». «Битрикс» – CMS с высокой степенью криптостойкости, хотя она и не имеет одной точки входа.
Для работы самой CMS необходимо только такое минимальное дерево:


1.    bitrix/
2.    upload/
3.    .access.php
4.    .htaccess
5.    index.php
6.    urlrewrite.php


Причем index.php это уже первая страница, а административный отдел уже полностью работоспособен и лежит в папке bitrix.


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


Все инфоблоки имеют свой тип. То есть нельзя создать инфоблок без типа. Тип инфоблока - это логическая связь между инфоблоками. 


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


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


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


«Битрикс» – CMS с множеством точек входа. Чтобы создать страницу необходимо просто создать папку, в ней index.php и все. С одной стороны, это удобно, с другой – нет.


Удобно, если статичных страниц немного. А что делать, если их много, и они к тому же ещё перемешиваются с динамичными в одном и том же разделе? В этом случае приходится писать свои комплексные компоненты.  


Что действительно удобно в «Битриксе», так это работа с данными. Они структурированы в инфоблоки и кроме как к ним, ни к чему обращаться больше не нужно. Работа через API в большинстве случаев удобна и прозрачна. Единственное – производительность поменьше, чем при прямом запросе к базе, да и JOIN по инфоблокам сделать не удастся. 


Но всё же в реальности «Битрикс» - это «Битрикс». Это не хорошо и не плохо. Разработчики CMS постоянно работают над улучшением кода, но идут к этому очень и очень медленно. Надеюсь, в скором времени мы увидим переход от PHP 5.3 к PHP 5.5, а также Dependency Injections и Namespace, хорошую структуру, приближенную к MVC. Пока же подстраиваемся и пишем собственные красивые компоненты. 


Автор: Георгий Ионов, программист отдела веб-разработок

 

 


Возврат к списку