ch
Feedback

不要被骗子欺骗!Telemetrio 会找到并标记这些频道 👉 如果想查看标记,请订阅

HowProgrammingWorks - JavaScript and Node.js Programming

HowProgrammingWorks - JavaScript and Node.js Programming

前往频道在 Telegram

Программная инжененрия для 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

显示更多
6 582
订阅者
-424 小时
+177 天
+6430 天
帖子存档
Моя политика: так называемая Jira и все творения террористической организации Атласиан - запрещены везде, где я присутствую. - Я вынедрил Jira в десятках организаций - Может, внедрил? - Нет, именно вынедрил Confluence, битбакет - это все инструменты геноцида: если сложить время работы людей, которое было списано вникуда из-за этого софта, и разделить на среднее рабочее время разработчика за одну жизнь, то это будут сотни тысяч полноценных человеческих жизней (ну насколько жизни на галерах полноценные, конечно). Конфлюенс, например, полностью заменяется .md-файликами. Все это Atlassian-искусство построено вокруг одной идеи: они капитализируют бюрократию. Берут простое действие: написать текст, поставить задачу, обсудить изменение, слить ветку - и обмазывают его таким слоем интерфейсного цемента, что через год команда уже не создает продукт, а обслуживает инструмент.

🖼️ В примерах наблюдения за файловой системой было раньше: - наблюдение за фалом через fs.watch - наблюдение за папкой через fs.readdir + fs.watch - кеширование изменений для сервера статики 👉 добавлены примеры: - с ключами --watch --watch-path --watch-kill-signal - объяснения того, как наблюдается дерево зависимостей - как влияет на наблюдение delete require.cache[name] Код - https://github.com/HowProgrammingWorks/FilesystemWatch/tree/master/JavaScript Объяснения будут в керсе - https://www.patreon.com/collection/1913313?view=expanded

По состоянию на 7 марта 2026 лучшее применение: Sonnet 4.6 - модель по умолчанию для написания кода Opus 4.6 - для написания ТЗ, стратегии и ревью кода Opus 4.6 лучше отдавать архитектуру, спецификации, декомпозицию задач, критерии приемки и финальный QA для рискованных задач. Sonnet 4.6 лучше отдавать реализацию, итерации, рефакторинг, тесты и выполнение хорошо определенных задач в масштабе. Лучшая схема на сегодня: Opus 4.6 проектирует, Sonnet 4.6 реализует, потом Opus 4.6 ревьюит

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

use AI but don't forget good old automation

джаваскриптоднопоточный
Что хотят сказать люди, когда мы слышим это заклинание? Удивительно, но я 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 критикую на конфах всех, и нет конца этому...

AI сломал новичков. Не понимая, что такое stack trace, не освоив даже циклы, новички массово рвутся изучать архитектуру.

What AI features do you use?
Anonymous voting

🧩 Паттерн 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

Тут план на этот год по курсам, это кроме паттернов - Async 2026 полностью готов и уже было первое подняие цены, будет и второе - Paradigms 2026 готов, но еще не опубликована программа, пока early birds - Node.js 2026 готовлю большую перезагрузку материалов, до публикации действует early birds - Scale 2026 - высоконагруженные, интерактивные и распределенные системы (готовится) - На остальные предзапись, будут выходить в течении года https://www.patreon.com/collection/1913313?view=expanded

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