Типичный программист
Всё самое интересное по программированию Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site VK: vk.com/tproger Регистрация в перечне РКН: https://tprg.ru/mJwo
Show more📈 Analytical overview of Telegram channel Типичный программист
Channel Типичный программист (@tproger) in the Russian language segment is an active participant. Currently, the community unites 78 214 subscribers, ranking 1 600 in the Technologies & Applications category and 7 344 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 78 214 subscribers.
According to the latest data from 27 September, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -489 over the last 30 days and by -17 over the last 24 hours, overall reach remains high.
- Verification status: Verified (Officially confirmed by Telegram)
- Engagement rate (ER): The average audience engagement rate is 10.38%. Within the first 24 hours after publication, content typically collects 6.09% reactions from the total number of subscribers.
- Post reach: On average, each post receives 8 123 views. Within the first day, a publication typically gains 4 763 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 46.
- Thematic interests: Content is focused on key topics such as sql, архитектура, api, docker, github.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Всё самое интересное по программированию
Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Сайт: https://tprg.ru/site
VK: vk.com/tproger
Регистрация в перечне РКН: https://tprg.ru/mJw...”
Thanks to the high frequency of updates (latest data received on 28 September, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
Data loading in progress...
| Date | Subscriber Growth | Mentions | Channels | |
| 28 September | +11 | |||
| 27 September | +5 | |||
| 26 September | +3 | |||
| 25 September | +13 | |||
| 24 September | +42 | |||
| 23 September | +14 | |||
| 22 September | +8 | |||
| 21 September | +1 | |||
| 20 September | +6 | |||
| 19 September | +9 | |||
| 18 September | +6 | |||
| 17 September | +17 | |||
| 16 September | +26 | |||
| 15 September | +31 | |||
| 14 September | +9 | |||
| 13 September | +12 | |||
| 12 September | +14 | |||
| 11 September | +17 | |||
| 10 September | +16 | |||
| 09 September | +18 | |||
| 08 September | +14 | |||
| 07 September | +5 | |||
| 06 September | +7 | |||
| 05 September | +8 | |||
| 04 September | +13 | |||
| 03 September | +7 | |||
| 02 September | +5 | |||
| 01 September | +16 |
| 2 | Кодить — это хорошо, а разбираться в том, что происходит за кадром, тоже полезно. Что там анализируют, зачем нужны метрики, кто такой этот ваш UX, какие задачи решает дизайн? Материалы ниже как раз об этом. Вникать во всё на сто процентов, конечно, не нужно, но базовое понимание поможет находить общий язык с коллегами и видеть чуть дальше кодовой базы.
Как один лотерейный билет превратился в несколько сотен требований, десятки интеграций и пять месяцев Discovery
Очнуться от мрака метрик: три истории от продакта о том, как решать неочевидные проблемы бизнеса
Как проверять продукт на UX на примере личного кабинета студента
Как тестировать пуши и диплинки в финансовом приложении
Дизайн в маркетинге: как фирменный стиль решает бизнес-задачи | 2 732 |
| 3 | No text... | 3 394 |
| 4 | Нетипичные оптимизации PostgreSQL для отчётов и индексов
Обычный индекс по sold_at ускорил отчёт с 627 до 187 мс, но занял 214 МБ. При этом ежедневному отчёту не нужна точность времени до миллисекунд. Автор проиндексировал только дату и получил индекс на 66 МБ: повторяющихся значений стало больше, поэтому PostgreSQL смог сжать их дедупликацией.
Другой приём пригодится для аналитических запросов. Условие plan = 'Pro' против ограничения с вариантами free и pro заставило базу проверить 100 тысяч строк. После включения constraint_exclusion PostgreSQL сопоставил условие с ограничением и вовсе пропустил сканирование. Для простых запросов режим добавляет расходы на планирование, поэтому автор предлагает включать его точечно в системах отчётности.
В разборе нетипичных оптимизаций PostgreSQL есть SQL-запросы, планы выполнения и границы применимости каждого приёма. | 4 144 |
| 5 | Как фиксированный объём работы помогает пережить пиковую нагрузку
Память ещё есть, значит можно принять ещё одну биржевую заявку? Такой подход способен закончиться тем, что ядро завершит весь движок вместе с уже принятыми заявками.
Автор предлагает при запуске выделить массив под заданный максимум, а всё сверх лимита отклонять. Свободные позиции обрабатываются как нейтральные заявки: вычислений всегда одинаково много, а последовательный обход проще оптимизировать.
В разборе статического выделения памяти показаны и границы подхода. | 4 454 |
| 6 | Зачем Cloudflare Workers переписали реестр модулей под правила Node.js
Старый реестр разбирал импорты как пути в файловой системе и заранее компилировал всю сборку для каждой изолированной копии Worker в V8. Поэтому import.meta.resolve() не работал, а один и тот же исходный код мог компилироваться несколько раз и храниться в памяти в нескольких копиях.
Новый реестр считает спецификаторы настоящими URL и компилирует модуль только при первом импорте. Есть занятное следствие: counter.js?a и counter.js?b получат отдельное состояние, хотя загрузят один исходный файл. Встроенный модуль Node.js, напротив, останется одним экземпляром независимо от способа обращения к нему.
Механику уже можно проверить с флагом new_module_registry. В инженерном разборе Cloudflare показаны правила для ESM, CommonJS, WebAssembly, атрибутов импорта и API import.meta. | 4 904 |
| 7 | Сколько стоит превратить enum в строку через рефлексию C++26
Чистый код без макросов оказался не бесплатным: в GCC 16 подключение <meta> заняло около 181 мс на единицу трансляции. Для enum из четырёх значений компиляция заняла 187 мс против 27 мс у X-macro с const char*.
Предкомпилированный заголовок сократил время до 81 мс, а модули GCC подняли его до 403 мс.
В разборе cost of enum-to-string есть код и замеры для enum от 4 до 1024 значений. Цифры относятся к текущей реализации GCC 16 на одном компьютере: для экспериментов с рефлексией сначала подключите предкомпилированный заголовок, а модули проверьте отдельным замером. | 5 453 |
| 8 | Как Bitwarden шифрует хранилище и при чём здесь пароль
Парольная фраза не шифрует ваши данные напрямую. Клиент получает из неё ключ и расшифровывает им случайный 64-байтный мастер-ключ. Уже тот открывает логины, пароли, URL, заметки и даже названия записей. Сервер хранит только зашифрованные данные.
Мастер-ключ делится пополам: первые 32 байта служат ключом шифрования AES, вторые создают HMAC-подпись для проверки целостности. Если подпись не совпала, запись считают повреждённой или изменённой и не расшифровывают. Чтобы заблокировать хранилище, клиент удаляет расшифрованный мастер-ключ.
Держите разбор How Bitwarden Encrypts and Decrypts Secrets: автор восстановил детали по исходному коду Bitwarden и Vaultwarden и приложил рабочий скрипт на Python. Он пригодится, если нужно читать резервную копию базы Vaultwarden или собирать собственный клиент. | 5 187 |
| 9 | Как научить небольшую языковую модель соблюдать структуру ответа
Модель на 350 млн параметров дообучили всего за 100 шагов и подняли результат в IFStruct с 22,6% до 29,7%. Этот тест проверяет, выдаёт ли модель корректный JSON или YAML по заданной схеме, а не просто правдоподобный текст.
Для обучения взяли около 500 примеров и метод группового сравнения ответов GRPO. Модель получала награду за три вещи: ответ можно разобрать программно, число полей совпадает с заданием, а результат проходит проверку по JSON Schema. В итоге даже такой короткий прогон заметно сократил разрыв с более крупными моделями.
В разборе Hugging Face есть открытый ноутбук, настройки LoRA и весь пайплайн. Обучение помещается на бесплатный GPU в Colab или Kaggle, поэтому эксперимент можно воспроизвести без собственной фермы ускорителей. | 5 276 |
| 10 | Почему JOIN с блокировкой строки может вернуть пустоту в PostgreSQL
Строка есть, внешний ключ заполнен, но INNER JOIN ничего не возвращает. Это возможно, когда две транзакции одновременно меняют связанную запись.
В Read Committed PostgreSQL после снятия блокировки перепроверяет условие JOIN по новой версии строки, но связанную запись не загружает заново. Условие больше не совпадает: INNER JOIN отбрасывает строку, а LEFT JOIN вернёт пустые поля.
В подробном разборе автор воспроизводит гонку и проверяет способы защиты. | 5 528 |
| 11 | Как передавать Minecraft-сервер между компьютерами игроков
Экзамены одного игрока выключили Minecraft-сервер для всей компании на неделю: мир работал только на его компьютере. В ответ появился Nomad, который позволяет запускать тот же мир у любого участника.
Проект выбирает хоста через файл lease.json в общем хранилище. Если два игрока запускают сервер одновременно, условная запись разрешает это только одному. Хост подтверждает работу каждые 20 секунд, а после сбоя право запуска переходит другому игроку, когда истекают пять минут аренды. Перед передачей Nomad загружает сохранение мира в Cloudflare R2, Git или совместимое с S3 хранилище.
В разборе Nomad есть жизненный цикл хоста, схема защиты от одновременного запуска и ссылка на код проекта. | 6 397 |
| 12 | Как GitHub перенёс движок Copilot на Rust силами Copilot
GitHub переписал общий движок Copilot с TypeScript на Rust: вышло более 800 тысяч строк производственного кода. Большую часть написали ИИ-агенты, а 128 пул-реквестов вливали в основную ветку и выпускали постепенно.
Раньше каждое приложение через SDK запускало отдельный процесс с Node.js и V8. Это означало минимум около 100 МБ памяти и обмен данными между процессами. Версию на Rust можно встраивать в приложение.
Для больших переписываний интересна стратегия: каждый пул-реквест заменял реализацию одного компонента и оставлял прослойку, которая передавала вызовы Rust-коду. Основная ветка оставалась готовой к выпуску. В материале разобраны причины выбора Rust, компромиссы и регрессии постепенного переноса. | 5 600 |
| 13 | Как читать HTML-реликты из эпохи браузерных войн
В старом head можно встретить строки, смысл которых уже не восстановить по имени. Например, X-UA-Compatible заставлял Internet Explorer выбирать самый новый доступный режим документа, а условные комментарии показывали разную разметку отдельным версиям браузера.
Другие теги защищали страницу от вмешательства сторонних программ. Skype Toolbar превращал номера телефонов в кнопки и мог ломать вёрстку, поэтому сайт отключал его отдельным метатегом. Baidu пропускала мобильные страницы через свой сервис, перестраивала макет, удаляла стили и подменяла рекламу; от этой обработки тоже можно было отказаться в разметке.
Разбор Antiquated HTML Snippets and Artefacts пригодится при ревизии унаследованных шаблонов: сначала выясните, какую интеграцию обслуживала незнакомая строка и существует ли её цель, а затем решайте, удалять ли её. | 5 370 |
| 14 | Как реализовать приложения в гибриде?
Гибридная инфраструктура хороша тем, что позволяет не держать всю нагрузку в одном месте. Например, часть ресурсов можно оставить on-premises, а переменную или более тяжёлую нагрузку переносить в облако — в зависимости от требований и стоимости.
В Yandex Cloud для этого есть Cloud Interconnect: он соединяет разные контуры по приватному соединению без выхода в интернет. BareMetal Extend: Virtualization позволяет развернуть готовое частное облако на выделенных серверах, а VPC Private Endpoint — организовать защищенную связь между ресурсами внутри облачной инфраструктуры.
Отдельный пласт — управление расходами. Intelligent Tiering в Object Storage сам перемещает данные между классами хранения, а через публичный API Yandex Cloud Billing можно получать детализацию потребления и расходов по периодам. | 5 956 |
| 15 | А вы уже забрали свой подарок ко Дню программиста?
К вашему профессиональному празднику Tproger, Proglib, Столото, Центральный университет и SmartApe собрали целую коробку подарков. Переходите по ссылке, трясите коробку и забирайте свой презент: https://tprg.ru/edsw
Реклама. ИП Михайлишина Гузель Фаниловна, erid: 2W5zFJrVGHw | 6 410 |
| 16 | Кто должен решать, к данным какого клиента обращается ИИ-агент
Модель может составить безупречный вызов инструмента и запросить договор из чужого аккаунта. Схема верна, аргумент подходит, но договор принадлежит другому клиенту. Более строгий промпт снизит риск, однако границей авторизации не станет.
Автор собрал экспериментальную Rust-библиотеку TenantInvariant. Модель передаёт только идентификатор ресурса, сервер сам находит владельца в базе и сравнивает его с аккаунтом авторизованного пользователя. Если владельцы различаются или поиск ничего не вернул, вызов блокируется.
Код и сценарные тесты охватывают поддельный идентификатор клиента и пакет ресурсов от разных владельцев. При этом библиотека не заменяет проверку разрешений и запросы с ограничением по клиенту. Для SaaS здесь полезнее самой библиотеки порядок проверок: модель предлагает ресурс, а полномочия определяет сервер. | 8 118 |
| 17 | Архитектор решений: чем он занимается и как войти в профессию
Одна пропущенная система на схеме может обернуться сдвигом сроков и ростом бюджета: её доработку просто не заложат в проект. Архитектор решений должен заметить такой промах до реализации.
Он разбирает бизнес-требования на функции, распределяет их по системам и проектирует обмен данными между ними. Результат: архитектурный вижен, то есть диаграммы систем, интеграций, процессов и ролей. Это концепция будущих изменений, которую уточняют на следующих этапах.
Материал пригодится разработчикам, аналитикам, тимлидам и руководителям, которые присматриваются к роли архитектора решений. В нём разобраны необходимые знания, онбординг, первый год работы и собеседование с практическими задачами: кандидату нужно запросить недостающие данные, сравнить варианты и защитить решение. | 8 051 |
| 18 | Иногда важнее понять, как всё устроено, чем выучить очередной инструмент. Эти статьи про логику и процессы: без привязки к конкретным технологиям, зато с идеями, которые пригодятся в любой команде. Будет полезно командам и разработчикам, которые хотят больше понимания процессов на уровне концепций!
Как выстроить работу с выделенной командой
Как работает IT-команда: путь задачи от бэклога до релиза
7 стратегий модернизации легаси
Стратегии деплоя, которые не роняют прод
Как сделать ИБ по-настоящему надёжной
Зачем бизнесу многофакторка
Использование разных фреймворков качает мозг | 7 702 |
| 19 | Когда масштабироваться нужно быстро, но нет своего железа
Знакомый выбор: публичное облако удобно, но для некоторых нагрузок нужна физическая изоляция. Своё железо решает вопрос. Зато дальше начинаются закупки, настройка гипервизора, Kubernetes, обслуживание серверов.
Yandex Cloud анонсировала BareMetal Extend — это изолированные физические серверы с уже развернутой необходимой инфраструктурой:
— Extend: Virtualization — для создания виртуальных машин и распределенного хранилища;
— Extend: Stackland — для создания и управления приложениями;
— Extend: Managed Service for Kubernetes® — для создания группы рабочих узлов Kubernetes.
Подходит, например, когда:
— приложениям нужна физическая изоляция;
— важна предсказуемая производительность;
— текущей инфраструктуре не хватает мощностей;
— хочется гибридную схему с локальными ресурсами;
— не хочется покупать и самостоятельно обслуживать серверы.
Инфраструктура поставляется уже собранной и проверенной на совместимость, что снижает риск ошибок настройки и нагрузку на ИТ-команду.
Если у вас есть задача по расширению мощностей и запуска новых ИТ-проектов – обсудите ее с архитекторами Yandex Cloud или оставьте заявку на тестирование BareMetal Extend. | 5 370 |
| 20 | Как раздать 8,8 Гбит/с видео на одном ядре Go
Ошибочно отправленная ссылка уложила сервер: зрители одновременно открыли HLS-трансляцию, память закончилась, потоки оборвались. Автор собрал Ruseon Core на Go без перекодирования видео.
Кадр один раз попадает в буфер, а зрители читают те же байты. Отстающему подписчику сервер пропускает кадры до следующего ключевого, поэтому не хранит отдельную очередь видео для каждого.
В тесте 1000 пользователей за 70 секунд получили 81 ГБ данных: 8,8 Гбит/с и 60 822 HTTP-ответа без ошибок. В разборе Ruseon Core есть архитектура, исходники и нагрузочные тесты. | 7 072 |
