TGViewer
Frontend | Иван Усынин Frontend | Иван Усынин @usyninis_dev · 118 subscribers
Post #214 212
🧑‍💻 Инкапсуляция контекста

На досуге решил поизучать как устроен Fastify - фреймворк для Node.js. Если вы еще не знакомы с ним - советую присмотреться повнимательнее: он обещает высокую производительность и гибкость благодаря минимальному оверхеду и продуманномой архитектуре.

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

🤔 Что такое инкапсуляция контекста?

Это способ организации кода таким образом, чтобы каждый хук/декоратор/плагин имел доступ лишь к нужным объектам данных, т.е. к нужному контексту (см. картинку). Это помогает избежать проблем с глобальными обработчиками, сплетением хуков/обработчиков/переменных внутри проекта. Фактически, это значит, что ваш код становится чище и проще в поддержке.

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

Fastify документация:
https://fastify.dev/

Про инкапсуляцию:
https://fastify.dev/docs/latest/Reference/Encapsulation/

#fastify #nodejs #javascript #typescript #js #ts #frontend #webdev #context
  • 👍 1
More from @usyninis_dev
  1. Sep 21, 2026cva: когда обычного сlsx уже мало Пока у кнопки два состояния — «обычная» и «выключенная»…
  2. Jul 25, 2026RBAC и permission-based проверки на frontend: как мы управляем доступом на проекте 🔐 В бо…
  3. Jul 17, 2026Remotion: make videos programmatically 📹 Remotion — это программный фреймворк, который по…
  4. Apr 12, 2026Выступил с лекцией в ITHub В минувшую субботу в колледже информационных и креативных техно…
  5. Mar 8, 2026Поздравляю прекрасных дам с 8 Марта! Пусть весна цветет не только на улице, но и в душе! Н…
  6. Mar 2, 2026React.lazy — еще один полезный сценарий 🚀 Одни из самых популярных кейсов использования R…
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 →