Аргументы против того, чтобы всегда использовать функции Serverless

Бессерверные функции — это новая блестящая игрушка, с которой все хотят поиграть. Они обещают бесконечную масштабируемость, отсутствие управления инфраструктурой и волшебную модель ценообразования «плати только за то, что используешь». Но вот в чём дело: возможность поместить всё в бессерверную функцию не означает, что так и нужно делать. Позвольте мне быть тем, кто испортит вам веселье и расскажет, почему ваш подход «сначала бессерверные функции» может стоить вам не только денег, но и здравомыслия, производительности и контроля над вашим собственным приложением....

8 августа 2025 06:01 · 6 минут · 1 слово · Maxim Zhirnov
Сделает ли WebAssembly JavaScript устаревшим через 5 лет?

Сделает ли WebAssembly JavaScript устаревшим через 5 лет?

Когда началась революция WebAssembly (Wasm), разработчики JavaScript коллективно пролили свой ремесленный кофе. Паника была ощутима: «Это конец JavaScript?» Пять лет спустя мы всё ещё используем оба языка, но почему? Давайте разберёмся в этом техническом танго с примерами кода, бенчмарками производительности и жестокой честной проверкой реальности. Великий миф о производительности Преимущество WebAssembly в скорости реально — для конкретных задач. Выполнение C++, скомпилированного в Wasm, превосходит JavaScript в сценариях с высокой нагрузкой на вычисления....

11 июля 2025 06:00 · 3 минуты · 596 слов · Maxim Zhirnov
Оптимизация WebSocket в высоконагруженных приложениях Go: руководство для практиков

Оптимизация WebSocket в высоконагруженных приложениях Go: руководство для практиков

Вы когда-нибудь пытались пасти кошек, жонглируя при этом бензопилами? Примерно так ощущается управление WebSockets в высоконагруженных системах Go без правильных оптимизаций. Я, как человек, который случайно устраивал DDoS-атаки на свои собственные серверы чаще, чем мне хотелось бы признать, обобщил свои с трудом усвоенные уроки в этом руководстве. Мы превратим ваши обработчики WebSocket из перегруженных гремлинов в закалённых в боях воинов. Управление подключениями: Танго с горутинами Горутины в Go делают параллелизм обманчиво простым — пока вы не создадите тысячи горутин для WebSocket-подключений и не увидите, как утекает память....

10 июля 2025 14:00 · 4 минуты · 1 слово · Maxim Zhirnov
Оптимизация производительности Elasticsearch: настройка для крупномасштабных данных

Оптимизация производительности Elasticsearch: настройка для крупномасштабных данных

Вы знаете это ощущение, когда ваш кластер Elasticsearch начинает стонать под давлением данных, как перекормленный питон? Я тоже через это проходил — наблюдал, как время отклика растёт, а отчаянные команды curl становятся моим основным видом упражнений. Давайте исправим это раз и навсегда. Вот как я превратил кластеры, обрабатывающие терабайты данных, из скулящих щенков в рычащих волков (в хорошем смысле). Пристегните ремни! Архитектура кластера: фундамент имеет значение Если вы сделаете это неправильно, вам придётся ежедневно тушить пожары....

3 июля 2025 14:00 · 4 минуты · 702 слова · Maxim Zhirnov
Знакомство с Crystal: Язык, сочетающий красоту Ruby и силу C

Знакомство с Crystal: Язык, сочетающий красоту Ruby и силу C

Почему Crystal — это лучший секрет в программировании Когда я впервые наткнулся на Crystal, у меня возникло ощущение, будто я обнаружил единорога, который понимает поэзию Ruby и в то же время обладает необузданной мощью C. Этот статически типизированный компилируемый язык обеспечивает невероятную скорость, сохраняя при этом элегантный синтаксис Ruby — больше не нужно выбирать между счастьем разработчика и эффективностью машины. Давайте разберём этот геод и вместе изучим его сверкающие особенности....

1 июля 2025 14:00 · 4 минуты · 725 слов · Maxim Zhirnov