[MUSIC]
Прежде чем мы начнем изучать Angular более подробно, давайте зададим себе
фундаментальный вопрос, зачем нам нужны эти фреймворки JavaScript?
Что именно они и что они помогают нам
выполнить, чего мы не можем сделать с помощью стандартного JavaScript?
Давайте рассмотрим некоторые из этих вопросов немного подробно в этой лекции.
Во-первых, почему фреймворки JavaScript?
Очевидно, что из вашего предыдущего опыта работы с JavaScript и
также, возможно, опыт работы с фреймворками на основе веб-интерфейса, такими как Bootstrap и
, использование jQuery, вы более или менее решили, что вы можете
получить большинство вещей, которые вы хотите сделать на веб-сайте выполнено,
, используя все эти инструменты и техники, которые у вас уже есть под рукой.
Действительно, многие успешные веб-сайты могут быть реализованы с помощью
этих простых методов и инструментов.
Но по мере роста сложности вашего приложения
количество манипуляций с DOM, которое необходимо выполнить, и количество обновлений данных
, которые необходимо обрабатывать вручную, становится значительно сложным.
Простые подходы, такие как использование библиотеки jQuery, могут
недостаточно удовлетворить потребности, которые у вас есть под рукой.
Это где наличие хорошо структурированных фреймворков
, таких как Angular, которые полагаются на стандартные,
программные парадигмы или шаблоны разработки программного обеспечения, такие как представление модели
контроллер или модель представления модели или вид модели, что угодно, помогает нам в
реализовать эти веб-сайты эффективно и масштабируемо.
Теперь в этом контексте, мы собираемся поговорить об этом немного более подробно
по мере того, как мы идем в этом курсе.
Мы также поговорим о том, как мы привязываем модель к представлению и
использование контроллеров и моделей представления для выполнения этих вещей.
Будет обсуждаться немного более подробно, как мы рассматриваем Angular в этом курсе.
Позвольте мне быстро напомнить вам о том, что такое библиотека программного обеспечения,
библиотека программного обеспечения представляет собой набор реализаций поведения
, которые вы неоднократно используете в своих приложениях.
Таким образом, эти поведения могут быть реализованы с помощью функций с четко определенными интерфейсами
, поэтому
, что использование их при реализации вашего приложения становится простым.
Если вы занимались программированием на любом языке, вы бы часто
видели, что многие стандартные функции, поддерживаемые
на этих языках, реализованы через библиотеки, которые вы используете.
Например, входные выходные библиотеки и, возможно, даже
библиотеки GUI, которые поддерживают многие стандартные языки программирования.
Это где концепция повторного использования поведения очень,
очень эффективна, потому что мы можем реализовать ее один раз в библиотеке, а затем повторно использовать это поведение везде, где нам нужно в нашем программном приложении.
Это также вносит модульность в способ реализации нашего приложения.
Хорошим примером библиотеки программного обеспечения, которая используется в веб-мире, является jQuery.
Если бы вы взяли предыдущий курс Bootstrap,
вы бы увидели некоторые элементы jQuery в этом курсе.
В этом контексте
позвольте мне также отличить библиотеку программного обеспечения от программной структуры.
Программный фреймворк представляет собой абстракцию
, в которой программное обеспечение обеспечивает такую общую функциональность, а затем предоставляет вам возможность настроить эту функциональность для
реализации решений для вашего конкретного приложения.
Таким образом, вы будете дополнять программную инфраструктуру своим собственным кодом
, чтобы выполнить все, что вы пытаетесь выполнить.
Таким образом, это другой способ мышления о том, как вы
пытаетесь решить проблему в отличие от использования библиотеки программного обеспечения.
Теперь эта программная платформа обеспечивает универсальную многоразовую среду
с определенной функциональностью, которая является частью более крупной программной платформы.
Мы рассмотрим Angular как пример того, как это делается более подробно.
Есть несколько других таких программных фреймворков, которые используются в веб-мире
, включая Ember, Backbone и многие другие.
Теперь здесь, вы, очевидно, думаете о вопросе.
Как отличить библиотеку от фреймворка?
Каковы характерные характеристики каждого и
, почему вы классифицируете один как библиотеку, а другой как структуру?
Где вы проводите различие между ними?
Теперь это я должен сказать,
есть тонкая линия, отделяющая библиотеку от фреймворка.
В зависимости от того, как вы подходите к этому, вы можете рассматривать один или
другой как библиотеку, или фреймворк, и
в зависимости от того, кого вы спрашиваете, некоторые люди могут классифицировать определенный
как библиотечный подход в отличие от рамочного подхода.
Опять же, давайте не будем делить наши волосы о попытке точно
классифицировать вещи в библиотеку или фреймворк.
С нашей точки зрения, если что-то помогает нам выполнить нашу задачу,
, то мы довольны этим подходом.
Опять же, сказав это, давайте немного более подробно различать библиотеку и
фреймворк.
Для того, чтобы понять, как вы приближаетесь
, что весь способ написания вашего приложения.
Когда вы используете библиотеку в отличие от использования фреймворка.
Поэтому в этом контексте следующее определение, которое я заимствовал
из документации AngularJS, я чувствую
дает немного более четкое различие между библиотекой и структурой.
Таким образом, это определение говорит, что библиотека представляет собой набор функций
, которые полезны для написания веб-приложений, примером чего является jQuery.
Так что это набор функций, которые доступны вам.
Вы пользуетесь этими функциями при реализации своего программного обеспечения
решения вашей проблемы.
Когда вы используете этот подход, именно вы программист, который всегда контролирует
того, как вы используете функции, предоставляемые
библиотекой, чтобы выполнить все, что вы пытаетесь сделать.
Рамки с другой стороны - это конкретная реализация или
конкретная реализация веб-приложения,
, где сама структура дает широкую общую структуру для
вашего приложения, а затем вас просят заполнить детали.
Сведения, необходимые для настройки этого приложения
для решения конкретной проблемы, которую вы пытаетесь решить.
Таким образом, здесь структура берет полный контроль над тем, как работают эти приложения, и
, затем он вызовет ваш код, предоставленный пользователем, который помогает ему выполнить работу.
Код конкретного приложения - это то, что вы напишете и
поставите его, и это станет частью всего приложения,
вместе с фреймворком, и это помогает выполнить вашу задачу.
Опять же, это может не полностью, ясно позволить вам понять различие между фреймворком и библиотекой.
Давайте снова, как я уже сказал,
давайте не будем раскладывать наши волосы, пытаясь выяснить все эти детали.
То, что нам нужно понять, это Angular - это пример фреймворка и
, когда вы пишете приложения в Angular, структура берет под контроль и
вы в основном предоставляете недостающие части кода, которые необходимы
для настройки фреймворка для реализации вашего конкретного веб-приложения.
Изучаем рамки слов немного более подробно.
Когда мы говорим о фреймворке, один из важных аспектов о том, как работает фреймворк
, суммируется этим термином называется голливудским принципом.
Что именно я имею в виду под Голливудским принципом?
Теперь, если вы знаете, как работает голливудский агент, когда актер или
актриса хочет найти работу в Голливуде,
они подойдут к агенту, и агент обычно скажет вам,
мы перезвоним вам, когда у нас будет какая-то работа для вас.
Не звони нам, мы вам перезвоним.
Таким образом, по сути рамки отражают тот же принцип.
Структура говорит, что вы поставляете все, что можете сделать, и
фреймворк будет вызывать ваш предоставленный код всякий раз, когда ему нужно что-то сделать.
Именно поэтому мы используем этот термин Голливудский принцип в мире программного обеспечения.
Это также можно суммировать с помощью этого другого выражения
, называемого Inversion of Control.
Когда вы используете библиотеку, вы, программист, контролируете, а
вы диктуете, как работает код и как выполняется код.
Когда вы используете фреймворк,
вы фактически отдаете свои привилегии фреймворку, а
позволяет этой структуре взять на себя ответственность, а затем диктовать, как выполняется приложение.
Теперь, хотя вы можете показаться, что это похоже на сдавание вашей независимости,
, конечно, это не так, если фреймворк имеет определенную причину для того, чтобы взять
на себя ответственность за выполнение того, что он должен сделать от вашего имени.
Так что это место, где мы будем проводить различие между
двумя подходами к написанию программ.
Один назывался императивным способом написания программ, а
второй назывался декларативным способом написания программ.
Если вы сделали любой курс языков программирования,
вы увидите, что языки программирования обычно используют один или
другой подход, который эта поддержка в написании программ.
В императивном программировании
вы будете указывать функции программы шаг за шагом.
Так вы полностью и контролируете и
то вы, по сути, говорите, что это то, как вы должны выполнить задачу и
, то вы будете записывать шаг за шагом способ выполнения задачи.
Таким образом, вы, как программист, полностью контролируете в указании точных шагов
для решения проблемы.
В декларативном программировании, с другой стороны,
, который эффективно используется фреймворками, такими как Angular.
Вы по существу говорите, что это то, что я хочу достичь, и
это то, как я настраивал то, что конкретно я хочу достичь.
Как это делается, меня не волнует.
Но я передам эту ответственность рамкам.
Итак, по сути, вы предоставляете свой пользовательский код для фреймворка и
говоря, что теперь это то, что я хочу, чтобы вы сделали, вы берете на себя ответственность и делаете это.
Таким образом, в декларативном программировании вы только объявляете, что является вашим намерением
, и позволяете фреймворку решать, как это будет достигнуто.
Два разных способа мышления о том, как вы подходите к решению своей проблемы.
Это то, что вы должны получить голову вокруг, когда вы узнаете
Angular, потому что если вы пришли из императивного мира программирования,
ваша общая тенденция будет контролировать все и
диктовать шаг за шагом, как вы хотите достичь.
Таким образом, требуется некоторое время, чтобы обернуть голову вокруг этой концепции, что вы
не обязательно контролируете каждый шаг.
Вместо этого вы говорите фреймворку, кем вы хотите стать, чтобы быть реализовано.
И возложите ответственность на фреймворк, чтобы выполнить
задачу от вашего имени.
Опять же, не беспокойтесь об этом и не читайте слишком много в этих определениях.
Это из академического интереса, они являются основой для определения различных моделей поведения
с точки зрения разработчика веб-приложений.
Все, о чем вы заботитесь, это как вы выполняете свою работу
с использованием Angular в качестве структуры веб-приложений.
Приходя к миру фреймворков JavaScript,
вы услышите много терминов, используемых с фреймворками JavaScript.
Вы часто слышите, как люди говорят о чем-то, называемом одним приложением pPage
или союзным термином, называемым богатым интернет-приложением.
Опять же, мы рассмотрим, что это значит в одном из последующих уроков
в этом курсе в контексте Angular.
Аналогичным образом, вы также услышите людей, которые говорят о Model-View-Controller,
Model-View-ViewModel, Model-View-Whated и так далее.
Опять же, это, как я уже сказал, парадигма архитектуры программного обеспечения
, которую мы используем для разработки программных приложений.
Мы поговорим немного более подробно об этом в контексте Angular,
в одном из последующих уроков.
И в этом контексте вы услышите в Angular такие вещи, как привязка данных, маршрутизация
, одностороннее и двустороннее связывание данных и так далее.
Опять же, не сбивайся со всех этих условий.
Мы поймем их по мере прохождения этого курса.
Точно так же вы часто слышите о масштабируемом,
многоразовом, поддерживаемом коде JavaScript и так далее.
Это замечательные концепции или
замечательные атрибуты, которые мы хотим достичь с помощью нашего приложения.
Мы увидим, как Angular помогает нам сделать это в этом конкретном курсе.
И еще один термин, о котором вы часто будете слышать, это
тестовое развитие.
Angular действительно поддерживает тестовую разработку, поэтому даже перед разработкой
вашего приложения вы напишите тест, чтобы убедиться, что код
, который вы реализуете, фактически выполняет то, что вы пытаетесь выполнить.
Мы рассмотрим немного тестового развития к более поздней части
этого курса.
Хотя, если вы хотите принять этот тестовый подход разработки для
, реализующих приложения, это замечательный подход.
Но прежде чем мы перейдем к этому моменту, нам лучше понять, что само фреймворк помогает нам достичь.
Итак, в этом курсе я кратко остановлюсь на тестируемом развитии.
Но если бы вы внедряли реальное угловое приложение, вы бы приняли
подход разработки, основанный на тестировании, для разработки угловых приложений.
Есть много, много JavaScript фреймворков, которые доступны в реальном мире.
Угловое является началом.
Угловой в своем более раннем воплощении
как AngularJS был одним из самых популярных фреймворков JavaScript.
Мы рассмотрим Angular более подробно, как мы идем дальше.
Аналогично, если вы посмотрите на мир фреймворков JavaScript,
вы услышите, как люди говорят о Ember, Backbone, React.
Хотя некоторые люди классифицируют React как библиотеку, а не структуру.
Опять же, в зависимости от того, кого вы спрашиваете,
некоторые люди могут сказать, что это фреймворк, а некоторые могут сказать, что это просто библиотека.
Опять же, давайте не будем слишком беспокоиться о том, что это такое, но это доступно для
нас как подход к реализации сложных веб-приложений.
Аналогичным образом, другие небольшие фреймворки, такие как Aurelia, Meteor, Polymer,
Google Polymer, который является предстоящим фреймворком, Knockout, Vue и многие другие.
И все больше добавляется к этому каждый день.
Что такое колорит фреймворка JavaScript сегодня?
Угловой.
Он только что вышел из фазы развития и вышел в реальный мир.
И люди борются за разработку приложений с использованием Angular.
Так вот почему мы заинтересованы в Angular в этом конкретном курсе.
Теперь, как только вы узнаете один из них,
вы начнете понимать нежный подход, который используют эти фреймворки.
Возможно, вы сможете подобрать другие фреймворки аналогичным образом, используя
общие концепции, которые вы изучаете в этом конкретном курсе.
[МУЗЫКА]