HowProgrammingWorks - JavaScript and Node.js Programming
6.53K subscribers
369 photos
16 videos
1 file
928 links
Программная инжененрия для JavaScript, TypeScrip, Node.js
👉 Group: https://t.me/How_Programming_Works
👉 Node.js channel: https://t.me/metarhia
👉 Node.js group: https://t.me/nodeua
Download Telegram
Если вы думаете, что скоро AI будет писать код вместо вас, то давайте я вас разочарую, весь существенный код уже давно написан и не вами, вы делаете только конфигурацию и сборку, а код внутри языков, платформ, субд, ос, библиотек.
💯38😁16🤷‍♂10🎉3👎21👨‍💻1🤝1
Новый набор в гильдию NextTick заканчивается
У вас суббота и воскресенье, в понедельник уже не набираем

Что нового в материалах
- Записи всех предыдущих тем (см. на сайте)
- Новые лекции и стримы об архитектуре от Тимура
- Новые лекции и стримы о коммуникации от Ильи
- Курс по TypeScript от Ильи
- Много материалов про AI

Заходим, не стесняемся https://nexttick.it/?utm_source=timur_tg_howprogworks
😁86🫡5🤣2👍1
По многочисленным заявкам у нас будут сессии лайвкода, с разработкой архитектуры, применением AI, ревью кода и при помощи тех техник, которые мы пропагандируем (хорошее описание, md файлики со спеками и ADR, и все такое), сегодня сразу две сессии такие, доменный код и системный код:

🧑‍💻 Livecoding + AI: Payment Gateway (Тимур и Нечай)
Платежная система - доменный код и архитектура
Thursday, 9 July · 17:00 – 19:00 Time zone: Europe/Kiev
В NextTick https://nexttick.it/?utm_source=timur_tg_howprogworks

🎙 Metarhia: metautil, metacom, data structures (Тимур)
Системный и платформенный код и архитектура
Thursday, 9 July · 19:00 – 21:00 Time zone: Europe/Kiev
В сообществе Метархия https://www.patreon.com/c/tshemsedinov
8🔥2👍1
Fable наконец начал понимать конструкции с динамическим наименованием классов, раньше невозможно было пояснить и проще было написать руками такие вещи и то другие модели часто переписывали, если встречали такое на что-то привычное, например defineProperty или брендинг классов.

Ладно там Fable, а вы такое умели?

Через объект-контейнер и свойство с динамическим именем
const createClass = (name) => {
const container = { [name]: class {} };
const Entity = container[name];
return Entity;
};


Более короткий способ
const createClass = (name) => ({
[name]: class {},
})[name];


Или через деструктуризацию
const createClass = (name) => {
const { [name]: Entity } = { [name]: class {} };
return Entity;
};
🤯445👀5😎1
И еще про оптимизации в V8
(статья с блога v8, она актуальна по состоянию на 2026)

👉 https://v8.dev/blog/pointer-compression

- Большая часть памяти V8 хранит указатели и небольшие значения (SMI)
- SMI означает Small Integer, то есть небольшое целое число
- SMI хранится прямо в ячейке значения без создания отдельного объекта в куче
- Сжатый указатель хранит небольшое смещение адреса вместо полного 64-битного адреса
- Один изолят V8 должен хранить свою кучу в области памяти размером до 4 ГБ
- Сжатые указатели и SMI занимают 32 бита в памяти
- V8 разворачивает указатели при чтении и сжимает их при сохранении
- V8 хранит базовый адрес кучи в регистре CPU для быстрого разворачивания указателей
- Сжатие указателей уменьшает диапазон целых чисел SMI и ограничивает прямое значения double
- Это может уменьшить размер кучи V8 до 43%, а использование памяти процессом рендеринга браузера до 20%
👍64👎1👨‍💻1
Трехконтурная разработка: вместо того, чтобы генерировать с помощью AI миллионы строк кода в одном репозитории можно разделить это на 2 или три цикла.

Первый контур: технологический стек
Здесь сосредоточены основные инженерные усилия: runtime, протоколы, хранение данных, безопасность, наблюдаемость производительность, управление памятью и конкурентностью, инфраструктура, стабильные контракты и точки расширения. Этот код пишется редко, долго и дорого. Его создают лучшие инженеры вместе с AI, тщательно тестируют, профилируют и переиспользуют во множестве продуктов. Первый контур уменьшает кодовую базу второго на несколько порядков.


Второй контур: параметризованные модули
Это крупные готовые возможности: аутентификация, платежи, уведомления, workflow, отчёты, интеграции, роли и права, биллинг, отчеты и т.д. Здесь используются метапрограммирование, кодогенерация, схемы, зависимые типы, декларативные контракты и динамическая диспетчеризация. Модуль не реализует один конкретный сценарий. Он представляет семейство сценариев и перенастраивается через метаданные, политики, схемы и обработчики. Второй контур уменьшает кодовую базу третьего на несколько порядков.


Третий контур: продукт
Продукт собирается из готовых узлов. В нём остаются: модель предметной области, схемы данных, бизнес-правила, политики, конфигурация модулей, небольшое количество уникальных обработчиков, связи между бизнес-процессами. В результате полноценный продукт может состоять из нескольких сотен или нескольких тысяч строк кода, конфигурации и схем.


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


Эти и другие вопросы обсуждаем каждый четверг на созвоне сообщества https://www.patreon.com/c/tshemsedinov
7👍3👎2🔥1💯1