TGViewer
HowProgrammingWorks - JavaScript and Node.js Programming HowProgrammingWorks - JavaScript and Node.js Programming @howprogrammingworks · 6.52K subscribers
Post #2077 6.96K
Вспомните, как часами отлаживаете код, потому что он работает не так, как должен?
map вдруг возвращает не array, а array-like object, error instanceof Error неожиданно дает false, или Promise.then() ведет себя будто вместо микротасков, начал использовать макротаски, возможно then теперь реализован через setTimeout, обычный for...of или Array.from() ломается на ровном месте, ну вообще js себя так не должен вести, это невозможно, вы не верите своим глазам...

Разве могу осуждать мух за то, что ебутся? Однако когда у меня в node_modules, злит. Так же и авторы npm зависимостей. Когда в тихом уединении делают то, к чему лежат их души, кто возразит? Но они устраивают манкипатчинг встроенных прортотипов, делают гребаные полифилы, дудят в дудки, бьют в барабаны и кричат, чтобы все знали про их нрав — что-де лупятся в о... и долбятся в ж... Истинно, они хуже мух, ибо мухи только изредка согрешают на моей голове, авторы npm библиотек же изо дня в день пытаются совокупиться в самом центре node_modules. Мухи по недомыслию, авторы оупенсорса же хладнокровно и сознательно.

Одна библиотека улучшила прототип, другая рассчитывала на стандартное поведение, третья защищалась от этого туалетным ершиком, а виноватым в итоге остается ваш код. Да ладно такм код, время вашей жизни кто вернет? В такие моменты кажется, что это невозможно, что ошибка где-то рядом, что надо просто еще немного вывести console.log, запустить с дебагере. Ну найдете вы, что кто-то пропатчил Array, Promise, Error, итераторы, прототипы. Что делать то?

Именно поэтому нужно понять, что такое primordials. Не для того, чтобы знать, как Node.js защищает встроенные прототипы, а для того, чтобы понять сам принцип и защитить свой код от "магии", которую почти невозможно локализовать. Чтобы изолировать одну библиотеку от другой. Допустим, primordials не самый удобный для этого метод, но у меня уже несколько альтернативных. Осталось довести этот ресерч до выбора оптимального варианта и я расскажу, как оно работает.

Если хочется самому копнуть, то тут можно начать - https://github.com/nodejs/TSC/issues/1439#issuecomment-4413664027
  • ❤ 11
  • 😁 9
  • 🤯 3
  • 😢 1
More from @howprogrammingworks
  1. Sep 28, 2026В версии reslop v0.2.4 появилась возможность запускать тесты и инструменты с компактным вы…
  2. Sep 25, 2026https://youtu.be/hKigdmvste0
  3. Sep 24, 2026В эту субботу будет стрим по применению AI в создании архитектуры. - архитектурный дрейф и…
  4. Sep 24, 2026Post #2176
  5. Sep 23, 2026Возможно, не все уловили, для чего reslop: - как в гитхабе и гитлабе есть интерфейс для ре…
  6. Sep 22, 2026Reslop 0.2.0 вышел С версии 0.1.3, он вырос из интерактивного инструмента для ревью diff'о…
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 →