en
Feedback
Типичный программист

Типичный программист

Open in Telegram

Всё самое интересное по программированию Разместить рекламу: @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.

78 214
Subscribers
-1724 hours
-1147 days
-48930 days
Attracting Subscribers
Sep '26
September '26
+353
in 17 channels
August '26
+414
in 18 channels
Get PRO
July '26
+643
in 18 channels
Get PRO
June '26
+354
in 11 channels
Get PRO
May '26
+708
in 16 channels
Get PRO
April '26
+394
in 12 channels
Get PRO
March '26
+646
in 29 channels
Get PRO
February '26
+427
in 28 channels
Get PRO
January '26
+349
in 13 channels
Get PRO
December '25
+7 357
in 44 channels
Get PRO
November '25
+370
in 30 channels
Get PRO
October '25
+988
in 23 channels
Get PRO
September '25
+1 690
in 24 channels
Get PRO
August '25
+486
in 33 channels
Get PRO
July '25
+509
in 40 channels
Get PRO
June '25
+307
in 12 channels
Get PRO
May '25
+423
in 24 channels
Get PRO
April '25
+447
in 27 channels
Get PRO
March '25
+809
in 22 channels
Get PRO
February '25
+817
in 14 channels
Get PRO
January '25
+904
in 30 channels
Get PRO
December '24
+655
in 16 channels
Get PRO
November '24
+456
in 20 channels
Get PRO
October '24
+614
in 25 channels
Get PRO
September '24
+601
in 13 channels
Get PRO
August '24
+635
in 12 channels
Get PRO
July '24
+541
in 13 channels
Get PRO
June '24
+327
in 9 channels
Get PRO
May '24
+546
in 14 channels
Get PRO
April '24
+564
in 11 channels
Get PRO
March '24
+368
in 3 channels
Get PRO
February '24
+339
in 7 channels
Get PRO
January '24
+325
in 7 channels
Get PRO
December '23
+315
in 9 channels
Get PRO
November '23
+3 368
in 30 channels
Get PRO
October '23
+472
in 5 channels
Get PRO
September '23
+558
in 0 channels
Get PRO
August '23
+890
in 0 channels
Get PRO
July '23
+713
in 0 channels
Get PRO
June '23
+688
in 0 channels
Get PRO
May '23
+743
in 0 channels
Get PRO
April '23
+725
in 0 channels
Get PRO
March '23
+748
in 0 channels
Get PRO
February '23
+1 887
in 0 channels
Get PRO
January '23
+1 425
in 0 channels
Get PRO
December '22
+2 021
in 0 channels
Get PRO
November '22
+463
in 0 channels
Get PRO
October '22
+854
in 0 channels
Get PRO
September '22
+599
in 0 channels
Get PRO
August '22
+720
in 0 channels
Get PRO
July '22
+810
in 0 channels
Get PRO
June '22
+741
in 0 channels
Get PRO
May '22
+893
in 0 channels
Get PRO
April '22
+862
in 0 channels
Get PRO
March '22
+873
in 0 channels
Get PRO
February '22
+457
in 0 channels
Get PRO
January '22
+477
in 0 channels
Get PRO
December '21
+846
in 0 channels
Get PRO
November '21
+932
in 0 channels
Get PRO
October '21
+963
in 0 channels
Get PRO
September '21
+1 165
in 0 channels
Get PRO
August '21
+1 052
in 0 channels
Get PRO
July '21
+1 065
in 0 channels
Get PRO
June '21
+984
in 0 channels
Get PRO
May '21
+933
in 0 channels
Get PRO
April '21
+1 188
in 0 channels
Get PRO
March '21
+1 269
in 0 channels
Get PRO
February '21
+1 815
in 0 channels
Get PRO
January '21
+1 521
in 0 channels
Get PRO
December '20
+77 508
in 0 channels
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
Channel Posts
Для айтишников выпустят свой сет роллов и за состав можно проголосовать Ёёёёёёё и Yandex Cloud готовят совместный сет и перед
Для айтишников выпустят свой сет роллов и за состав можно проголосовать Ёёёёёёё и Yandex Cloud готовят совместный сет и перед релизом собирают пожелания у будущих пользователей! Вопросы извечные: 32 или 48 штук, мержить ли запечённые с холодными, нужен ли один ролл уровня «деплой в пятницу вечером»? Если какой-нибудь ингредиент видеть в роллах не хочется — для этого есть отдельный вопрос. Итоги опроса помогут создать сет, который попадёт в реальное меню! Займёт около трёх минут.

2
Кодить — это хорошо, а разбираться в том, что происходит за кадром, тоже полезно. Что там анализируют, зачем нужны метрики, к
Кодить — это хорошо, а разбираться в том, что происходит за кадром, тоже полезно. Что там анализируют, зачем нужны метрики, кто такой этот ваш UX, какие задачи решает дизайн? Материалы ниже как раз об этом. Вникать во всё на сто процентов, конечно, не нужно, но базовое понимание поможет находить общий язык с коллегами и видеть чуть дальше кодовой базы. Как один лотерейный билет превратился в несколько сотен требований, десятки интеграций и пять месяцев Discovery Очнуться от мрака метрик: три истории от продакта о том, как решать неочевидные проблемы бизнеса Как проверять продукт на UX на примере личного кабинета студента Как тестировать пуши и диплинки в финансовом приложении Дизайн в маркетинге: как фирменный стиль решает бизнес-задачи
2 732
3
No text...
3 394
4
Нетипичные оптимизации PostgreSQL для отчётов и индексов Обычный индекс по sold_at ускорил отчёт с 627 до 187 мс, но занял 21
Нетипичные оптимизации 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 Старый реестр разбирал импорты как пути в файловой сис
Зачем 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 подключ
Сколько стоит превратить 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 шифрует хранилище и при чём здесь пароль Парольная фраза не шифрует ваши данные напрямую. Клиент получает из не
Как Bitwarden шифрует хранилище и при чём здесь пароль Парольная фраза не шифрует ваши данные напрямую. Клиент получает из неё ключ и расшифровывает им случайный 64-байтный мастер-ключ. Уже тот открывает логины, пароли, URL, заметки и даже названия записей. Сервер хранит только зашифрованные данные. Мастер-ключ делится пополам: первые 32 байта служат ключом шифрования AES, вторые создают HMAC-подпись для проверки целостности. Если подпись не совпала, запись считают повреждённой или изменённой и не расшифровывают. Чтобы заблокировать хранилище, клиент удаляет расшифрованный мастер-ключ. Держите разбор How Bitwarden Encrypts and Decrypts Secrets: автор восстановил детали по исходному коду Bitwarden и Vaultwarden и приложил рабочий скрипт на Python. Он пригодится, если нужно читать резервную копию базы Vaultwarden или собирать собственный клиент.
5 187
9
Как научить небольшую языковую модель соблюдать структуру ответа Модель на 350 млн параметров дообучили всего за 100 шагов и
Как научить небольшую языковую модель соблюдать структуру ответа Модель на 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 ничего
Почему JOIN с блокировкой строки может вернуть пустоту в PostgreSQL Строка есть, внешний ключ заполнен, но INNER JOIN ничего не возвращает. Это возможно, когда две транзакции одновременно меняют связанную запись. В Read Committed PostgreSQL после снятия блокировки перепроверяет условие JOIN по новой версии строки, но связанную запись не загружает заново. Условие больше не совпадает: INNER JOIN отбрасывает строку, а LEFT JOIN вернёт пустые поля. В подробном разборе автор воспроизводит гонку и проверяет способы защиты.
5 528
11
Как передавать Minecraft-сервер между компьютерами игроков Экзамены одного игрока выключили Minecraft-сервер для всей компани
Как передавать Minecraft-сервер между компьютерами игроков Экзамены одного игрока выключили Minecraft-сервер для всей компании на неделю: мир работал только на его компьютере. В ответ появился Nomad, который позволяет запускать тот же мир у любого участника. Проект выбирает хоста через файл lease.json в общем хранилище. Если два игрока запускают сервер одновременно, условная запись разрешает это только одному. Хост подтверждает работу каждые 20 секунд, а после сбоя право запуска переходит другому игроку, когда истекают пять минут аренды. Перед передачей Nomad загружает сохранение мира в Cloudflare R2, Git или совместимое с S3 хранилище. В разборе Nomad есть жизненный цикл хоста, схема защиты от одновременного запуска и ссылка на код проекта.
6 397
12
Как GitHub перенёс движок Copilot на Rust силами Copilot GitHub переписал общий движок Copilot с TypeScript на Rust: вышло бо
Как GitHub перенёс движок Copilot на Rust силами Copilot GitHub переписал общий движок Copilot с TypeScript на Rust: вышло более 800 тысяч строк производственного кода. Большую часть написали ИИ-агенты, а 128 пул-реквестов вливали в основную ветку и выпускали постепенно. Раньше каждое приложение через SDK запускало отдельный процесс с Node.js и V8. Это означало минимум около 100 МБ памяти и обмен данными между процессами. Версию на Rust можно встраивать в приложение. Для больших переписываний интересна стратегия: каждый пул-реквест заменял реализацию одного компонента и оставлял прослойку, которая передавала вызовы Rust-коду. Основная ветка оставалась готовой к выпуску. В материале разобраны причины выбора Rust, компромиссы и регрессии постепенного переноса.
5 600
13
Как читать HTML-реликты из эпохи браузерных войн В старом head можно встретить строки, смысл которых уже не восстановить по и
Как читать 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, Столото, Центральны
А вы уже забрали свой подарок ко Дню программиста? К вашему профессиональному празднику 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-т
Как раздать 8,8 Гбит/с видео на одном ядре Go Ошибочно отправленная ссылка уложила сервер: зрители одновременно открыли HLS-трансляцию, память закончилась, потоки оборвались. Автор собрал Ruseon Core на Go без перекодирования видео. Кадр один раз попадает в буфер, а зрители читают те же байты. Отстающему подписчику сервер пропускает кадры до следующего ключевого, поэтому не хранит отдельную очередь видео для каждого. В тесте 1000 пользователей за 70 секунд получили 81 ГБ данных: 8,8 Гбит/с и 60 822 HTTP-ответа без ошибок. В разборе Ruseon Core есть архитектура, исходники и нагрузочные тесты.
7 072