Типичный программист
80.1K subscribers
3.52K photos
1.16K videos
14 files
8.07K links
Всё самое интересное по программированию

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

VK: vk.com/tproger

Регистрация в перечне РКН: https://tprg.ru/mJwo
Download Telegram
Большая подборка статей, которая поможет изучить 30 основ проектирования систем

1. APIs
2. Вебхуки
3. REST и GraphQL
4. API Gateway
5. Балансировщики нагрузки
6. Алгоритмы балансировки нагрузки
7. Прокси vs Обратный прокси
8. Масштабируемость
9. Доступность (Availability)
10. Единая точка отказа (SPOF)
11. Теорема CAP
12. Типы баз данных
13. SQL или NoSQL
14. Транзакции ACID
15. Индексирование баз данных
16. Шардирование или партиционирование БД
17. Согласованное хеширование (Consistent Hashing)
18. Захват изменения данных (Change Data Capture, CDC
19. Кэширование
20. Стратегии кэширования
21. Политики очищения кэша (Cache Eviction Policies)
22. CDN (Сети доставки контента)
23. Алгоритмы ограничения скорости запросов (Rate Limiting)
24. Очереди сообщений (Message Queues)
25. Фильтр Блума
26. Идемпотентность
27. Конкурентность и параллелизм
28. Состояние: stateful vs stateless
29. Long polling vs WebSockets
30. Пакетная обработка и потоковая обработка


Осталось только лайк поставить и сохранить 👍

#архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
48👍31👏2💅2🍌1🏆1💋1👨‍💻1🎄1💘1😘1
Media is too big
VIEW IN TELEGRAM
Doom на чистом Go

Переписать классический DOOM на Go без единого вызова C? Это реально. Репозиторий gore — порт doomgeneric, автоматически конвертированный из C через ccgo, а затем доведённый до ума вручную.

Движок полностью абстрагирован от ввода-вывода через простой интерфейс DoomFrontend. Чтобы запустить игру на любой платформе, достаточно реализовать всего два метода — DrawFrame и GetEvent. Остальное опционально.

Уже есть три готовых примера:

— терминальный клиент с ANSI-графикой (Doom в консоли),
— веб-сервер с управлением через браузер,
— оконная версия на Ebitengine.

Сборка под любую ОС, включая WebAssembly, прямо из коробки. Из нереализованного: глобальные переменные оригинала пока не дают запустить два экземпляра в одном процессе, и остались отдельные вызовы unsafe.

Для запуска нужен Go 1.24+ и любой WAD-файл (поддерживаются DOOM, DOOM II, Ultimate DOOM, Final DOOM).

Исходный код, примеры и инструкции — здесь: https://github.com/AndreRenaud/gore
🤷‍♀12🔥7😐622🐳2👎1😍1😘1
В блоге Dochia вышла интересная статья о том, как нейросети незаметно возвращают нас к методологии Waterfall.

В эпоху классического Agile мы привыкли работать короткими итерациями с минимальными требованиями. Идея состояла в том, чтобы не тратить месяцы на детальные спецификации. Бизнес все равно изменит планы, а писать код долго и дорого. Дешевле было быстро сделать базовую фичу, получить обратную связь и переделать.

С приходом продвинутых ИИ агентов математика процесса сильно изменилась:
— агенты пишут код невероятно быстро и дёшево;
— они совершенно не умеют додумывать контекст и работать с абстрактными задачами, как это делают живые разработчики;
— любая недосказанность в промте превращается в ошибочную архитектуру, которую вы обнаружите только через несколько спринтов.

Чтобы ИИ выдавал рабочий результат, ему нужна максимально подробная и жёсткая спецификация с описанием всех контрактов и граничных случаев. То есть именно то, за что разработчики так не любили Waterfall.

Формируется новая парадигма. Написание ТЗ снова становится самым дорогим этапом, в котором незаменим человек. Код при этом превращается в дешёвый одноразовый расходник. Вы пишете подробные требования, отдаёте их нейросети, показываете результат пользователям, и если что-то не так, просто меняете ТЗ и генерируете проект заново.

Автор замечает, что это может стать большой проблемой для индустрии. Большинство из нас пришли в профессию, чтобы писать код, а не составлять многостраничные спецификации для нейросетей.

Ссылка на полную статью: https://blog.dochia.dev/blog/waterfall-returning/

@prog_stuff
😁2012😢7🤔2💊2🙊2😎2❤‍🔥1👍1🎉1🙏1
This media is not supported in your browser
VIEW IN TELEGRAM
JetBrains Air: агентная среда для параллельной работы ИИ — вы только ревьюите

JetBrains выпустила Air — отдельное приложение, где можно делегировать задачи нескольким ИИ-агентам одновременно. Вы формулируете задачу, запускаете агента в изоляции (локально, Docker или Git worktree) и переключаетесь на другую работу. Когда готово — ревьюите diff.

Поддерживаются Codex, Claude Agent, Gemini CLI и фирменный Junie. Агенты работают параллельно, не мешая друг другу. Air построен на базе закрытого Fleet и призван дополнить IntelliJ IDEA или VS Code, а не заменить их.

Public preview для macOS (Windows и Linux позже) уже доступно. Работает по подписке JetBrains AI Pro или с собственными API-ключами.

Подробности в новости.

#новости #jetbrains
🥰10💊95🍓32🗿2❤‍🔥1👌1🐳1😭1🤓1
C++26 утверждён: рефлексия, контракты и безопасность без переписывания кода

Комитет ISO завершил техническую работу над C++26 — это самый масштабный релиз со времён C++11. Четыре ключевые фичи меняют подход к разработке: рефлексия позволяет инспектировать и генерировать код на этапе компиляции, контракты добавляют встроенные pre/post-условия, а std::execution вводит структурированную асинхронность.

Отдельного внимания заслуживает безопасность: hardened stdlib с оверхедом 0,3% уже развёрнута в Google и Apple, снизив количество segfault-ов на 30% без изменений в исходном коде. Кроме того, чтение неинициализированных переменных больше не является неопределённым поведением.

Подробности о нововведениях и сроках публикации стандарта — в материале: https://tproger.ru/news/c--26-zaverwyon---samyj-znachimyj-reliz-so-vremyon-c--11-s-refleksi

#новости #cpp

@tproger
Читайте также в VK, Max и Дзен
25🤣6👍5🔥5😱2🎅2😁1💋1🎃1💊1😎1
8/ К старту работы над багом сообщили, что надо отложить работу и делать новую фичу

@tproger
Читайте также в VK, Max и Дзен
😁53💯18🌚12🤣4😭3😢2💊2🤷‍♀1🍓1😨1😘1
Copilot теперь пишет рекламу в ваших пул-реквестах

Разработчики заметили странное: Copilot при редактировании PR исправлял опечатку, но заодно добавлял в описание промо-текст. Под капотом — скрытый HTML-маркер, после которого вставляются рекламные блоки. Уже затронуто более 1,5 миллиона пул-реквестов на GitHub и мерж-реквесты на GitLab.

Что продвигается:

— расширение Raycast для Copilot
— интеграции со Slack и Teams
— запуск агента из VS Code, Visual Studio, JetBrains IDE, Eclipse

Все упомянутые продукты — часть экосистемы Microsoft или её партнёров. Штатного способа отключить эти вставки нет. Компания пока не комментирует ситуацию.

Если вы используете Copilot, проверьте описания PR на наличие маркера COPILOT CODING AGENT TIPS. Для автоматической очистки можно настроить CI-проверку или git-хук, но полностью избавиться от рекламы в рабочем процессе пока не получится.

@tproger
Читайте также в VK, Max и Дзен
😁835😱3🔥2🎅2👎1🍾1👻1👨‍💻1😇1🤪1
Улучшаем Dockerfile: от примитивной базы к multi-stage-решению

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

🔘 Начинается с наивного подхода — всё работает, но образ тяжеленный, сборка занимает 10 минут, а результат непредсказуем.
🔘 Multi-stage — разделяем сборка и рантайм, финальный образ содержит только бинарник и необходимые runtime-зависимости.

Другие два шага, а также отдельный блок о том, почему не все лучшие практики стоит бездумно выполнять — по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94👌2🏆2❤‍🔥1🤔1😱1🐳1🤝1🎄1💊1
This media is not supported in your browser
VIEW IN TELEGRAM
Откопал для вас годный эмулятор CPU, который разложит его внутренние процессы по полочкам

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

🔘 Архитектуру можно настраивать: менять параметры и смотреть, как всё это отражается на работе программы. Выбор есть между несколькими примерами задач. А если что-то не разглядели, можно откатиться назад или поменять скорость отработки этапов.

🔘Для тех, кто любит теорию и структурированные объяснения — есть хорошее введение, где всё описанное выше разложено по полочкам.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🤗3🎉2💔21❤‍🔥1😁1🤓1💅1🤪1🙊1
Ничто так не раздражает на работе, как необходимость работать

@tproger
Читайте также в VK, Max и Дзен
😁50🔥492💯21👏1😱1😈1🤝1🙊1😎1
В России глобальный сбой интернета

Легло очень многое. По сообщениям на DownDetector не работает СБП, Сбербанк, Т-Банк, ВТБ и множество других сервисов.

У админа, например, лёг Ростелеком. Даже телефон поддержки провайдера не работает.

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

Будем следить за ситуацией и обновлять информацию.

А вы заметили сбой? Что не работает у вас?

@your_tech (теперь ещё в VK и Max)
😁59🐳53❤‍🔥2👎2👏2🤯2🍌21👍1
Amazon научил ИИ-агентов эволюционировать: фреймворк A-Evolve поднимает результаты без ручной настройки

Исследователи Amazon и Университета Пенсильвании выпустили open-source фреймворк A-Evolve, который автоматически улучшает ИИ-агента. Вместо ручного тюнинга система запускает агента-эволюционера: он модифицирует промпты, скиллы и инструменты, прогоняет изменения через бенчмарки и оставляет только те, что дают прирост. Весь процесс фиксируется через git.

На бенчмарке MCP-Atlas эволюция подняла агента на Claude Opus 4.6 до 79,4% — первое место в рейтинге. Прирост на других тестах — до 15 процентных пунктов. Для запуска достаточно трёх строк кода на Python.

Фреймворк работает с LLM от Anthropic, OpenAI и Amazon Bedrock. Это не дообучение модели, а эволюция поведения агента через управляемые мутации его конфигурации. Подробности о технике, бенчмарках и коде читайте в материале.

@tproger
Читайте также в VK, Max и Дзен
🔥25🤨92👍1🤗1🆒1
Oracle уволила 30 000 письмом в 6 утра — деньги пойдут на ИИ

31 марта тысячи сотрудников Oracle в нескольких странах проснулись и нашли письмо от «Oracle Leadership»: должность ликвидирована, сегодня последний рабочий день, доступ к системам закрыт. Не встреча с HR, не звонок — письмо в шесть утра без предупреждения.

По оценке TD Cowen, сокращения затронули от 20 до 30 тысяч человек — до 18% глобального штата. На Reddit и Blind сотрудники в реальном времени подтверждали увольнения: в некоторых подразделениях сократили минимум 30% команд. Часть позиций внутри Oracle, по данным Bloomberg, была внутренне отмечена как «заменяемые ИИ».
Ирония в том, что чистая прибыль Oracle за последний квартал выросла на 91% до $6,1 млрд. Компания не в кризисе — она просто меняет структуру расходов: сэкономленные $8–10 млрд пойдут на строительство ИИ-дата-центров в рамках плана на $156 млрд.

Читать полностью: https://tproger.ru/news/oracle-uvolnyaet-30-000-sotrudnikov-pismom-v-6-utra---sekonomle

#новости
👀83💊49👎16🔥5👍4😭4321🍓1🙊1
Какие доки может распознавать ИИ

Субботнее разглядывательное: у нас на сайте вышла статья про задачи, в которых помогает распознавание документов. Так вот, там уйма наглядных примеров с картинками: какие документы под силу нейросетке, и как это распознавание выглядит. Всех приглашаю к залипанию.

А вы любите разглядывать документы?😏

@tproger
Читайте также в VK, Max и Дзен
👍83👏1🤔1🍌1👀1
7 TUI-инструментов, которые сделают консоль удобнее

Переключение в браузер ради конвертации видео или добавления лицензии к проекту — привычка, от которой сложно избавиться. Но новые TUI-утилиты закрывают эти задачи прямо в терминале.

Среди подобранного:
— MONICA — интерактивная надстройка над ffmpeg без необходимости помнить флаги;
— lic — одна команда для создания файла LICENSE из официальной базы GitHub;
— PNANA — терминальный редактор между nano и vim с tree-sitter подсветкой синтаксиса и поддержкой мыши;
— CodeWeaver — собирает всю кодовую базу в один Markdown-файл, чтобы удобно скармливать проект ИИ-ассистенту.

Плюс ещё три утилиты: поиск торрентов в консоли, часы и таймер для терминала, генератор .gitignore. Все свежие, большинство вышли в последние месяцы.

Подборка: https://tproger.ru/articles/ot-ffmpeg-do-torrentov-dlya-terminala--7-novyh-tui-instrumentov--kotorye-sovetuem

#инструменты

@tproger
Читайте также в VK, Max и Дзен
9👍5😍2👎1👏1😁1🤯1🙉1
Cursor 3: агенты вместо вкладок — IDE с нуля вокруг ИИ

Cursor выпустил третью версию — и это не обновление редактора. Команда построила новый интерфейс с нуля, где в центре архитектуры не файлы, а ИИ-агенты. VS Code-база никуда не делась: переключиться можно в любой момент через меню.

Что изменилось: все агенты — локальные и облачные — в одной боковой панели. Можно запустить агента с телефона через Slack или Linear, и он появится там же. Облачный агент, если надо протестировать на своём десктопе, переносится на локальную машину в несколько кликов. И наоборот: локальный агент можно отправить в облако, чтобы он продолжал работать, пока ноутбук закрыт.

Для кодинга выпустили Composer 2 — собственную frontier-модель с высокими лимитами. Плюс встроенный браузер для тестирования веб-приложений прямо из интерфейса и маркетплейс плагинов с поддержкой MCP-серверов.

Источник: https://tproger.ru/news/cursor-3--ii-redaktor-postroen-s-nulya---agenty-vmesto-vkladok

#cursor #vscode
111🤣6😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Русскоязычный ИИ-рентгенолог из бесплатных запчастей — это реально

Большинство открытых медицинских моделей говорят только по-английски. Один разработчик решил это исправить — собрал мультимодальную нейросеть из двух публично доступных моделей и запустил на бесплатных GPU Kaggle.

Архитектура — классический Vision-Language подход: Google ViT смотрит на снимок и извлекает визуальные фичи, ruGPT-3 от Сбера генерирует текст. Проблема в том, что они не умеют работать вместе из коробки. Пришлось «взломать» конфиг ruGPT-3, чтобы Hugging Face создал новые веса кросс-внимания между моделями, — именно их и обучали.

Датасет взяли американский (Indiana University Chest X-Ray), перевели 7000 медицинских заключений через Helsinki-NLP прямо на Kaggle. Обучение 15 эпох на двух T4 заняло 2.5 часа — с fp16, gradient accumulation и JS-скриптом в браузере, чтобы сессия не отвалилась по тайм-ауту. В итоге модель распознаёт «кальцифицированные гранулемы» и чистые лёгкие на русском языке. Да, немного галлюцинирует, но в целом держится.

Код открыт, живое демо на Hugging Face Spaces — можно потрогать прямо сейчас. А прочитать подробности по ссылке: https://tproger.ru/articles/frankenwtejn-v-medicine--kak-ya-skrestil-vit-i-rugpt-3--chtoby-nau

#machinelearning #python
👍20🔥94👏1😍1🌭1👀1
This media is not supported in your browser
VIEW IN TELEGRAM
Инженер психанул, что все мессенджеры живут по чужим правилам, и написал свой

Когда Telegram падает, облако лежит, а условия сервиса меняются без предупреждения — это не ваш канал связи, это аренда. Автор решил это исправить: PWA-мессенджер на собственном бэкенде, без инвесторов и презентаций.
Внутри оказалось куда интереснее, чем «просто чатик»:

— идемпотентность доставки и дедупликация, потому что «отправил» ≠ «дошло»;
— race condition между потоками онлайн-статуса;
— optimistic update против серверной истины на нескольких устройствах сразу;
— graceful degradation для клиентов с сетью «между EDGE и молитвой».

Плюс живое сравнение двух SQL-запросов для полнотекстового поиска: наивный вариант против варианта с partial GIN-индексом — разница на реальном объёме 10x и выше.

Ещё — UIN-рулетка до регистрации в духе ICQ: снаружи фан, внутри резервация ресурса с TTL и защитой от ботнета.
🙈27👍16🔥64🤣4👎3🤷‍♀1👏1😍1💋1💊1