TGViewer
Channel Public Channel
Asynchronous Programming

Asynchronous Programming

@asyncify

👉 Node.js Channel: https://t.me/metarhia
👉 https://t.me/HowProgrammingWorks
Subscribers
1.97K
Photos
41
Videos
2
Links
145

Showing posts older than #66 · Back to latest

Older Posts 18 shown
Post #65 2.71K
Post #64 3.29K
Post #63 2.99K
Post #62 3.45K
Post #61 3.15K
Post #60 2.38K

Forwarded from Node.js Ukraine Community

— Вы там все с ума посходили с этим своим EventEmutter, натуральный goto, это же мерзость, как и все в этом вашем Node.js
— Это ты где так от EventEmutter пострадал? Опять CTO заставлял собесы принимать?
— Та не, вчера с Васей пиво пили и он мне насвистел... А правда, что у вас даже стримы на гоуту работают?
  • 🤣 15
  • 🤯 2
  • 🎉 1
  • 💩 1
Post #59 8.74K
Patterns for Async & Node.js
Rethinking GRASP, SOLID, and GoF patterns for Frontend & Backend

Опрос для формирования нового курса по переосмыслению принципов GRASP и SOLID, а так же паттернов проектирования (классических GoF и дополнительных), чистой архитектуры и проектирования архитектуры на базе DDD (Domain-driven design) для фронтенд и бекенд инженеров.

10 самых интересных ответов получат мои рекомендации по поднятым темам и ссылки на решения этих проблем из моих открытых и закрытых лекций, семинаров, тренингов, а если нет таких материалов, то я постараюсь ответить лично и привести примеры кода. 👉 https://forms.gle/zE78uTAqKR3GWAoq5
  • 👍 19
  • ❤ 6
  • 🔥 2
  • 🤯 1
Post #58 3.65K
В курсе по асинхронности начинаются более сложные задания. Например: нужно декомпозировать код согласно принципам SOLID, а имеено Single-Responsibility Principle (SRP) чтобы код не потерял работоспособности, но стал более понятным, каждая функция имела только одну ответственность, и его читаемость и возможность исправления существенно улучшилась:

'use strict';

const API_EXCHANGE = {
host: 'openexchangerates.org',
path: 'api/latest.json?app_id=',
key: '1f43ea96b1e343fe94333dd2b97a109d',
};

const DEFAULT_RETRY = 3;

const getRate = async (currency, retry = DEFAULT_RETRY) => {
console.log({ currency, retry });
const { host, path, key } = API_EXCHANGE;
const url = `https://${host}/${path}${key}`;
const res = await fetch(url).catch(() => ({ ok: false }));
if (!res.ok) {
const attemptsLeft = retry - 1;
if (attemptsLeft > 0) return getRate(currency, retry - 1);
throw new Error('Can not get data');
}
const data = await res.json();
const rate = data.rates[currency];
return rate;
};

const main = async () => {
try {
const rate = await getRate('UAH');
console.log({ rate });
} catch (err) {
console.error({ err });
}
};

main();
  • 🔥 17
  • 👍 10
  • ❤ 3
Post #55 3.75K
  • 👍 38
  • 🔥 19
  • ❤ 6
Post #54 2.97K

Forwarded from HowProgrammingWorks - JavaScript and Node.js Programming

Все время уходил от вопроса, про литературу, которую стоит читать программистам, это потому, что мой список выглядит странно и сложно объяснить, почему не Дядя Боб и не Мартин Фаулер... Они тоже, конечно, полезны, но все же мой список такой:

- Рене Декарт
- Людвиг Витгенштейн
- Ноам Хомский
- Кристофер Александер
- Алан Тьюринг
- Джон фон Нейман
- Норберт Винер
- Виктор Глушков
- Клод Шеннон
- Людвиг фон Берталанфи
- Стаффорд Бир
- Уильям Эшби
- Эдсгер Дейкстра
- Дональд Кнут

Это не так много, и точно более полезно, чем нетфликс и амазон
  • 🔥 26
  • ❤ 7
  • 👍 5
  • 🤯 4
  • 🤣 1
Post #51 3.64K

Forwarded from HowProgrammingWorks - JavaScript and Node.js Programming

⚠️ Запись на курсы Async 2024 и NodeJS 2024 закрывается 30 апреля. Я хочу реорганизовать формат обучения, и таких длинных годичных курсов я наверно делать не буду больше, максимум 3 месяца для материала. А в формате года - будет интернатура, работа на проекте. Все, кто уже на учатся по плану до конца года. Кто начал позже - не беда, материалы все в записи есть, а практику делать и задавать вопросы - есть созвоны (3 раза в неделю это по двум курсам если должно хватить всем).

👉 Async 2024: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Async-2024.md

👉 NodeJS 2024: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/NodeJS-2024.md
  • 🔥 14
  • 👍 6
  • 🤣 3
  • 😭 3
Post #50 3.16K

Forwarded from Node.js Ukraine Community

Что такое семантика кода?

В новом API промисифицированном setInterval возвращает асинхронный итератор, а цикл for await на каждой итерации дает один и тот же объект items. Мы конечно можем использовать shift для того, чтобы модифицировать массив на каждой итерации, но это еще больше запутывает семантику. Идея итерирования сломана.

Другие подобные примеры в курсе Node.js 2024: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/NodeJS-2024.md
  • 🔥 8
  • 👍 5
  • ❤ 1
Post #49 6.05K
  • 🤯 6
  • 🤣 4
  • 👍 1
  • 🔥 1
Post #48 2.31K

Forwarded from Node.js Ukraine Community

🔁 Автоматическое преобразование исключений в события — посмотрите код в примере. Да, это работае в #NodeJS еще с версии v12.16.0 и такого очень много в асинхронном программировании и в ноде. При чем все события 'error' придут после завершения цикла for..of, а вот события 'item' будут приходить по ходу цикла. Почему так и как сделать, чтобы они приходили в пордке цикла? Это задания из курса 👉 Async 2024: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Async-2024.md
  • 👍 10
  • ❤ 3
  • 🔥 2
Post #47 3.5K
🚀 Architecture 2024

This is a small part of a new course I'm working on 🖼 Metarhia Architectural Principles:
* Isolation with IoC (Inversion of Control) and DI (Dependency Injection)
* Metaprogramming (dynamic metamodel interpretation)
* Platform-agnostic domain codebase
* Layered architecture (no system code in applications)
* Multiparadigm programming and semantic code
* Wide use of DSL (Domain-Specific Languages)
* Contract programming (defined with schemas)
* Modularity with auto-binding (no dependency locators in domain code)

👉 News will be here: https://t.me/MetarhiaChiefs
  • 🔥 12
  • 👍 5
  • ❤ 3
Post #46 3.97K
🔁 Задачник по асинхронному программированию курса Async 2024 уже содержит все основные контракты. По теоретическому материалу готово 50% лекций, новые материалы мы будем проходить уже летом. А до этого будет много практики.
👉 1. Callbacks
👉 2. Thenable
👉 3. Promises
👉 4. Async/await
👉 5. Events
👉
6. Signals
👉 7. Timers

🚀 На очереди задачи по темам: обработка ошибок, стримы, антипаттерны и рефакторинг асинхронщины, тестирование асинхронного кода.

👉 Полное огравление курса тут: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Async-2024.md
  • 🔥 30
  • 👍 7
  • ❤ 6
Post #45 3.84K
🔁 Второй блок материалов курса Async 2024 будет включать абстракции:

⭐️ AsyncQueue - асинхронная очередь, которая может заменить для микроуровня механизмы внешних MQ систем, значительно повышая общую производительность и упрощая архитектуру.
⭐️ AsyncPool - асинхронный пул (обстракция для переиспользования объектов, сетевых соединений и конекшенов к базам данных, других разделаемых или ограниченных ресурсов)
⭐️ AsyncCollector - асинхронная коллекция для сбора данных из разных мест и общим местом сборки с поддержкой разных контрактов: callback, thenable, event, async/await
⭐️ Async Generator, Async Iterator - часть стандарта JavaScript для итерирования заранее неизвестных коллекций, потоков данных, курсоров баз данных, криптографии, других потоковых преобразований
⭐️ Locks API, Semaphore, Mutex - абстракции блокировок для избежания конфликтов доступа к данным и разделяемым ресурсам
⭐️ Chain of responsibility - паттерн цепочка ответственности как замена антипаттерна middleware - позволяет создавать надежный роутинг запросов на эндпоинты и многое другое

👉 Полное огравление курса тут: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Async-2024.md
  • ❤ 18
  • 🔥 13
  • 👍 8
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →