Last major update: 25.08.2020
- Что такое авторизация/аутентификация
- Где хранить токены
- Как ставить куки ?
- Процесс логина
- Процесс рефреш токенов
- Кража токенов/Механизм контроля токенов
| /** | |
| * | |
| * ПАТТЕРН ЦЕПОЧКА ОБЯЗАННОСТЕЙ (Chain of responsibility) | |
| * | |
| * Паттерн ЦЕПОЧКА ОБЯЗАННОСТЕЙ - это поведенческий паттерн проектирования, который позволяет передавать запросы | |
| * последовательно по цепочке обработчиков. Каждый последующий обработчик решает, может ли он обработать запрос сам | |
| * и стоит ли передавать запрос дальше по цепи. | |
| * | |
| * Пример: у вас есть три счета (A, B, C) с разными суммами и разным приоритетом использования. Сначала проверяется A, | |
| * если на нем достаточно денег для покупки, то цепочка прерывается. Иначе проверяется B, затем C. Цепь будет |
| /** | |
| * | |
| * ПАТТЕРН СТРОИТЕЛЬ (builder (композиционный конструктор обьекта)) | |
| * | |
| * Паттерн СТРОИТЕЛЬ - это порождающий паттерн проектирования, который позволяет создавать сложные объекты пошагово. | |
| * Строитель даёт возможность использовать один и тот же код строительства для получения разных представлений объектов. | |
| * Применение: Паттерн Строитель нужен, если объект может существовать в разных вариациях или процесс | |
| * инстанцирования состоит из нескольких шагов. | |
| * В этом случае есть три варианта: | |
| * - огромный конструктор(фабрика) со множеством if/else в котором легко запуться и который тяжело понять |
| /** | |
| * | |
| * ПАТТЕРН КОМАНДА | |
| * | |
| Смысл: отделить объект-источник запроса от объекта, принимающего и выполняющего эти запросы. | |
| Паттерн КОМАНДА — это поведенческий паттерн проектирования, который превращает запросы в объекты, позволяя передавать | |
| их как аргументы при вызове методов, ставить запросы в очередь, логировать их, а также поддерживать отмену операций. | |
| Убирает прямую зависимость между объектами, вызывающими операции, и объектами, которые их непосредственно выполняют. | |
| Позволяет реализовать простую отмену и повтор операций. |
Code is clean if it can be understood easily – by everyone on the team. Clean code can be read and enhanced by a developer other than its original author. With understandability comes readability, changeability, extensibility and maintainability.
| /** | |
| * | |
| * ПАТТЕРН SINGLETON | |
| * | |
| * Паттерн Одиночка гарантирует, что класс имеет только один экземпляр, и предоставляет глобальную точку доступа к этому экземпляру. | |
| * | |
| */ | |
| /** | |
| * | |
| * ПАТТЕРН НАБЛЮДАТЕЛЬ (почтальон) | |
| * Несколько наблюдателей (подписчиков) могут получать данные от одного субьекта (почтальона) | |
| * | |
| */ | |
| class Publisher { // субьект, получает и рассылает данные | |
| constructor() { | |
| this.observersList = []; // реестр наблюдателей (подписчиков) |
| /** | |
| * | |
| * ПАТТЕРН ДЕКОРАТОР (обертка) | |
| * Позволяет наделить обьект новыми возможностями не меняя первоначальный класс и не создавая дочерние классы | |
| * Принцип работы: декоратор помещает целевой обьект в обьект обертку, кот-й запускает базовое поведение обьекта, | |
| * а затем добавляет/отнимает что-то свое. | |
| * | |
| */ | |
| class interface_Coffee { |
| ПАТТЕРНЫ ПРОЕКТИРОВАНИЯ: | |
| Паттерны предназначены для решения типичных задач, возникающих в ходе проектирования. Любой паттерн описывает задачу, которая снова и снова возникает в нашей работе, а также принцип ее решения, причем таким образом, что это решение можно потом использовать миллион раз, ничего не изобретая заново. | |
| Все паттерны обеспечивают возможность изменения некоторой части системы независимо от других частей. | |
| -- Паттерн — решение задачи в контексте. | |
| Не самое понятное определение, вы не находите? Не беспокойтесь, мы разберем все его составляющие — все эти контексты, задачи и решения: | |
| - Контекстом называется ситуация, в которой применяется паттерн. Ситуация должна быть достаточно типичной и распространенной. | |
| - Задачей называется цель, которой вы хотите добиться в контексте, в совокупности со всеми ограничениями, присущими контексту. | |
| - Решением называется обобщенная архитектура, которая достигает заданной цели при соблюдении набора ограничений. Решение должно быть возможно применять снова |
| /** | |
| * | |
| * ПАТТЕРН АДАПТЕР | |
| * | |
| Обеспечивает совместимость классов с разными интерфейсами, т.е. выполняет роль переводчика. | |
| В итоге клиент (тот кто вызывает методы) через адаптер может работать с разными классами с разными интерфейсами, даже не подозревая об этом, | |
| хотя умеет пользоваться только одним интерфейсом. | |
| */ |