Last major update: 25.08.2020
- Что такое авторизация/аутентификация
- Где хранить токены
- Как ставить куки ?
- Процесс логина
- Процесс рефреш токенов
- Кража токенов/Механизм контроля токенов
К школе стоит относиться как к тренировкам. При таком подходе станет проще воспринимать всякие конфликты в классе и т.д.
Есть 4 стадии обучения:
Как правило, фасад используется для создания некоторой абстракции, скрывающей за собой совершенно иную реальность. Паттерн Фасад обеспечивает удобный высокоуровневый интерфейс для больших блоков кода, скрывая за собой их истинную сложность. Относитесь к Фасаду, как к упрощенному API, который вы отдаете в пользование другим разработчикам.
Фасад — структурный паттерн. Часто его можно обнаружить в JavaScript-библиотеках и фреймворках, где пользователям доступна только ограниченная абстракция широкого диапазона поведений реализованных внутри.
Благодаря такому подходу, пользователь взаимодействует только с интерфейсом, не имея никакого представления о подсистемах, которые скрываются за ним.
Причина, по которой интересен Фасад — возможность скрыть детали реализации конкретной функциональности, хранящиеся в модулях. Это позволит нам вносить изменения в реализацию, не сообщая об этом пользователям.
Redux-приложение это:
Все состояние вашего приложения сохранено в объекте внутри одного хранилища (store). Единственный способ изменить дерево состояния - это вызвать действие (action), объект описывающий то, что случилось. Чтобы указать, каким образом действия преобразовывают дерево состояния - нужно использовать чистые "редюсеры".
ACTIONS
/** | |
* Syntax. | |
* Объявления переменных стоит выполнять вверху блока кода. | |
* По старинке. Это позволит избежать ReferenceError! | |
* Это Temporal Dead Zone (TDZ) ошибка: переменная объявлена, но ещё не | |
* инициализированна. | |
*/ | |
{ | |
console.log( a ); // undefined | |
console.log( b ); // ReferenceError! |
// ================================================================ // Стефанов - JS. Шаблоны // ================================================================ /** ВСТУПЛЕНИЕ
Шаблоны программирования представляют собой методы решения наи- более типичных задач веб-разработки.
Объект в js – это всего лишь коллекция именованных свойств, список
// ================================================================ | |
// Крокфорд - JS Сильные стороны | |
// ================================================================ | |
/** | |
Старый полифил для Object.create(): | |
*/ | |
if (typeof Object.create() !== 'function' { | |
Object.create = function (o) { | |
var F = function () {}; | |
F.prototype = o; |
// ================================================================ | |
// Apply: Get max item | |
// ================================================================ | |
var arr = [1, 2, 50, 20, 38, 88]; | |
function getMax(arr) { | |
return Math.max.apply(null, arr); // ES6: Math.max(...arr) | |
}; | |
console.log(arr.getMax(arr)); // 88; |
// ================================================================ // MVC (Model-View-Controller) // https://ru.wikipedia.org/wiki/Model-View-Controller // https://upload.wikimedia.org/wikipedia/commons/f/fd/MVC-Process.png // ================================================================ /** Концепция MVC позволяет разделить данные (модель), представление и обработку действий (производимую контроллером) пользователя на три отдельных компонента:
/* | |
* ================================================================ | |
* Creational patterns | |
* ================================================================ | |
*/ | |
/** | |
* Generating objects with Object.create(). | |
* Object.create creates prototype chain for object extending. | |
* https://jsbin.com/resixu/19/edit?html,js,console | |
*/ |