Metarhia/NodeUA - Node.js Ukraine Community @metarhia Channel on Telegram

Metarhia/NodeUA - Node.js Ukraine Community

@metarhia


Канал по Node.js сообщеста Метархия. Ссылки на митапы, группы и каналы сообщества https://github.com/HowProgrammingWorks/Index/blob/master/Links.md

Metarhia/NodeUA - Node.js Ukraine Community (Russian)

Добро пожаловать в канал Metarhia/NodeUA - сообщество Node.js в Украине! Этот канал создан для всех любителей Node.js, разработчиков и энтузиастов, которые хотят быть в курсе последних новостей, событий и мероприятий, связанных с Node.js в Украине. Здесь вы найдете ссылки на митапы, группы и другие каналы сообщества, которые помогут вам расширить свои знания и навыки в области Node.js. Присоединяйтесь к нам, чтобы общаться с единомышленниками, делиться опытом и участвовать в обсуждениях по Node.js. Вместе мы сможем создать крупное и активное сообщество Node.js в Украине! Переходите по ссылке https://github.com/HowProgrammingWorks/Index/blob/master/Links.md, чтобы узнать больше о различных мероприятиях и ресурсах, доступных для участников нашего сообщества. Подписывайтесь на канал Metarhia/NodeUA прямо сейчас и не упустите ни одной важной новости или события в мире Node.js в Украине!

Metarhia/NodeUA - Node.js Ukraine Community

28 Nov, 06:33


🚀 The Node.js Undici Working Group is pleased to announce the release of Undici v7.

This release introduces stricter compliance with the fetch() specification, WebSocketStream, a groundbreaking caching implementation, and customizable interceptors to supercharge your HTTP workflows.

The team has also made several optimizations and improvements to align with upcoming Node.js releases.
In this blog, we will explore what makes this version a must-have upgrade.

https://blog.platformatic.dev/undici-v7-is-here

Metarhia/NodeUA - Node.js Ukraine Community

26 Nov, 11:41


🧩 Вкратце, что думают функциональщики про GoF паттерны: (GoF)(x) = G(F(x))

Metarhia/NodeUA - Node.js Ukraine Community

25 Nov, 10:09


🧩 Тут две простейшие реализации языка LISP на JavaScript, одна ООП + паттерн Interpreter, а вторая на мультипарадигменном программировании, с тем же паттерном: https://github.com/HowProgrammingWorks/Interpreter/tree/main/JavaScript

Metarhia/NodeUA - Node.js Ukraine Community

23 Nov, 11:45


https://youtu.be/tKmdtCbtMPo

Metarhia/NodeUA - Node.js Ukraine Community

21 Nov, 09:39


https://youtu.be/nvI8BYYYVT0

Metarhia/NodeUA - Node.js Ukraine Community

20 Nov, 08:08


https://youtu.be/x5y7pwcgG10

Metarhia/NodeUA - Node.js Ukraine Community

18 Nov, 06:28


🧩 DIP: The Dependency Inversion Principle

Code examples: https://github.com/HowProgrammingWorks/DependencyInversion

Metarhia/NodeUA - Node.js Ukraine Community

15 Nov, 17:55


🧩 Service Locator pattern

With OOP
class ServiceLocator {
  static #modules = new Map();

  static get(moduleName) {
    return ServiceLocator.#modules.get(moduleName);
  }

  static set(moduleName, exp) {
    ServiceLocator.#modules.set(moduleName, exp);
  }
}

module.exports = { ServiceLocator };

With JavaScript
module.exports = new Map();

More: https://github.com/HowProgrammingWorks/ServiceLocator

Metarhia/NodeUA - Node.js Ukraine Community

14 Nov, 10:03


https://youtu.be/C76eaYgHPFc

Metarhia/NodeUA - Node.js Ukraine Community

08 Nov, 12:35


— AI сможет создавать сложные кодовые базы с нуля // Дарио Амадей CEO Anthripic
— Мы бы волновались, если бы он смог создавать простой код и не с нуля, а через рефакторинг, а так... Сложные и с нуля все могут.

Metarhia/NodeUA - Node.js Ukraine Community

02 Nov, 09:08


https://youtu.be/vJc4SotVL_g

Metarhia/NodeUA - Node.js Ukraine Community

30 Oct, 09:34


https://www.devjobsscanner.com/blog/top-8-most-demanded-programming-languages/

Metarhia/NodeUA - Node.js Ukraine Community

22 Oct, 12:12


Есть идея ток-шоу с двумя чеченскими программистами, которых вы все хорошо знаете. Халилл Колбеков приносит свой запутанный код, а Массив Колбеков с легкостью решает все задачи асинхронного программирования.

Metarhia/NodeUA - Node.js Ukraine Community

21 Oct, 13:27


Кстати, 16 октяюря не только Node.js 23 вышел (не станет LTS), но и Node v22.10.0 (будет LTS до 2027-04-30)
https://nodejs.org/en/blog/release/v22.10.0

Metarhia/NodeUA - Node.js Ukraine Community

18 Oct, 07:23


Functional programmers also can do node

Metarhia/NodeUA - Node.js Ukraine Community

17 Oct, 05:28


https://openjsf.org/blog/announcing-node.js-23-key-features-and-enhancement

Metarhia/NodeUA - Node.js Ukraine Community

14 Oct, 05:39


⭐️ Good and bad cases for TypeScript union types based on JavaScript V8 optimizations

👍 Good cases for union types:
- Union of strings instead of enum:
type Direction = 'north' | 'south' | 'east' | 'west';
- Union of numeric as status or result code: type
StatusCode = 200 | 201 | 204 | 400 | 500;
- Union with shared properties:
type MailTarget = User | Company; (both with email)
- Union with common method:
type Thenable = Promise | Query; (both with then method)

👎 Bad cases for union types:

- Polymorphic object shapes causing depots:
type Something = User | Socket | string;
- Requiring extensive "if"-logic and type checking:
type Input = string | number | boolean;
- Inconsistent return types:
function getData(id: number): string | string[];
- Mixed primitives and objects:
type Value = number | { value: number };
- Сontradictory members:
type Person = { name: string; } | { name: number[] };
- Union types that include any:
type FlexibleType = number | any;
- Incompatible contracts:
type Handler = (() => string) | ((event: Event, data: any) => void);

🎁 Empty value for primitive types and reference types:
- Use null for empty reference types: Object, Function, Array, etc...
- Use undefined for empty primitive types: string, number, boolean, bigint
- Avoid mixing symbols with other types in unions

Metarhia/NodeUA - Node.js Ukraine Community

11 Oct, 07:16


Начинающий программист совершенно уверен в том, как все должно быть, но не знает как и шагу ступить в конкретной ситуации. А опытный программист не уверен в том, как все на самом деле, но точно знает, как действовать в конкретной ситуации.

Концепции, парадигмы, паттерны и принципы, построены как мифы и верования. И самое парадоксальное в мифе, что он работает, дает хорошие результаты в ежедневной практике. Не нужно думать о нем, как о чем-то мистическом, выдуманном, отвлеченном. Если программист избавится от мифологического сознания, например перестанет верить в микросервисы, в nodejsоднопоточный, в скалярные типы данных, перестанет писать на примесях и мидлварах, то картина мира рассыпается и он не может ничего написать. Чтобы опять начать что-то создавать, нужно построить другой миф. Только ощущение, что у тебя сложилась картина мира, позволяет перейти от теории к практике. Но любая картина мира состоит из разрозненных фактов, которые переклеены мифом, иначе, бы мы утонули в зазорах между знаниями, как в пустотах между электронами и атомами. Без мифа мир страшен, непредсказуем и неуправляем. Опытный программист просто имеет несколько мифов в голове и может между ними переходить, некоторые могут даже конструировать свои, и такое конструирование может быть только интуитивное, если его начать логически строить, то никто не поверит. В мифе должны быть нестыковки, странности, даже противоречия, вот это заходит в голову идеально. Это инструмент, который позволяет действовать эффективно, скрывать сложность, давать целостную картину мира, но не слишком идеальную, чтобы было место для развития.

Metarhia/NodeUA - Node.js Ukraine Community

09 Oct, 09:42


https://youtube.com/live/vTMf21FG6wg

Metarhia/NodeUA - Node.js Ukraine Community

08 Oct, 13:56


🚀 Node.js: 🐷 || 🐢 — https://x.com/tshemsedinov/status/1843639643566166294

Metarhia/NodeUA - Node.js Ukraine Community

05 Oct, 19:00


Ноду нужно спасать, primordials и этот стиль, ну как так можно написать, например:
const setupPromise = Promise.resolve(setup?.(root.reporter));
PromisePrototypeThen(PromisePrototypeThen(PromisePrototypeThen(setupPromise, runFiles), postRun), teardown);

вместо:
await Promise.resolve(setup?.(root.reporter))
.then(runFiles)
.then(postRun)
.then(teardown);

или
await Promise.resolve(setup?.(root.reporter));
await runFiles();
await postRun();
await teardown();

Metarhia/NodeUA - Node.js Ukraine Community

30 Sep, 10:43


⚠️ Завтра первый день онбординга на Patterns 2024.

Это нулевая неделя, формируются группы и назначаются менторы. Процесс оказался не таким простым организационно. Всем, кто зарегистрировался - прошу спокойно подождать до вечера и если вам на почту не придет приглашение, то утром обратиться в нашу поддержку, там отдельные люди занимаются вопросами платежей, рассрочкой, потерянными контактами (часть людей везде указывает разные почты и телефоны, вводят "Юра" или "EA 00 00 FF FF" в поле фамилии и невозможно понять, кто это).

∙ Поддержка по платежам: https://t.me/patterns2024 или на почту [email protected]
∙ Кто зарегистрировался но не оплатил, то платить тут https://nodeua.com/Patterns-2024-buy.html
∙ Кто оплатил, но не заполнил форму, это тут: https://forms.gle/wuJ3nvSeF2apgUESA
∙ Кто и зарегистрировлся и оплатил, но не полял куда попал, то можно посмотреть описание тренинговой программы на трех языках тут https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Patterns-2024.md
∙ Курсы по ноде и по асинхронному программированию тут: https://www.patreon.com/tshemsedinov
Пишу это потому, что есть люди, которые пишут, что хотели попасть на курс по ноде и уже где-то оплатили, а оказалось, что они на паттерны попали.

Metarhia/NodeUA - Node.js Ukraine Community

29 Sep, 06:48


https://youtu.be/IDxb5eLx2b4

Metarhia/NodeUA - Node.js Ukraine Community

24 Sep, 05:40


⭐️ Проблема сложности, которую решают микросервисы, на самом деле решается проектированием структуры кода на среднем уровне, т.е. люди от функций и классов хотят перескочить сразу к архитектуре, минуя модули, слои, подсистемы. Если код хорошо структурирован на среднем уровне благодаря:
- системам модульности,
- внедрению зависимостей и инверсии управления,
- архитектурным границам и слоям,
- декомпозиции абстракций,
- separation of concerns,
- information expert,
- контрактному программированию,
- управлению, сокрытию и изоляции сложности,
- разделению прикладного и системного кода,
то такое приложение можно в течении нескольких часов собрать в 2, 3, 5, 105 инстансов, заменив взаимодействие между их структурными компонентами на RPC и трансляцию событий. Так, что модули и подсистемы знать не будут, что они запущены не в одном процессе. А если код «рыхлый», то его и микросервисом не изолировать, у такого сервиса будет большой внешний трафик, потому, что зацепление на чужие данные и чужую логику высоки. Так что, «распиливание» это только распиливание бюджета команд и бюджета на инфраструктуру. Обойти вопрос хаоса на среднем уровне при помощи чуда не выйдет. Чтобы построить Application архитектуру, нужна качественная структура, а чтобы перейти к Solution и Enterprise архитектуре, нужна качественная Application архитектура. Попытки перескочить от функции, цикла и массива к Solution архитектуре приводят к появлению монстров типа облачных функций, микролитов, моносервисов и скоро мы увидим Variable as a Service, а потом гору этих абстракций, вываленных на уровень Solution, не сгруппированных и не изолированных в структурные единицы управления сложностью. Чуда не будет, ни кто не решит за нас вопрос перехода от отдельного кирпича к небоскребу, нужны промежуточные структурные единицы.

Metarhia/NodeUA - Node.js Ukraine Community

23 Sep, 09:16


🧩 Тарифні плани тренінгу із наставниками Patterns 2024

∙ Minimal: навчання у загальній групі без наставника, але з груповими семінарами
∙ Standard: навчання з наставником у невеликих групах (10 осіб)
∙ Professional: навчання з наставником, індивідуально та в групах, додаткові матеріали
∙ Exclusive: персоналізований навчальний трек з автором курсу та запрошеними експертами

👉 Подробиці: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Patterns-2024-ua.md

Формат тренінгу

🗓 12 тижнів (3 місяці) + онбординг (1 тиждень) + секретний модуль
👍 Доступ до матеріалів курсу надається назавжди
🕑 Щотижня обов'язково: 1 година лекцій + 2 години семінар + 2 години самостійної роботи
🥋 Тренування та групова робота з наставниками, а не тільки перегляд видосів та читання
🙋‍♂️ За бажанням: для глибокого занурення +3 години додаткових матеріалів на старших тарифах
🏅 По завершенню курсу Ви отримуєте сертифікат
⚠️ Вхідні вимоги: базовий JavaScript + рекомендується досвід практичного програмування
🙅 Для кого не підійде: не для початківців, безкоштовні матеріали для початківців шукайте у Тимура
💳 Розстрочка: помісячна оплата для всіх тарифів, окрім мінімального
🗺 Після курсу участь у ком'юніті випускників, де вже тисячі людей по всьому світу

👉 Придбати: https://nodeua.com/Patterns-2024-buy.html

Metarhia/NodeUA - Node.js Ukraine Community

22 Sep, 10:52


🚀 Patterns 2024 Тренінг із наставниками

Переклад готовий, раджу його прочитати навіть тим, хто курс не бере, бо це майже стаття і там багато ідей як вдосконалити свої знання та структурувати їх: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Patterns-2024-ua.md

Автор стверджує, що це найважливіші речі, які слід вивчати та практикувати:

📂 Системи модульності, Dependency Injection (DI) та інверсія управління (IoC)
📦 Декомпозиція абстракцій та принципи GRASP із сучасною інтерпретацією
🧩 Паттерни «Банди чотирьох» (GoF) переосмислені для JavaScript та TypeScript
🔮 Принципи ізоляції та SoC (Розподіл відповідальності)
👷🏻‍♂️ Відокремлення прикладного та системного коду (різні спеціальності)
🧩 Принципи SOLID: SRP, OCP, ISP, DIP, LSP з адаптацією для різних парадигм
🌟 Мультипарадигменне програмування та створення доменних мов (DSL)
🧩 Контрактне програмування та декларативне моделювання через схеми
🏛 Чиста архітектура (Clean) та лукова архітектура (Onion або Layered)

(читати далі...)

Metarhia/NodeUA - Node.js Ukraine Community

21 Sep, 14:36


🧩 Patterns 2024: The mentoring program is ready, I'll prepare translations tomorrow )))

🗓 Start: 1 October; Duration: 12 weeks

👉 Training description: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Patterns-2024.md

👉 Registration for the course: https://forms.gle/wuJ3nvSeF2apgUESA

Metarhia/NodeUA - Node.js Ukraine Community

20 Sep, 09:47


https://nodejs.org/en/blog/release/v22.9.0

* New API to get current stack trace: util.getCallSite()
* V8 Maglev is now disabled by default
* Option to partially trust chain on tls.createSecureContext

Metarhia/NodeUA - Node.js Ukraine Community

18 Sep, 07:02


Вот вы говорите, алгоритмы, алгоритмы, а тут открываешь ноду и видишь такое: https://github.com/nodejs/node/blob/7014e50ca32d39b94d04e04a5e6498e5c2f4346f/lib/path.js#L249-L274

Metarhia/NodeUA - Node.js Ukraine Community

17 Sep, 09:53


— Кто говорит?
— Индустрия говорит
— Помолчи, индустрия, ведь ты еще не умеешь говорить.
— Я умею говорить хрюшами. Я умею плакать. Я умею смеяться. Что ты хочешь?