Вам точно нужена самописная CMS?


Вам точно нужена самописная CMS?

Сообщение surfer »

Очень часто на таких сайтах ломают копья по поводу использовать готовую CMS или пилить свою? Но тот уровень сайтов, которые местные обитатели разрабатывают, это уровень сайтов-визиток, не более, годного продукта они не создадут.
Недавно натолкнулся на статью Маттиаса Нобака (Matthias Noback) «Should we use a framework?»(«Нам точно нужен фреймворк?»). Да, я немного слукавил, назвав статью иначе, но от этого суть не меняется. Оригинал статьи, прочитать можно тут.
Я попробую тезисно озвучить материал, предложенный выше, чтобы показать, что писать свою CMS это путь в никуда :flag:

Так как я много пишу о разработке распределённых приложений, неудивительно, что один из моих читателей задал вопрос: «Зачем использовать фреймворк?». Короткий ответ: потому что он вам нужен. И вот почему:

    * Фреймворк делает за вас слишком многое. Вам потребуется уйма времени и денег, чтобы заменить всё это на самостоятельно написанный вами код.
    * Разработчики, поддерживающие фреймворк, исправили множество проблем ещё до того, как вы с ними столкнулись. Они постоянно заботятся о безопасности кода и исправляют проблемы по мере их появления. Вам остаётся только загрузить последнюю версию фреймворка.
    * Отказавшись от фреймворка, вы не будете зависеть от Symfony, Laravel, Yii и так далее. При этом вы будете зависеть от своего фреймворка, а это ещё большая проблема, так как поддерживать его вам и очень вероятно что делать это вы не будете (по моему опыту, в проектах с самописным фреймворком, поддержкой самого фреймворка почти никто не занимается).

Дальше идет сложная для многих понимания описание проблемы, я попробую выделить более важные и понятные...

В общем, фреймворк нужен всем. Но вам всё равно стоит писать независимый от фреймворка код там, где это возможно. Формирование крепкого ядра изолированного кода, не привязанного к технологии баз данных или конкретному фреймворку, даёт больше свободы.

Если вы хотите написать независимый от фреймворка код, не нужно изобретать велосипед. Можно положиться на каталог шаблонов проектирования, например:

    * Сервисы приложения и командные объекты.
    * Сущности и интерфейсы репозиториев.
    * События домена и их подписчики

Ни один из перечисленных классов не будет использовать такие специфичные для фреймворка вещи, как:

    * Запрос, ответ, сессия, хранилище токенов или менеджер безопасности,
    * Локаторы сервисов, хэлперы для конфигурации, разрешители зависимостей,
    * Подключения к базе данных, построители запросов, мапперы данных (или что там используется в вашем фреймворке).

Дальше идет описание того, чем может помочь фреймворк.

Попробую сделать выводы. Я не первый год работаю в продуктовой разработке, где в штате работаю десятки разработчиков, тестиовщиков, аналитиков, а бюджеты миллионы или миллиарды рублей. И не в одной компании не писалось все с нуля.
Код решает проблемы бизнеса и чем быстрее вы начнете решать эти проблемы, тем лучше для бизнеса, а следовательно и для вас, в виде хорошей мотивации.
Скорость внедрения фич очень важна для проекта. Фремворк позволяет взять на себя ряд стандартных и общеизвестных проблем, а ваша задача писать только бизнес-логику. Это позволяет гораздо быстрее обновлять, быстрее менять технологии в проекте и тд.

Применительно к CMS, не надо изобретать велосипед. Берете готовое решение, реализуйте бизнес-логику проекта и все счастливы. Цените свое время и используйте опыт других людей.

ЗЫ с удовольствием подискутирую, если что-то будет непонятно.


За это сообщение автора surfer поблагодарили: 2
birds, Денчик
Аватара пользователя
surfer

 
Группа: Специалист ruSEO
Сообщения: 1083
Зарегистрирован: 26 июл 2012
Средств на руках: 196.78
Статус: backend

Вернуться в CMS бесплатные/платные

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15