HowProgrammingWorks - JavaScript and Node.js Programming – Telegram
HowProgrammingWorks - JavaScript and Node.js Programming
6.3K subscribers
357 photos
10 videos
1 file
886 links
Программная инжененрия для JavaScript, TypeScrip, Node.js
👉 Group: https://news.1rj.ru/str/How_Programming_Works
👉 Node.js channel: https://news.1rj.ru/str/metarhia
👉 Node.js group: https://news.1rj.ru/str/nodeua
Download Telegram
Дети грызут ручку, чтобы ее ни кто не забрал, ведь кому нужна ручка погрызаная другим.

Когда программисты пишут код, я полагаю, они руководствуются тем же принципом, чтобы отвадить от него как коллег, так и конкурентов, да и всех потенциальных ревьюеров.
🤣48💯6😁4😎1
Тут план на этот год по курсам, это кроме паттернов
- Async 2026 полностью готов и уже было первое подняие цены, будет и второе
- Paradigms 2026 готов, но еще не опубликована программа, пока early birds
- Node.js 2026 готовлю большую перезагрузку материалов, до публикации действует early birds
- Scale 2026 - высоконагруженные, интерактивные и распределенные системы (готовится)
- На остальные предзапись, будут выходить в течении года

https://www.patreon.com/collection/1913313?view=expanded
5🔥5👍3🫡2😎1
🧩 Паттерн Context

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

Примеры:
- 1-closure.js — Контекст с замыканием: Частично применяемая функция с привязанным контекстом; простой RBAC и аутентификация пользователя
- 2-oop.js — Контекст в ООП: Контекст передается в конструктор; RBAC, User и AccountService как классы
- 3-factory.js — Фабрика контекста: Фабрика создает сервисы с общим контекстом; внедрение зависимостей
- 4-pipeline.js — Контекст в конвейере промежуточного ПО: Асинхронный конвейер с распространением контекста; трассировка и идентификаторы запросов
- 5-async.js — Асинхронный контекст (AsyncLocalStorage): Контекст сохраняется между асинхронными границами без явной передачи
- 6-immutable.js — Неизменяемый контекст: Замороженный контекст и производные контексты с помощью вспомогательных функций; без мутаций

👉 https://github.com/HowProgrammingWorks/Context
👍112🔥2💯2
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍1🔥1
AI сломал новичков.

Не понимая, что такое stack trace, не освоив даже циклы, новички массово рвутся изучать архитектуру.
🤣41😁14😢10👎7🤷‍♂5🤩2
джаваскриптоднопоточный


Что хотят сказать люди, когда мы слышим это заклинание?

Удивительно, но я 15 лет слышу эту чушь из каждой второй статьи и доклада. Но для чего на ней настаивать? Может быть, хочется думать, что в js не бывает корапшена данных, неконсистентного состояния, когда ссылки на данные есть у нескольких частей программы одновременно, а в многопоточной среде это приводит к состоянию гонки. Но все эти проблемы могут быть и в однопоточном приложении, которое использует кооперативную многозадачность, передавая управление разным частям кода хоть через колбеки и ивентлуп или даже без него, на промисах и async/await, которые вообще часть языка, но позволяют в одном месте приостановить выполнение, а в другом поработать и в это время. Если объект доступен из таких разных мест, которые работают асинхронно в одном потоке, как только промис, await или callback возвращает управление в нашу часть кода, и она ожидает, что объект все еще в том же состоянии, что и был до асинхронной операции, то это опасная иллюзия, нужно все перепроверять в условно синхронном фрагменте кода. Но это тоже не всегда сработает, у нас есть Atomics и SharedArrayBuffer, которые могут и в синхронном фрагменте менять состояние и гарантий консистентности в JS нет.

Что же говорит спецификация? Безопасность не гарантируется даже в синхронном фрагменте кода и не только через Atomics и SharedArrayBuffer. Деми Мурыч хорошо это комментирует "спецификация дала возможность любому окружению, создавать условия, когда выполнение JS кода не прибито гвоздями к одному агенту". Это значит, что в будущем могут появиться такие среды исполнения, где будет общий хип для нескольких потоков и нескольких агентов. Но прямо сейчас все известные рантаймы js гарантируют безопасность данных на коротких фрагментах условно синхронного кода, если не использовать SharedArrayBuffer. Это уже что-то, но это далеко не безопасно в том смысле, на который надеются люди, кричащие "джаваскриптоднопоточный" из любого утюга. И это не имеет никакого отношения к потокам или процессам, потому что для исполнения кода ваш js рантайм может порождать сколько угодно внутренних потоков для компиляции, оптимизации, сбора мусора, выполнения I/O операций, и еще пачку потоков для пользовательского кода: worker threads, shared workers, service workers.

Поразительно, как широко распространилось это клише про однополосный js, статьи, доклады, комменты, просто разговоры, люди это повторяют как мантру. Мне вот футболку подарили 5 лет назад, с надписью джаваскриптоднопоточный и nodejsоднопоточный, хоть я это уже лет 15 критикую на конфах всех, и нет конца этому...
👍127🤯4😁2🤝1
Красота, эстетика и интуиция решают задачи там, где формального компутер-саенса пока недостаточно.

Я не противопоставляю эстетику науке и уж точно не свожу все к мистике. За настоящей эстетикой почти всегда стоит какой-то принцип, обобщение, закономерность, просто оно еще не формализовано.

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

А потом уже приходит наука и аккуратно рационализирует то, что сначала было найдено чувством формы.
👍1344💯4👎1🔥1