[БЕЗ_ЗВУКА] [БЕЗ_ЗВУКА] В этом видео мы рассмотрим, что такое системная архитектура и зачем вообще архитектура нужна в целом, рассмотрим паттерн MVC, подробнее поговорим о моделях, вьюхах и контроллерах и рассмотрим пример. Что такое архитектура? Системная архитектура — это организация и структура распределения элементов информационной системы, то есть это то, как логически распределена на наша система и как эти элементы взаимодействуют между собой. В целом, можно не следовать какой-то архитектуре и получить код, подобный этому: все в одном файлике, работа с базой, формирование HTML, бизнес-логика. Если так делать, то в дальнейшем будет очень сложно вносить какие-то изменения и дорабатывать этот код — все будет постоянно ломаться. Поэтому люди начали придумывать некие паттерны разработки, паттерны проектирования, для того чтобы такого не было. Собственно, один из них мы и рассмотрим — MVC (Model-View-Controller). Это схема разделения данных приложения, пользовательского интерфейса и управляющей логики на три отдельных компонента. Это сделано для того, чтобы если поменялся какой-то из компонентов, мы могли его поменять, и это изменение не затронуло Model-View. То есть мы меняем какой-то небольшой компонент системы и не ломаем все остальное. Давайте рассмотрим, как происходит процесс обращения к клиенту. Клиент делает запрос к нашему приложению. Он попадает в контроллер. Контроллер как-то модифицирует данные с помощью модели. После этого модель сохраняет эти данные в базу. После этого модель предоставляет эти данные вьюхе. Вьюха как-то формирует ответ и отдает этот ответ клиенту. Собственно, Controller. Контроллер отвечает за бизнес-логику, контроллер использует модели, для того чтобы как-то изменять, или добавлять, или удалять данные и представления, или вьюхи, чтобы их отображать. Собственно, в контроллере сосредоточена вся бизнес-логика нашей системы. View, или представление, формирует ответ в конкретном формате, то есть во View попадают некие данные, и он их как-то отображает. Вот чем занимается View. И Model. Модель отвечает за данные и правила их обработки, то есть все, что ты делаем с данными, мы делаем в моделях. Рассмотрим на примере. Допустим, у нас есть модель «Студент» и нем поля «Имя» и «Оценка», и вьюха — это «Профиль студента». Рассмотрим контроллеры. Допустим, у нас есть контроллер «Посмотреть профиль». Собственно, мы хотим зайти на какую-то страничку и увидеть его профиль. Что нам нужно сделать для этого? Это получить данные с помощью нашей модели «Студент» и с помощью View отобразить эти данные. Или, например, у нас есть контроллер «Поставить оценку». Собственно, для этого нам нужно прочитать модель «Студент», изменить «Оценку» также с помощью нашей модели «Студент» и вернуть данные с помощью нашего View. Собственно, как мы видим, контроллер отвечает за бизнес-логику нашего приложения: для получения данных он использует модели, для отображения он использует View. В итоге, мы сегодня рассмотрели, что такое системная архитектура и зачем она нужна и что будет, если ее не использовать, рассмотрели паттерн проектирования MVC, подробнее поговорили о моделях, представлениях, контроллерах и также рассмотрели пример. [БЕЗ_ЗВУКА]