Всем доброго времени суток!)
Сегодня, я хочу затронуть, честно говоря больную для себя тему - это концепция проектирования веб-приложений MVT. Возможно, вы спросите почему MVT для меня больная тема и я сразу отвечу, я не понимаю где писать бизнес-логику приложения, но обо всем по-порядку.
Наверное, вы сталкивались с темой MVC или же просто видели эту аббревиатуру. Я встречал разные определения, но расскажу вам как я для себя ее понял.
MVC - это шаблон проектирования веб-приложений, который строго (!) делит бизнес-логику и логику отображения.
Model - бизнес-логика
View - логика отображения
Contoroller - соединяет Model и View.
Что я подразумеваю под бизнес-логикой приложения?
Пример. У нас интернет-магазин, к нам заходит пользователь и хочет купить макбук. Нажимает добавить в корзину. Как раз добавление товара в корзину и есть бизнес-логика. Мы отправляем запрос в бд, его обрабатываем, всячески проверяем и т.д.
Та же самая покупка товара, регистрация пользователя, привязка банковских карт. Возможно, примеры не из лучших, но я думаю понятно о чем идет речь.
А теперь, моя любимая часть. Что такое MVC в Django.
Разработчики, придумали свой шаблон для проектирования приложений. Называется он MTV.
Model - в этом слое мы описываем базу данных и джанговская orm ее создает.
Views - принимает и обрабатывает запросы, тот же самый controller в MVC.
Template == Views in MVC.
Все бы ничего, но где слой бизнес-логики? А его попросту нет.
Уже в следующей статье я расскажу где писать бизнес-логику и покажу как выглядят обычные проекты на Django и почему стоит придерживаться такого подхода к проектированию.
Спасибо за внимание!) Всем мир!