Почему вам следует время от времени избегать использования фреймворков и библиотек: Руководство для бунтаря

Почему вам следует время от времени избегать использования фреймворков и библиотек: Руководство для бунтаря

Признаюсь честно: однажды я построил рабочий API, используя только основные модули Node.js. Когда коллеги это увидели, их реакции варьировались от «Ты просто маньяк!» до «Погоди… это и правда работает?». Спойлер: всё работало. Хотя такие фреймворки, как Express или NestJS, — это замечательная страховка, иногда только отказ от них помогает понять, как всё работает на самом деле. Скрытые издержки удобства фреймворков Потеря производительности Фреймворки включают в себя всё, что только можно представить....

June 24, 2025 · 3 min · 499 words · Maxim Zhirnov
Building a Distributed Session Storage in Go: When Your Sessions Need a Road Trip

Building a Distributed Session Storage in Go: When Your Sessions Need a Road Trip

Picture this: your user logs in, grabs a digital shopping cart, and suddenly gets routed to a different server that knows nothing about their session. It’s like trying to continue a road trip after someone swapped your car mid-journey. Let’s build a distributed session system that keeps the adventure going - no abandoned carts or logged-out users allowed! Why Sessions Go Rogue in Distributed Systems Traditional session storage has all the coordination skills of toddlers playing soccer - everyone chases the same ball....

June 16, 2025 · 4 min · 701 words · Maxim Zhirnov
Создание распределенного хранилища сеансов в Go: Когда ваши сеансы нуждаются в переносе

Создание распределенного хранилища сеансов в Go: Когда ваши сеансы нуждаются в переносе

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

June 16, 2025 · 4 min · 694 words · Maxim Zhirnov
Taming the Firefox: A Developer's Journey into WebExtensions

Taming the Firefox: A Developer's Journey into WebExtensions

Picture this: you’re browsing your favorite cat video site when suddenly - BAM! - a wild idea appears. What if you could make Firefox fetch coffee while you watch? While our WebExtensions might not (yet) handle caffeine delivery, they can transform your browser into a Swiss Army knife of productivity. Let’s forge some browser magic! Anatomy of a WebExtension Every great extension starts with three essential ingredients: A manifest.json (the extension’s DNA) Content scripts (DOM whisperers) Background scripts (the silent workhorses) graph TD A[Manifest....

June 12, 2025 · 3 min · 496 words · Maxim Zhirnov
Укрощение Firefox: Путешествие разработчика в веб-расширения

Укрощение Firefox: Путешествие разработчика в веб-расширения

Представьте: вы смотрите видео с кошками на любимом сайте, и вдруг — БАМ! — появляется безумная идея. А что, если бы Firefox мог приносить кофе, пока вы смотрите видео? Хотя наши веб-расширения пока не могут доставлять кофеин, они могут превратить ваш браузер в швейцарский армейский нож для повышения продуктивности. Давайте создадим немного магии для браузера! Анатомия веб-расширения Каждое великое расширение начинается с трёх основных компонентов: manifest.json (ДНК расширения). Контент-скрипты (шептуны DOM)....

June 12, 2025 · 3 min · 484 words · Maxim Zhirnov