Step 3 (S-44782)

From Stepik Wiki
Revision as of 13:28, 6 August 2017 by Admin (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/14827/step/3

Step 3 (S-44782) 1.png

[00:00 - 00:16] итак мы переходим к теме фреймворков мы говорили что фреймворк это какая то библиотека общем та которая задает структуру проекта а и упрощают типовые задачи при которой мы говорили то есть парсинг


[00:16 - 00:36] переменных генерации а генерация ответа доступ к базам данных с развитием в приложении было довольно большое количество осознав всяких разнообразных фреймворках а о самых простых библиотек которые позволяли только


[00:36 - 00:53] упростить анализ там парсинг параметров а до полноценных и неполноценных таких систем в которых особо программировать был ничего не нужно достаточно было скомпоновать функция предоставляемые фреймворком


[00:53 - 01:08] мы остановимся на среднем и наиболее распространенным на сегодня варианте это м м receive разборки а что такое мфц мвц это архитектурный паттерн расшифровывается как model view контроллер


Step 3 (S-44782) 2.png

[01:08 - 01:26] который задает структуру веб приложения этот пастор потом говорит из каких частей а должно состоять в приложении как они должны между собой взаимодействовать заметим что как изначальный


[01:26 - 01:45] протокол виджай которой мы рассматриваем не накладывает никаких ограничений на структуру приложения от просто функции что находится внутри функции это остается на откуп разработчика может быть все что угодно на практике а создавать приложения


[01:45 - 02:01] 1 функции либо даже виде набора функций это неудобно а и это сильно затрудняет разработку с ростом приложение поэтому чисто из практических соображений был разработан


[02:01 - 02:19] такой вот с которой тело должно стать приложение как вы не должны уже больше 10 давайте рассмотрим а рассмотрим вот этот слайд большим большим таким прямоугольником


[02:19 - 02:37] выделено наше приложение то есть это тот код который а тот код который пишем мы а слева те части которые выполняются на сервере итак начнем с того момента когда решу сервер через протокол


[02:37 - 02:52] вызывает наше приложение современных картах как правило разработчики не пишут сами а вес java приложения в том виде как мы его смотрели на прошлом


[02:52 - 03:11] на прошлом уроке а само визжа приложение оно входит в состав фреймворка то есть аппликейшен сервер вызывает некоторую функцию внутри фреймворка а выполняется код фреймворка которые делают всевозможные промежуточные


[03:11 - 03:29] действия выполняются так называемой middle это вот это вот некоторые функции прозрачным


[03:29 - 03:46] так или иначе а когда код фреймворка отработал необходимо определить какую функцию какой контроллер вызвать а в нашем приложение то есть нужно определить конкретную точку входа


[03:46 - 04:03] а в наше приложение для этого используются так называемые роутер а что такое роутер а роутер это компонент в приложение которое представляет собой отображения урлов на в ней ц а


[04:03 - 04:19] с точки зрения программиста роутер может быть представлен самыми разными способами в некоторых случаях это просто большой х что есть набор


[04:19 - 04:34] паттернов функции некоторых случаях а роутер а представляет собой более сложную конструкцию древовидная так или иначе а декларативное описание то есть


[04:34 - 04:49] это скорее не программный код а именно описание того какой он должен приводить какой функции а фреймворк просматривает все записи которые есть в роутере углов а и


[04:49 - 05:04] выбирает подходящую то есть мы говорим что роутер указывает стрелочка указывает на какой то контроль а в данной схеме кстати вот


[05:04 - 05:20] сплошные стрелочки означают вызов то есть что передается управление вызов а вот с стрелочка от роутера контроллеру это а выбор то есть роутер определяет какой контроллер будет выполняться а далее


[05:20 - 05:38] когда определили когда фреймворк определил какой контроллер будет выполняться он передает выполнение контрольных то есть контроллер а это точка входа вашего приложения


[05:38 - 05:56] контроллер он не 1 то есть контроллеров приложение скорей всего существует много с помощью роутера выбирает с какой то 1 он начинает выполняться а контроллер делает вызовы к модели


[05:56 - 06:14] модель в свою очередь а реализуют полностью бизнес логику то есть модель это та часть приложениях которые реализованы в бизнес логика как то поход в какие то базы данных


[06:14 - 06:29] а обращение к каким то внешним сервисом а какие то вычисления и тому подобное то есть а все что представляет


[06:29 - 06:46] приложение должно находиться в модели модель возвращает к контроллеру готовые данные для отображения то есть модели отработала а возвращаются сданные


[06:46 - 07:01] контроллер передает эти данные а компонент view компонент ее это представление а роль компонентов в том чтобы по имеющимся данным


[07:01 - 07:20] сгенерировать что мэри страничку либо другую необходимость не обязательно что мы может быть это может быть а джисон либо xml и бы что угодно а и собственно говоря полученное страничка возвращается


[07:20 - 07:35] клиент а мы видим здесь серую стрелку такую от компонентов компонентом модель это означает что в некоторых случаях


[07:35 - 07:53] компонент view может вызывать какие то методы из модели напрямую а это спорный такой вопрос в разных фреймворках реализованы по разному в некоторых компонентах u может вызывать методы контроллера в некоторых может вызывать методы модели а поэтому


[07:53 - 08:09] вот это такая опциональная часть паттерна а все остальное это обязательно давайте повторим еще раз а роли разных частей начнем с модель


Step 3 (S-44782) 3.png

[08:09 - 08:26] роль модели а заключается в том чтобы реализовать бизнес логику обеспечить доступ к данным все необходимые вычисления действие взаимодействие с внешними сервисами а при необходимости модель


[08:26 - 08:44] может вызывать некоторые вспомогательные классы авторы а дальше роль вью король вьюг заключается в генерации а что либо другое представление по готовым данным а роль контроллер


[08:44 - 09:03] контроллер заключается в том чтобы связать их вместе а также контроллеру относится все что касается протоколов http то есть контроллер знает про конкретные названия заголовков про конкретные названия параметров а вот теперь а


[09:03 - 09:22] как называются куки модель про это не знаю то есть задача контроллера абстрагировать модель от работы с протоколом http а модель приложение теоретически может использоваться не только из контроля но из каких то других программных систем вообще не связано с в


[09:22 - 09:38] а контроллер обеспечивает работу сочтите p p особенности не связывают между собой контроллер модель тестом вызывает сначала модель о связывает между собой модель


[09:38 - 09:56] и вью вызывает сначала модель потом передает данные роутер это собственно говоря компонент который обеспечивает выбор конкретного контроллера по урлу а вот это 4 основных компонента


[09:56 - 10:14] на самом деле а в горках а существуют всякие а утилитарные класса для обработки форм и тому подобное но они отношение имеют косвенно


[10:14 - 10:32] какие существуют на сегодняшний день а вообще их довольно большое количество а в некоторых языках в десятке а в некоторых там несколько штук


Step 3 (S-44782) 4.png

[10:32 - 10:48] тем не менее пройдем просто примеры популярных фреймворка а это очень мощный фреймворк благодаря которому язык ruby собственно говоря стал


[10:48 - 11:07] полярным для веб разработки фактически а это такое локомотив за которого весь рубин идет а здесь или не знаю как правильно читается фреймворк это 1 из популярных фреймворков для языка php


[11:07 - 11:25] изначально php вообще не предполагал архитектура мвц он работал по другому принципу по принципу в 1 очередь шаблонизатор то есть выполнение начиналось с конкретного view но а 150 хорошо зарекомендовал что


[11:25 - 11:42] php в последнее время появилось с десяток различных шаблонов и вот 1 из популярных это а y i i и наконец джанго


[11:42 - 11:59] джанго это эмоции шаблон для языка python а в нашем курсе мы будем использовать именно его а и решение всех практических задач мы будем рассматривать с точки зрения использования языка


[11:59 - 12:17] а в чем плюсы вообще использования когда их стоит использовать не стоит использовать плюсов много а важный + состоит в том что они предоставляют готовую архитектуру проекта


Step 3 (S-44782) 5.png

[12:17 - 12:32] а конечно все программисты талантливы но не все опытные поэтому зачастую когда программист начинает разрабатывать проект с 0 получается такая а слишком хитрая конструкция либо спагетти код


[12:32 - 12:48] ограничивает программиста издает ему уже готовый а готовые такой подход к написанию проекта архитектуру проекта получается лучше повторное использование кода ну это очевидно это просто библиотека которую вы используете


[12:48 - 13:04] которая предоставляет готовые решения распространенных проблем как следствие это экономит ресурсы а использование фреймворка в поощряется большая часть движение open source то есть доработку этих фреймворков


[13:04 - 13:21] это в принципе хорошо правильно ну и последние 2 плюса не а важные и вообще для любых проектов а для популярных фреймворков проще найти программистов но поскольку фреймворки популярной прочих обучить


[13:21 - 13:38] а все в каморке они идут довольно с хорошей документации популярны поэтому объяснить программисту что нужно прочитать тот или иной tutorial всегда легче проще чем объяснять ему особенности архитектуры своего собственного приложения