Началась регистрация на бесплатный курс Patterns Mini 👉 https://nodeua.com/Patterns-2025-free
❤5👍3🔥2
Чем опасно писать асинхронный код на событиях? Обсуждаем с Мурычем паттерн Observer и его реализации для JavaScript: EventEmitter для бекенда и EventTarget для фронтенда https://www.youtube.com/watch?v=AWJDal1ueuQ
YouTube
💡 Observer Pattern: EventEmitter, EventTerget для JavaScript и TypeScript, Backend и Frontend
👉 Курс по паттернам https://nodeua.com/Patterns-2025
👉 Бесплатный курс Patterns Mini: https://nodeua.com/Patterns-2025-free
👉 Курс «Асинхронное программирование»: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Async-2025.md
👉 Курс Node.js:…
👉 Бесплатный курс Patterns Mini: https://nodeua.com/Patterns-2025-free
👉 Курс «Асинхронное программирование»: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Async-2025.md
👉 Курс Node.js:…
❤6👍2🔥1
Тут несколько примеров из завтрашних слайдов
Containers
Guards
in JavaScript
Pattern matching
in JavaScript
Do-notation
Pipeline operator
Declarative style
🧐 заходим, не стесняемся 👉 https://nodeua.com/Patterns-2025-paradigms
Containers
Box.of(42); Either.right(42); Promise.resolve(42);
let maybe: number | null = 42; type Pair = { a?: number; b?: number };
type Option<T> = { kind: 'some'; value: T } | { kind: 'none' };
std::optional<int>; std::tuple<int>; std::reference_wrapper<int>;
Nullable<int> maybe = 42; new StrongBox<int>(value); Tuple.Create(myIntValue);
Guards
func process(_ x: Int?) -> Int? {
guard let v = x else { return nil }
guard v >= 0 else { return nil }
return v * 2
}in JavaScript
const process = (x) => {
if (x === null) return null;
if (x < 0) return null;
return x * 2;
};Pattern matching
fn process(x: Option<i32>) -> Option<i32> {
match x {
None => None,
Some(v) if v < 0 => None,
Some(v) => Some(v * 2),
}
}in JavaScript
const match = (variant, handlers) => handlers[variant.tag](variant);
match({ tag: 'point', x: 10, y: 20 }, {
point: ({ x, y }) => `(${x}, ${y})`,
circle: ({ r }) => `radius: ${r}`
});
Do-notation
Do({ id: 15 })
.chain(({ id }) => ({ id, name: 'marcus', age: 42 }))
.chain(({ name, age }) => name === 'marcus' ? (log) => log(age) : () => {})
.run()(console.log);Pipeline operator
(({ id: 15 })
|> read
|> (({ name, age }) => name === 'marcus' ? (log) => log(age) : () => {})
)(console.log);Declarative style
execute({
read: { id: 15 },
success: {
match: { name: 'marcus' },
success: { effect: { log: 'age' } },
fail: { effect: 'noop' },
},
})(reader)(console.log);🧐 заходим, не стесняемся 👉 https://nodeua.com/Patterns-2025-paradigms
👍3❤2🤯1
https://nodeua.com/Patterns-2025
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🎉3👍1
🎬 Режисерская версия стрима с Мурычем и Брагилевским про парадигмы программирования нарезана и собрана в один плейлист, кто не смотрел, вот тут все https://www.youtube.com/playlist?list=PLHhi8ymDMrQYveSqg-fFSbT3e3j1pYgbV
🔥8❤3👍1😢1
Многие выпускники курса кардинально изменили свою профессиональную карьеру, запустили свои проекты, нашли новую работу, стали менторами на курсе, начали контрибьютить в оупенсорс, заслужили уважение коллег, научились делать доклады и статьи, писать концептуальный код, который вдохновляет подчиненных и делает задание понятным.
Воскресенье - последний шанс зарегистрироваться, потом догнать курс уже будет нереально, а следующего набора ждать примнрно 5 месяцев. https://nodeua.com/Patterns-2025
Воскресенье - последний шанс зарегистрироваться, потом догнать курс уже будет нереально, а следующего набора ждать примнрно 5 месяцев. https://nodeua.com/Patterns-2025
❤4👍2🎉2😭2😢1