Блог - Yii - Вибірінструментів для роботи

У ході своєї професійної діяльності багаторазово доводилося стикатися з різними проектами на різних фреймворках, у тому числі і на "велосипедних cms" (це коли кожен розробник пише свою власну структуру проекту і має свій підхід до написання коду і бібліотекам, що використовуються).

Кожен програміст бачить код по-своєму і, як наслідок, бродіння в голові викликає бродіння в коді. Це було б добре, якби програміст все життя вів свій проект. Але виходить так, що проект робиться "хоч якось вже нарешті" і клієнт з цим проектом йде в "вільне плавання". Часто буває, що проект переходить до іншого програміста, у якого зовсім інше бачення того, як має виглядати код. Він починає вносити свої виправлення. Після 3-4 таких програмістів код перетворюється на суцільну незрозумілу кашу.

Клієнт незадоволений: найменша зміна у проекті потребує багато часу (а час, як відомо – це гроші). І зусиллям волі робиться мужнє рішення - витратити час зараз і переписати все, чим мучитися надалі. Знаходиться програміст, який все переписує по-своєму і.

Перший висновок, який наша компанія винесла з усіх цих поневірянь: треба використовувати відомий інструментарій та відомий підхід до програмування. Жодної "отсебятини" і "cms своєї власної розробки" (як цим люблять хвалитися багато компаній). Будь-який програміст може без проблем розібратися у наших продуктах. В інтернеті безліч статей і уроків з фреймворку Yii, що використовується нами.

Чому саме Yii? Нам подобається цей фреймворк своєю гнучкістю, зручністю ташвидкістю роботи.

Так, є простіший CodeIgniter. Дуже швидкий та зручний інструмент, особливо для початківців (величезна кількість документації, у тому числі українською мовою). Але наш досвід показав дуже цікаву закономірність - розв'язання багатьох завдань на CodeIgniter займає вдвічі більше часу, ніж розв'язання тих самих завдань на Yii. Не було жодного завдання, яке було б вирішено швидше на CodeIgniter.

Так, є відоміший Zend Framework. Має багато різних модулів (практично на всі випадки життя), добре продуману архітектуру. Але він відчутно повільніший, більший, "важчий" ніж Yii. Страждає також на деяку "багатослівність" - довгі назви класів, наприклад. Тобто навіть візуально код виглядає "важко".

До того ж у Yii можна використовувати модулі з ZendFramework.

Висновок другий : Yii - дуже швидкий, сучасний і гнучкий фреймворк. Має безліч плюсів:

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

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

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