Паттерны
О чем будем говорить?
О чем будем говорить?
О паттернах в целом — что это такое, зачем нужно
Как паттерны появляются от задачи
Разбор явных паттернов а библиотеках
KISS
Паттерны
в реальной жизни
Уборка?
Получение паспорта?
Госуслуги?
Какие паттерны вам известны?
Стратегия
function reducer(state = {}, action) {
switch(action.type) {
case 'RECEIVE_VACANCY':
return {
...state,
...action.vacancy,
status: 'RECEIVED'
};
case 'FETCH_VACANCY':
return {
...state,
...action.vacancy,
status: 'LOADING'
};
default:
return state;
}
}
Стратегия
createReducer({}, {
RECEIVE_VACANCY: () => ({
...state,
...action.vacancy,
status: 'RECEIVED'
}),
FETCH_VACANCY: () => ({
...state,
...action.vacancy,
status: 'LOADING'
})
});
Декоратор
class Cat {
meow() {
}
}
Декоратор
@mrrrr()
class Cat {
meow() {
}
}
Попроще: https://refactoring.guru/ru/design-patterns
Посложнее: (GOF) https://ru.wikipedia.org/wiki/Design_Patterns
Что почитать?
Откуда паттерны возникают?
Декоратор
class Cat {
meow() {
}
}
Декоратор
class Cat {
meow() {
}
}
class CatWrapper extends Cat {
constructor() {super()}
sounds = []
register(newSound) {
this.sounds.push(newSound);
}
meow() {
this.sounds.forEach(sound => sound());
super.meow();
}
}
Как паттерны возникают в коде?
Как решения строятся на паттернах?
Разберем построение либ на паттернах
Когда не нужно следовать паттернам
Паттерны
By Nik Mostovoy
Паттерны
- 761