Создание и сопровождение сайтов

Блог. Yii. Выбор инструментов для работы. Почему Yii?

Поиск

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

    Каждый программист видит код по-своему и, как результат, брожение в голове вызывает брожение в коде. Это было бы хорошо, если бы программист всю жизнь вел бы свой проект. Но получается так, что проект доделывается "хоть как-то уже наконец" и клиент с этим проектом уходит в "свободное плавание". Часто бывает, что проект переходит к другому программисту, у которого совершенно другое видение того, как должен выглядеть код. Он начинает вносить свои правки. После 3-4 таких программистов код превращается в сплошную непонятную кашу.

    Клиент недоволен: малейшее изменение в проекте требует много времени (а время, как известно - это деньги). И усилием воли делается мужественное решение - потратить время сейчас и переписать всё, чем мучиться в дальнейшем. Находится программист, который все переписывает по-своему и.. Клиент снова приходит к тому, с чего все началось - код, в котором разбирается только один человек.

    Первый вывод, который наша компания вынесла из всех этих мытарств: надо использовать известный инструментарий и известный подход к программированию. Никакой "отсебятины" и "cms своей собственной разработки" (как этим любят хвастаться многие компании). Любой программист может без проблем разобраться в наших продуктах. В интернете множество статей и уроков по используемому нами фреймворку Yii.

    Почему именно Yii? Нам нравится этот фреймворк своей гибкостью, удобством и скоростью работы.

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

    Да, есть более известный Zend Framework. Имеет множество различных модулей (практически на все случаи жизни), хорошо продуманную архитектуру. Но он ощутимо медленнее, больше, "тяжелее" чем Yii. Страдает также некоторой "многословностью" - длинные названия классов, например. То есть даже визуально код выглядит "тяжело".

    К тому же, в Yii можно использовать модули из ZendFramework.

    Вывод второй: Yii - очень быстрый, современный и гибкий фреймворк. Имеет множество плюсов:

  • высокая скорость разработки;
  • высокая скорость работы;
  • поддержка модулей, компонентов и виджетов;
  • интеграция с javascript фреймворком jQuery;
  • удобная работа с базой данных: возможно использование как Data Access Objects, так и Active Record;
  • удобная и гибкая система кеширования и ивалидирования кеша, поддержка memcached/xCache "из коробки";
  • удобный встроенный генератор кода Gii;

    Шаблонизаторы.. У многих новичков возникает резонный вопрос: а почему вы не используется Smarty/Twig/Dwoo/... (нужное подчеркнуть)? По поводу этого вопроса сломано много копий, на просторах Сети приводится множество аргументов "за" и "против". Мы решили пользоваться native PHP. 

    Вывод третий. В данный момент мы полностью отказались от использования шаблонизаторов.

    Обсуждение статьи на форуме