Очень часто на таких сайтах ломают копья по поводу использовать готовую CMS или пилить свою? Но тот уровень сайтов, которые местные обитатели разрабатывают, это уровень сайтов-визиток, не более, годного продукта они не создадут.
Недавно натолкнулся на статью Маттиаса Нобака (Matthias Noback) «Should we use a framework?»(«Нам точно нужен фреймворк?»). Да, я немного слукавил, назвав статью иначе, но от этого суть не меняется. Оригинал статьи, прочитать можно
тут.
Я попробую тезисно озвучить материал, предложенный выше, чтобы показать, что писать свою CMS это путь в никуда :swoon:
Так как я много пишу о разработке распределённых приложений, неудивительно, что один из моих читателей задал вопрос:
«Зачем использовать фреймворк?». Короткий ответ:
потому что он вам нужен. И вот почему:
[list]
* Фреймворк делает за вас слишком многое. Вам потребуется уйма времени и денег, чтобы заменить всё это на самостоятельно написанный вами код.
* Разработчики, поддерживающие фреймворк, исправили множество проблем ещё до того, как вы с ними столкнулись. Они постоянно заботятся о безопасности кода и исправляют проблемы по мере их появления. Вам остаётся только загрузить последнюю версию фреймворка.
* Отказавшись от фреймворка, вы не будете зависеть от Symfony, Laravel, Yii и так далее. При этом вы будете зависеть от своего фреймворка, а это ещё большая проблема, так как поддерживать его вам и очень вероятно что делать это вы не будете (по моему опыту, в проектах с самописным фреймворком, поддержкой самого фреймворка почти никто не занимается).
[/list:u:2preq7is]
Дальше идет сложная для многих понимания описание проблемы, я попробую выделить более важные и понятные...В общем, фреймворк нужен всем. Но вам всё равно стоит писать независимый от фреймворка код там, где это возможно. Формирование крепкого ядра изолированного кода, не привязанного к технологии баз данных или конкретному фреймворку, даёт больше свободы.
Если вы хотите написать независимый от фреймворка код, не нужно изобретать велосипед. Можно положиться на каталог шаблонов проектирования, например:
[list]
* Сервисы приложения и командные объекты.
* Сущности и интерфейсы репозиториев.
* События домена и их подписчики
[/list:u:2preq7is]
Ни один из перечисленных классов не будет использовать такие специфичные для фреймворка вещи, как:
[list]
* Запрос, ответ, сессия, хранилище токенов или менеджер безопасности,
* Локаторы сервисов, хэлперы для конфигурации, разрешители зависимостей,
* Подключения к базе данных, построители запросов, мапперы данных (или что там используется в вашем фреймворке).
[/list:u:2preq7is]
Дальше идет описание того, чем может помочь фреймворк.Попробую сделать выводы. Я не первый год работаю в продуктовой разработке, где в штате работаю десятки разработчиков, тестиовщиков, аналитиков, а бюджеты миллионы или миллиарды рублей. И не в одной компании не писалось все с нуля.
Код решает проблемы бизнеса и чем быстрее вы начнете решать эти проблемы, тем лучше для бизнеса, а следовательно и для вас, в виде хорошей мотивации.
Скорость внедрения фич очень важна для проекта. Фремворк позволяет взять на себя ряд стандартных и общеизвестных проблем, а ваша задача писать только бизнес-логику. Это позволяет гораздо быстрее обновлять, быстрее менять технологии в проекте и тд.
Применительно к CMS, не надо изобретать велосипед. Берете готовое решение, реализуйте бизнес-логику проекта и все счастливы. Цените свое время и используйте опыт других людей.ЗЫ с удовольствием подискутирую, если что-то будет непонятно.
Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
|