В последнее время недели кажутся размытыми, но все начинает складываться воедино. Наконец-то я чувствую, что разобрался с API моего выпускного проекта. Это доставляло мне массу неприятностей. Оказывается, я пытался создать слишком много странных и ненужных отношений. Человеком даже в отношениях программирования бывает трудно управлять 😂. Но это работает, и медленно, но верно я собираю свой проект по кусочкам. Кроме того, я сказал своим боссам, что ухожу в конце года. Они понимали и поддерживали меня и оставили дверь открытой для меня, чтобы я мог вернуться, если захочу, хотя это не будет — по крайней мере, сначала — как программисту, поэтому я ухожу с самого начала. Итак, вот что со мной, теперь давайте перейдем к хорошему — угловым вопросам для обсуждения на этой неделе!

  1. Обсудите словами то, что вы узнали на уроке сегодня или на этой неделе.

Заставьте их думать → Когда я занимался репетиторством, особенно для некоторых студентов, изучающих c#, я понял, что мне легко увидеть, как проект должен выглядеть в конце, потому что Я сделал это, и хотя я мог бы просто сказать им, что делать, лучше указать правильное направление, чем обрисовывать для них все в общих чертах; я также думаю, что лучше заставить их работать и попытаться позволить им провести как можно больше рефакторинга самостоятельно, чтобы они развили на это глаз. Конечно, для развития способности к рефакторингу полезно иметь примеры или указания, раскрывающие простой, но «элегантный» код.

Решить проблемы → Легко столкнуться с проблемой и просто решить ее позже. Однако иногда эта проблема становится больше или ее влияние возрастает. Вероятно, лучше будет решить проблему как можно скорее.

Полезно иметь команду →Хорошая команда невероятно полезна. 1) У вас есть другие люди, к которым можно обратиться за советом, когда вы в тупике, 2) они помогают разделить бремя, когда все становится хаотично.

2. Объясните, в чем разница между Angular и backbone.js?

Angular и Backbone.js — это JavaScript-фреймворки с открытым исходным кодом (хотя backbone больше похож на библиотеку, чем на фреймворк), однако между ними есть некоторые существенные различия.

  • Angular — это тяжеловес, разработанный для приложений, интенсивно использующих данные. Однако Backbone.js легче и предназначен только для небольших/простых веб-приложений.
  • Backbone соответствует формату MVC с шестью основными компонентами: Model, View, Collections, Events, Routers и Sync. Для Angular основной функционал включает в себя: двустороннюю привязку данных, внедрение зависимостей, легко тестируемый код, глубокие ссылки и маршрутизацию.
  • Angular использует динамические атрибуты HTML, а Backbone реализует шаблоны Underscore.
  • Backbone не имеет того же уровня документации и поддержки сообщества, что и разработчики Angular.

Обе структуры полезны и имеют свое место в развитии. Что использовать, зависит главным образом от того, насколько большим будет ваше приложение. Если это не крупномасштабно, то магистраль может быть более подходящей, поскольку она проще и производительнее. Однако в определенный момент простота Backbone станет ограничением, и тогда Angular засияет. (educba.com)

3. Можете ли вы объяснить концепцию иерархии областей видимости в Angular?

Во-первых, что такое область действия в Angular?

Scope на самом деле является объектом, который ссылается на модель в структуре приложения, такой как Model View Controller (MVC) (dzone.com).

Таким образом, область видимости — это та часть, которая связывает HTML с JavaScript (w3schools.com). Он полезен тем, что предоставляет определения для выражений и имеет свойства и методы, к которым может обращаться как представление, так и контроллер [(JavaScript)] (dzone.com).

Структура области действия аналогична иерархии DOM. Он начинается с $rootScope, только по одному на приложение, а затем под ним может быть множество дочерних областей. Эти дочерние области также могут иметь дочерние области, таким образом, вы получаете дерево области видимости, подобное тому, что вы видите в DOM. Эти дочерние и родительские отношения области действия используют прототипное наследование. Наследование прототипов — это процесс, посредством которого поиск свойств следует за цепочкой прототипов объектов JavaScript. Это означает, что дочерняя область может не иметь определенного внутри нее метода, но она ссылается на свою родительскую область и может вызывать метод, существующий там в parent.prototype. (medium.com)

4. Объясните Angular аутентификацию и авторизацию.

В Angular Authentication действие запрещает вход в веб-приложение до тех пор, пока пользователь не введет учетные данные, а затем проверяется внутренним сервером, подтверждая, что им разрешен доступ к этому приложению. Это происходит естественным образом на странице входа в систему (или компоненте), которая использует внедренную зависимость AuthService. В AuthService есть вызов API, который берет данные пользователя и отправляет их в конечную точку входа в конечную точку сервера, где данные проверяются. Если этот человек действительно является законным пользователем приложения, то во многих случаях сервер будет возвращать (хотя есть и другие методы) веб-токен JSON (JWT). Этот токен зашифрован алгоритмом и секретом, который хранится на сервере.

Зачем нам возвращать токен? Цель возврата токена — снизить риск отправки незашифрованного пароля через Интернет каждый раз, когда делается запрос. Теперь это больше переходит в Авторизацию. Пользователь получил доступ к входной двери приложения, но это не означает, что он должен иметь доступ, чтобы видеть и делать все, что предлагает приложение. Нам все еще нужно убедиться, что им разрешено видеть и делать определенные вещи. Для этого нам нужен способ надежно идентифицировать пользователя каждый раз, когда он делает запрос на данные. Для этого мы могли бы заставить их вводить свой пароль каждый раз, но это утомительно для пользователя и уязвимо для атак. Если мы сохраним пароль в локальном хранилище, встроенной в браузер возможности сохранять данные для сайта, мы можем избавить пользователя от некоторых проблем, но у нас все еще есть высокий потенциал для компрометации пароля.

Таким образом мы используем токены! Эти зашифрованные «пароли» (они не пароли) легко хранятся в локальном хранилище, и их гораздо безопаснее отправлять через Интернет на наш сервер. В Angular некоторые из конкретных вещей, которые вы будете использовать для этого процесса, — это такие вещи, как BehaviorSubject, observables, authGuards и специальный синтаксис для установки и получения элементов в localStorage и из него. Существует также модуль Interceptors, который является еще одним сервисом, который вы можете реализовать в Angular, чтобы прикреплять токен пользователя к запросам API каждый раз, когда они выполняются.

Вот несколько примеров всего этого из моего текущего проекта:

Есть несколько отличных статей об аутентификации и авторизации в Angular. Быстрый поиск в Google даст вам все необходимые инструменты!

5. Перечислите некоторые характерные особенности Angular 7. Что предлагает Angular 8?

Прежде чем мы пойдем дальше, скажем, что в мире является выдающимся?… Согласно Оксфордскому словарю, выдающимся является то, что «наиболее заметно или важно». Итак, каковы наиболее примечательные особенности Angular 7?

1) Подсказки CLI: с Angular 7 появилась возможность взаимодействовать с CLI при создании или установке определенных вещей. Например, запуск команды ng add @angular/material предложит вам выбрать цветовую схему или анимацию браузера. Простое создание нового проекта angular даст вам возможность, опять же из CLI, выбрать Angular Routing или один из многих языков стилей (CSS, SCSS, SASS и т. д.).

2) Виртуальная прокрутка: длинные списки данных разбиваются на более мелкие пакеты по мере того, как человек прокручивает список. Это особенно хорошо для мобильных приложений.

3) Бюджеты пакетов: разработчики теперь могут устанавливать минимальные и максимальные ограничения для пакетов, которые выдают предупреждения, а затем ошибки, когда пакеты превышают диапазоны. Это сделано для повышения производительности приложений.

4) Собственный скрипт: Angular 7 принес с собой возможность создавать веб-приложения и мобильные приложения из одного проекта. Этим занимается «коллекция схем собственных скриптов».

(данные-чутье.обучение)

Есть и другие важные функции, которые Angular 7 привнес в фреймворк, но эти 4 — те, которые действительно выделялись для меня. А как насчет Angular 8? Я позволю этой удобной небольшой инфографике с angularminds.com поделиться:

Если вы хотите прочитать об этих различных функциях, ссылка на статью выше подробно описывает каждую из них.

И на этом я должен попросить вас пока попрощаться.

Ура!