Блог - 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.
Висновок третій. На даний момент ми повністю відмовилися від використання шаблонизаторів.