Задать вопрос
  • Зачем нужен Yii и другие подобные фремворки?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Фреймворк - каркас. Дословный перевод который в общем хорошо отражает суть. Это какая-то структура которой придерживается приложение.

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

    В основе любой CMS есть фреймворк. Даже в том же wordpress. Это внутреннее API этой CMS на основе которого она построена.

    Сложность и уровень фреймворка определяет уровень абстракции которые он вводит. Если приводить пример - Symfony2 и все та же отправка почты. Отправка почты сама по себе относительно жирная операция. То есть из 200 милисекунд обработки запроса, 100 из них может занимать отправка почты. То есть пользователь получит страницу позже. В Symfony2 реализован слой абстракций над запросами ответами и потому, есть полный контроль за всем потоком данных. Фреймворку не составляет труда узнать когда мы закончили обрабатывать основной запрос. Так же у PHP (в зависимости от SAPI) есть возможность сказать серверу что "мы закончили обрабатывать запрос, можно отдавать его пользователю" и делать что-то еще. В результате мы можем вместо отправки писемь, помещать из в очередь и отправлять только после того как запрос ушел пользователю получая улучшение отзывчивости системы.

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

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

    А вот тут не всегда так. Как минимум потому, что время реализации функционала под wordpress на базе его внутреннего фреймворка может занять у вас значительно больше времени, чем написать все на популярном нормальном фреймворке, не оптимизированном на конкретное решение + дописать блог.
    Ответ написан
    Комментировать
  • Зачем нужен Yii и другие подобные фремворки?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    CMS - обычно решают конкретные узко специализированные задачи. Тот же WP - это блог и для такого кейса он вполне ок. Если вам нужен не совсем блог, на том же WP разработка вероятно будет сопровождаться анальной болью)). Это просто не целевое применение. То, что на WP и эл. магазины пишут - это просто демонстрация, что вилкой можно в ухе ковыряться))

    Фреймворки обычно имеют более обобщенное целевое предназначение, по этой причине на них обычно легче сделать сайт-визитку, который эл. магазин, немного соц. сеть и частично CRM.

    Пример где стоит использовать CMS: нужен эл. магазин, маленький бюджет и сроки тоже. Берем PrestaShop, устанавливаем, прикручиваем тему, настраиваем. Следующий!

    Пример где стоит использовать фреймворк: вам нужен сайт на подобии того, на котором вы читаете мой ответ. Да, его можно за уши притянуть к понятию "блог", но переписывать и допиливать нужно многовато. Пойдем от обратного (вы таки выбрали WP)
    * Потом поймете, что нужно было еще абстрактный уровень над WP написать, потому как после обновления ваши правки затерлись.
    * Потом вдруг случается несчастье: ваш сайт стал популярным и железо не тянет, вы задумаетесь об масштабировании, но окажется, что система довольно таки целостная и что бы ее разделить придется не хило так по вкалывать.
    * Через какое-то время ваш проект будет на 50% состоять переписанного кода и костылей, обходящих логику WP.
    * Вдруг, на хабре вы читаете статью про уязвимость в вашей версии WP, начинаете ее прикручивать, при этом часть вашего сайта тупо отваливается из-за тех же артефактов и костылей. Вы, ясное дело, фиксите траблюки.
    * В один прекрасный весенний денек, когда птички поют, радость, счастье, улыбки и бла-бла-бла вам звонит руководство и говорит, что "ничего не работает ( с )", отчаянье-печаль-грусть-уныние-безысходность-тлен. Зайдя на главную вы увидите замечательный баннер:
    Вас взломал @ сраный_script_kid. Один глаз начнет немного дергаться, "это нормально ( с )". Восстановившись из бэкапа 4-х недельной давности, вы начинаете судорожно писать 1ккк проверок всего и вся. Система мутирует в еще более страшную и громоздкую хрень.
    * Через какое-то время вас просят добавить фичу "на вчера", а что бы это сделать придется переписать добрую часть вашего монстра, вы (ну судя по количеству факапов) уже с прокачанным скилом "тебе фича не нужна эта" убеждаете руководство в этом, подобные разговоры возникают все чаще и в один прекрасный момент вы, или вас - увольняют.
    * На смену вам компания набирает других человек, которые выльют пару ведер крови из глаз, убедят руководство, что код не саппортабельный и перепишут вашего монстра с 1,5кк строк до 0,3кк на нормальном фреймворке.
    Ответ написан
    1 комментарий