<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >

  <channel>
    <title><![CDATA[Все статьи подряд / Программирование / Хабр]]></title>
    <link>https://habr.com/ru/hubs/programming/articles/</link>
    <description><![CDATA[Программирование – искусство создания компьютерных программ]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Tue, 05 May 2026 16:05:30 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      
        
    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] 10 уроков агентного кодинга. Что делать в эпоху дешёвого кода?]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1031816/</guid>
      <link>https://habr.com/ru/articles/1031816/?utm_campaign=1031816&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/0bd/a15/b94/0bda15b94f713116df143a8cab095a41.jpg" /><p>Передовые модели сейчас&nbsp;действительно хорошо пишут код&nbsp;— лучше, чем справляются с большинством других задач. Работа с агентами ощущается как взгляд из будущего: полигон для проверки того, насколько далеко можно зайти с агентными возможностями. Это заряжает, даёт результат и при этом — откровенно странно ощущается.</p><p>Я веду список советов по агентному кодингу: правила и ориентиры для тех, кто только начинает работать с Codex, Claude Code, Pi или любым другим агентом. Каждый пункт — обобщённая рекомендация, применимая к агентному программированию в целом. Хочется, чтобы уроки оставались актуальными по мере того, как улучшаются модели и инструменты.</p><p>Ниже — текущий список:&nbsp;<em>10 уроков агентного кодинга</em>. Десять — красивое круглое число, хороший повод опубликовать.</p> <a href="https://habr.com/ru/articles/1031816/?utm_campaign=1031816&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 05 May 2026 15:57:01 GMT</pubDate>
      <dc:creator><![CDATA[python_leader]]></dc:creator>
      
      <category>агентный кодинг</category><category>Claude Code</category><category>AI-агенты</category><category>spec-driven development</category><category>end-to-end тесты</category><category>вайбкодинг</category><category>автоматизация разработки</category><category>документация кода</category><category>промпт-инжиниринг</category><category>кибербезопасность</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Вы неправильно используете IDisposable: почему using не спасает, когда объект утекает в другой поток]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/otus/articles/1028972/</guid>
      <link>https://habr.com/ru/companies/otus/articles/1028972/?utm_campaign=1028972&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/c5e/ee0/ef5/c5eee0ef5301f0f9c20ecce224824047.png" /><p><code>using</code> в&nbsp;C# выглядит как&nbsp;универсальная страховка от&nbsp;утечек ресурсов, пока объект живёт строго внутри одного метода. Но&nbsp;стоит вернуть его наружу, передать в&nbsp;фоновую задачу, положить в&nbsp;коллекцию или&nbsp;доверить DI‑контейнеру&nbsp;— и привычное правило начинает работать против вас. </p><p>В&nbsp;статье разберём типичные сценарии, где <code>IDisposable</code> превращается в&nbsp;источник нестабильных багов: закрытые раньше времени соединения, гонки с <a href="http://Task.Run"><code>Task.Run</code></a>, утечки обработчиков и тот самый <code>HttpClient</code>, который лучше не&nbsp;создавать на&nbsp;каждый запрос.</p> <a href="https://habr.com/ru/articles/1028972/?utm_campaign=1028972&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 05 May 2026 14:50:33 GMT</pubDate>
      <dc:creator><![CDATA[badcasedaily1 (OTUS)]]></dc:creator>
      
      <category><![CDATA[C#]]></category><category><![CDATA[.NET]]></category><category><![CDATA[IDisposable]]></category><category><![CDATA[using]]></category><category><![CDATA[Dispose]]></category><category><![CDATA[IAsyncDisposable]]></category><category><![CDATA[HttpClient]]></category><category><![CDATA[DI-контейнер]]></category><category><![CDATA[управление ресурсами]]></category><category><![CDATA[ObjectDisposedException]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Ollama Cloud Client: когда модели слишком тяжелы для локального запуска]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/beeline_cloud/articles/1031708/</guid>
      <link>https://habr.com/ru/companies/beeline_cloud/articles/1031708/?utm_campaign=1031708&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/d0a/b64/da0/d0ab64da0c73bb23b69a463bc795bc9e.png" /><p>Привет. Меня зовут Николай Пискунов, я руководитель направления Big Data и эксперт курса Cloud DevSecOps по безопасной разработке от Академии вАЙТИ <a href="https://cloud.beeline.ru/?utm_source=owned_media&amp;utm_medium=habr&amp;utm_campaign=beeline_cloud&amp;utm_term=ollamacloudclient">Beeline Cloud</a>. Сегодня я хочу поделиться историей создания одного интересного проекта&nbsp;— клиента для облачного сервиса Ollama.</p> <a href="https://habr.com/ru/articles/1031708/?utm_campaign=1031708&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 05 May 2026 12:18:55 GMT</pubDate>
      <dc:creator><![CDATA[kbooo (Beeline Cloud)]]></dc:creator>
      
      <category><![CDATA[ollama]]></category><category><![CDATA[llm]]></category><category><![CDATA[spring boot]]></category><category><![CDATA[java]]></category><category><![CDATA[react]]></category><category><![CDATA[typescript]]></category><category><![CDATA[sse]]></category><category><![CDATA[server sent events]]></category><category><![CDATA[streaming]]></category><category><![CDATA[ai api]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Универсальный Task для C++20 coroutines: тип результата, политика запуска и владение coroutine state]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1031644/</guid>
      <link>https://habr.com/ru/articles/1031644/?utm_campaign=1031644&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Разбор минимального пользовательского Task для C++20 coroutines: выбор promise_type для void и value-результата, политики initial_suspend(), хранение coroutine_handle, final_suspend(), сохранение результата и исключения, а также границы текущей реализации.</p> <a href="https://habr.com/ru/articles/1031644/?utm_campaign=1031644&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дале</a>]]></description>
      
      <pubDate>Tue, 05 May 2026 11:16:11 GMT</pubDate>
      <dc:creator><![CDATA[olegiv2019]]></dc:creator>
      
      <category><![CDATA[C++20]]></category><category><![CDATA[coroutines]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Senior‑разработчики как исчезающий вид]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1031324/</guid>
      <link>https://habr.com/ru/articles/1031324/?utm_campaign=1031324&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/603/7c2/961/6037c29613b03b7b770bdfa6d2febb7e.jpg" /><p>Как&nbsp;AI меняют карьерный&nbsp;лифт в&nbsp;разработке: почему проблема не&nbsp;в&nbsp;исчезновении сеньоров, а&nbsp;в&nbsp;том, что&nbsp;рынок всё хуже выращивает новых инженеров. Разбираем автоматизацию нижнего слоя задач, AI‑потолок джунов, контур ответственности и риск разрыва воспроизводства специалистов.</p> <a href="https://habr.com/ru/articles/1031324/?utm_campaign=1031324&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 05 May 2026 10:03:09 GMT</pubDate>
      <dc:creator><![CDATA[fyodor18]]></dc:creator>
      
      <category><![CDATA[ИИ]]></category><category><![CDATA[AI]]></category><category><![CDATA[Claude Code]]></category><category><![CDATA[Codex]]></category><category><![CDATA[разработчики]]></category><category><![CDATA[джуны]]></category><category><![CDATA[сеньоры]]></category><category><![CDATA[карьера в IT]]></category><category><![CDATA[рынок труда]]></category><category><![CDATA[программирование]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[За два месяца вместо года: как мы переписали 97 тысяч строк кода с Objective-C на Swift]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/yandex/articles/1028494/</guid>
      <link>https://habr.com/ru/companies/yandex/articles/1028494/?utm_campaign=1028494&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/af4/119/ec3/af4119ec32698dc36787dfe0c54653d0.jpg" /><p>Миграция большого iOS-проекта с Objective-C на Swift кажется понятной задачей ровно до тех пор, пока не начинаешь считать объём. В нашем случае это были 10 тысяч файлов, сотни тысяч строк кода и постоянная необходимость не останавливать развитие продукта. Ручной подход работал слишком медленно, поэтому мы начали автоматизировать миграцию с помощью LLM — и в итоге превратили её из бесконечного техдолга в воспроизводимый процесс.</p><p>Из этой статьи вы узнаете, как мы пять лет закрывали этот техдолг и за это время переписали лишь половину. И как в итоге пришли к решению на базе LLM, которое помогло завершить работу кратно быстрее и высвободило время разработчиков для более интересных задач, чем рефакторинг кода.</p><p>Меня зовут Андрей Сикерин, я руковожу одной из групп iOS-разработки Яндекс Браузера. Вместе со мной статью писала Елизавета Мазулова, разработчица из нашей же команды. Она создала систему промптов для миграции, ревью, рефакторинга и автоматизации тестирования. Вместе мы расскажем, как устроен весь процесс изнутри: от выбора порядка миграции модулей до контроля качества через тесты.</p><p>Все промпты, конфигурационные шаблоны и вспомогательные скрипты выложили в открытый доступ — забирайте и адаптируйте под свой проект. Мы уже проверили, что подход работает не только у нас: взяли открытый репозиторий приложения Wikipedia для iOS и без существенных изменений промптов мигрировали один из его пакетов и поделились результатом с сообществом в виде открытого PR.</p> <a href="https://habr.com/ru/articles/1028494/?utm_campaign=1028494&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 05 May 2026 09:00:07 GMT</pubDate>
      <dc:creator><![CDATA[sav42 (Яндекс)]]></dc:creator>
      
      <category><![CDATA[swift]]></category><category><![CDATA[objective-c]]></category><category><![CDATA[Яндекс]]></category><category><![CDATA[Яндекс Браузер]]></category><category><![CDATA[команда яндекс.браузера]]></category><category><![CDATA[llm]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Мой первый ИИ: Пишем нейросеть на Python с нуля]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1031568/</guid>
      <link>https://habr.com/ru/articles/1031568/?utm_campaign=1031568&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/200/961/58c/20096158cd39c6b58da3ad413ec1be27.jpg" /><p>Написал гайд для тех, кто хочет понять нейросети изнутри. Создаем свой ИИ для распознавания цифр на чистом Python всего в 50 строк кода. Вся математика на пальцах!</p> <a href="https://habr.com/ru/articles/1031568/?utm_campaign=1031568&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 05 May 2026 08:27:26 GMT</pubDate>
      <dc:creator><![CDATA[enamored_poc]]></dc:creator>
      
      <category><![CDATA[Нейросети для начинающих]]></category><category><![CDATA[python]]></category><category><![CDATA[машинное обучение]]></category><category><![CDATA[алгоритмы]]></category><category><![CDATA[numpy]]></category><category><![CDATA[градиентный спуск]]></category><category><![CDATA[распознавание образов]]></category><category><![CDATA[искусственный интеллект]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[ИИ‑агенты в инженерной команде: гайд для тимлида, который не хочет получить бунт]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030314/</guid>
      <link>https://habr.com/ru/articles/1030314/?utm_campaign=1030314&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/cda/48e/13c/cda48e13c6280899974b26b9f3b89f1f.jpg" /><p>Вы прочитали гайд по&nbsp;Cursor, посмотрели демку Claude Code, посчитали в&nbsp;голове экономику и решили: пора. Спускаете в&nbsp;команду указание&nbsp;— попробовать на&nbsp;следующей итерации. Через две недели смотрите на&nbsp;цифры и видите, что&nbsp;lead time не&nbsp;сократился, а&nbsp;вырос. Полетели странные инциденты в&nbsp;трекер. Двое лучших разработчиков ходят с&nbsp;лицами «я&nbsp;же говорил». На&nbsp;ретро звучит сдержанное «нам нужно больше времени, чтобы оценить эффект». На&nbsp;самом деле это значит «уберите эту штуку».</p><p>Знакомо? Это типичная картина внедрения ИИ в&nbsp;инженерной команде через администрирование. Проблема не&nbsp;в&nbsp;инструменте, не&nbsp;в&nbsp;моделях и не&nbsp;в&nbsp;скептиках. Проблема в&nbsp;том, что&nbsp;push‑модель (принуждение) внедрения системно не&nbsp;работает с&nbsp;разработчиками высоких грейдов&nbsp;— и чем сильнее ваша команда, тем хуже она работает.</p><p>В&nbsp;этом гайде&nbsp;— модель вовлечения без&nbsp;революций (далее pull‑модель). Что&nbsp;нужно построить, чтобы синьоры сами выбрали работать с&nbsp;агентом, а&nbsp;через три месяца стали евангелистами. Это не&nbsp;про&nbsp;мотивационные речи и не&nbsp;про&nbsp;премии за&nbsp;процент кода от&nbsp;ИИ. Это про&nbsp;инженерное решение: workflow, инфраструктура и фазы развёртывания, которые проходят фильтр опытного разработчика.</p> <a href="https://habr.com/ru/articles/1030314/?utm_campaign=1030314&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать как этого добиться</a>]]></description>
      
      <pubDate>Tue, 05 May 2026 08:05:41 GMT</pubDate>
      <dc:creator><![CDATA[Spaceguest]]></dc:creator>
      
      <category><![CDATA[ии-агенты]]></category><category><![CDATA[agentic coding]]></category><category><![CDATA[claude code]]></category><category><![CDATA[claude code skills]]></category><category><![CDATA[codex]]></category><category><![CDATA[парное программирование]]></category><category><![CDATA[управление командой разработки]]></category><category><![CDATA[workflow]]></category><category><![CDATA[sdlc]]></category><category><![CDATA[тимлидерство]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Соглашения по именованию в Go: практическое руководство]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/otus/articles/1031544/</guid>
      <link>https://habr.com/ru/companies/otus/articles/1031544/?utm_campaign=1031544&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/1f0/8a9/5ff/1f08a95ff890b1629dd3533d982ce0fd.jpg" /><p>В Go легко написать код, который компилируется, но раздражает при чтении: слишком длинные receiver’ы, странные имена пакетов, лишние повторы в вызовах, хаотичный регистр и <code>utils</code>, который постепенно превращается в свалку. Для начинающего Go-разработчика соглашения по именованию могут выглядеть как набор мелких вкусовых правил, хотя на практике они влияют на навигацию по проекту, читаемость API и стоимость будущего рефакторинга. </p><p>В статье разберем основные правила и идиомы именования в Go – от идентификаторов и пакетов до методов, интерфейсов и геттеров – с примерами удачных и неудачных решений.</p> <a href="https://habr.com/ru/articles/1031544/?utm_campaign=1031544&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Разобраться в Go</a>]]></description>
      
      <pubDate>Tue, 05 May 2026 07:54:17 GMT</pubDate>
      <dc:creator><![CDATA[kmoseenk (OTUS)]]></dc:creator>
      
      <category>go</category><category>golang</category><category>именование в Go</category><category>соглашения по именованию</category><category>идентификаторы</category><category>интерфейсы</category><category>структуры</category><category>имена пакетов</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[AI-friendly и AI-first: как адаптировать ИТ-проекты под эру LLM]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/ru_mts/articles/1027642/</guid>
      <link>https://habr.com/ru/companies/ru_mts/articles/1027642/?utm_campaign=1027642&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/e8b/0b5/449/e8b0b5449317b81fc20035cb7e8d30ce.png" /><p>Привет, Хабр! Последние полгода стало модно создавать новые и переводить старые проекты на рельсы AI-First (или AI-Friendly) стандарта. Уже появляются проекты, которые декларируются как «designed for AI to write». Например, <a href="https://github.com/feldroy/air">AIR</a> — AI-First веб-фреймворк на Python.</p><p>В этой статье я хочу рассказать о том, как сделать свой проект дружелюбным для ИИ и тем самым повысить его юзабилити и помочь пользователям быстрее начать им пользоваться. ИИ-агенты стали новыми потребителями вашего кода. У них своя экономика токенов, свои требования к проекту и его документации. Хорошая новость в том, что настроить все можно за несколько часов — будь то забытый корпоративный микросервис или новый opensource-проект.</p><p>Это может пригодиться как создателям открытых проектов, так и разработчикам внутренних корпоративных проектов. Итак, начнем с матчасти.</p> <a href="https://habr.com/ru/articles/1027642/?utm_campaign=1027642&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 05 May 2026 07:22:29 GMT</pubDate>
      <dc:creator><![CDATA[DrArgentum (МТС)]]></dc:creator>
      
      <category><![CDATA[документация]]></category><category><![CDATA[AGENTS.md]]></category><category><![CDATA[agents]]></category><category><![CDATA[ai-friendly]]></category><category><![CDATA[ai-frist]]></category><category><![CDATA[ai friendly]]></category><category><![CDATA[ai first]]></category><category><![CDATA[llms.txt]]></category><category><![CDATA[LLM]]></category><category><![CDATA[ии-агенты]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Парадокс GPT-5.5: чем подробнее промт — тем хуже. Разобрал свой 663-строчный скилл и сверился с Claude]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1031498/</guid>
      <link>https://habr.com/ru/articles/1031498/?utm_campaign=1031498&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/15c/1e0/ab3/15c1e0ab3b53cfe1a969b87e4c760500.png" /><p>OpenAI выкатил гайд по промтингу GPT-5.5. Главный тезис: длинные простыни инструкций с ALWAYS/NEVER/MUST не помогают модели — они мешают. Чем подробнее зажимаешь процесс, тем хуже результат. Я полез проверять. Открыл свой рабочий скилл — process-logs, обработка логов ошибок, версия 1.9.0, продакшн. 663 строки, 36 капс-блоков: «CRITICAL REQUIREMENTS», «YOU MUST FOLLOW THESE RULES. NO EXCEPTIONS». Каждый раздел начинается с MANDATORY. Перечитал по новым правилам OpenAI и нашёл четыре проблемы в одной секции из 134 слов: дублирующиеся императивы на одну мысль, judgment-call под видом invariant, нет stopping condition. Переписал — стало 50 слов. На Opus 4.7 и GPT-5.5 короткий вариант даёт лучший фикс на одной и той же ошибке из логов. В статье: разбор 5 ключевых тезисов гайда с прямыми цитатами, диф «до/после» на реальном продакшн-скилле, эксперимент в Google Stitch, который можно повторить за 5 минут, и сверка с тем, что говорит Anthropic про Claude.</p> <a href="https://habr.com/ru/articles/1031498/?utm_campaign=1031498&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 05 May 2026 06:42:56 GMT</pubDate>
      <dc:creator><![CDATA[Maslennikovig]]></dc:creator>
      
      <category><![CDATA[Claude Code]]></category><category><![CDATA[prompt engineering]]></category><category><![CDATA[GPT-5]]></category><category><![CDATA[OpenAI]]></category><category><![CDATA[AI-агенты]]></category><category><![CDATA[Anthropic]]></category><category><![CDATA[Claude]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Написание конечного автомата для разбора HTML]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1029372/</guid>
      <link>https://habr.com/ru/articles/1029372/?utm_campaign=1029372&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Всем привет! В этой статье напишем простой конечный автомат для парсинга HTML. Уровень средний, требуется понимания побитовых операций.</p> <a href="https://habr.com/ru/articles/1029372/?utm_campaign=1029372&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 05 May 2026 05:00:44 GMT</pubDate>
      <dc:creator><![CDATA[Trusow]]></dc:creator>
      
      <category><![CDATA[конечные автоматы]]></category><category><![CDATA[конечный автомат]]></category><category><![CDATA[парсер]]></category><category><![CDATA[парсер сайтов]]></category><category><![CDATA[парсеры]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Я сделал приложение за вечер без навыков программирования. Зачем теперь разработчики?]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1031410/</guid>
      <link>https://habr.com/ru/articles/1031410/?utm_campaign=1031410&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/0b0/1ab/09d/0b01ab09d6f2b3c4a71c6bc4a9cfe3e7.jpg" /><p>Я работаю проджект‑менеджером в&nbsp;крупной IT‑компании. Я за&nbsp;вечер сделал то, на&nbsp;что&nbsp;раньше ушло&nbsp;бы несколько месяцев работы целой команды. И этот опыт полностью поменял мое отношение к&nbsp;роли разработчика.</p> <a href="https://habr.com/ru/articles/1031410/?utm_campaign=1031410&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 04 May 2026 19:55:18 GMT</pubDate>
      <dc:creator><![CDATA[vital_pavlenko]]></dc:creator>
      
      <category><![CDATA[сатира]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Поддержка Docker Compose в Spring Boot 3.1]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/spring_aio/articles/1031216/</guid>
      <link>https://habr.com/ru/companies/spring_aio/articles/1031216/?utm_campaign=1031216&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/8be/ebd/469/8beebd469fb195f859a5db6258ce82f5.png" /><p>Иногда перед разработчиком встает задача воссоздания некоторого окружения локально. В него часто входят различные компоненты инфраструктуры, такие как:</p><p>– PostgreSQL</p><p>– Kafka</p><p>– RabbitMQ</p><p>– Redis</p><p>И так далее. Менеджить целый зоопарк таких сервисов локально бывает не очень удобно. К счастью, у команды Spring Boot для вас есть небольшой помошник - Spring Boot Docker Compose.</p><p><em>Комментарий от Михаила Поливахи:</em></p><p>Друзья, хоть на дворе уже Spring Boot 4, мы знаем, что большинство из вас сидит на Spring Boot 3. И мы посчитали очень нужным рассказать о таком Spring Boot инструменте, который, на наш взгляд, делает локальную разработку со Spring Boot намного более приятной.</p> <a href="https://habr.com/ru/articles/1031216/?utm_campaign=1031216&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 04 May 2026 14:58:24 GMT</pubDate>
      <dc:creator><![CDATA[spring_aio (Spring АйО)]]></dc:creator>
      
      <category>java</category><category>kotlin</category><category>docker</category><category>docker-compose</category><category>dockerfile</category><category>devops</category><category>deploy</category><category>cloud</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Postgres advisory locks на Neon ломаются от TCP‑сброса. История четырёх фиксов retry‑логики]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1031236/</guid>
      <link>https://habr.com/ru/articles/1031236/?utm_campaign=1031236&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/d14/941/9c3/d149419c3f535e725ef45cfe8ab0b493.png" /><p>Расскажу про&nbsp;четыре production‑инцидента на&nbsp;одном куске кода за&nbsp;десять дней. В&nbsp;каждом я думал, что&nbsp;разобрался. Закончилось тем, что&nbsp;я выкинул <code>pg_advisory_lock</code> из&nbsp;retry‑пути и поставил <code>FOR UPDATE SKIP LOCKED</code>. Day‑generation лок остался advisory‑ным, но&nbsp;утечка там не&nbsp;критична&nbsp;— почему именно, разберу в&nbsp;конце. Полезно, если у&nbsp;вас Postgres на&nbsp;Neon (или Supabase, или&nbsp;Aiven serverless) и где‑то по&nbsp;коду есть session‑scoped advisory locks для&nbsp;координации задач между репликами.</p> <a href="https://habr.com/ru/articles/1031236/?utm_campaign=1031236&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 04 May 2026 13:08:36 GMT</pubDate>
      <dc:creator><![CDATA[MatushkinVD]]></dc:creator>
      
      <category><![CDATA[postgresql]]></category><category><![CDATA[advisory lock]]></category><category><![CDATA[neon]]></category><category><![CDATA[serverless]]></category><category><![CDATA[retry]]></category><category><![CDATA[идемпотентность]]></category><category><![CDATA[distributed lock]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[FastAPI + Docker с нуля: деплоим свой первый API без боли и слез]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1031190/</guid>
      <link>https://habr.com/ru/articles/1031190/?utm_campaign=1031190&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/e9d/836/268/e9d836268a75a07c70cf526960f4b43f.jpg" /><p>Каждый начинающий бэкендер рано или поздно сталкивается с классической болью: «Ну не знаю, на моем компе всё работало, а на сервере почему-то падает!». Решение давно известно — контейнеризация. Но что делать, если от слова Docker бросает в дрожь, а официальные туториалы написаны сухим академическим языком и требуют знания Linux-администрирования?</p><p>Мы с нуля напишем простейшее API на современном FastAPI, разберемся, чем «образ» отличается от «контейнера», упакуем наш код в изолированную коробочку и научимся запускать всё это одной кнопкой через Docker Compose. Максимально просто, «на пальцах» и без лишней воды. Заходи, если хочешь деплоить без боли и слез!</p> <a href="https://habr.com/ru/articles/1031190/?utm_campaign=1031190&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 04 May 2026 12:03:51 GMT</pubDate>
      <dc:creator><![CDATA[enamored_poc]]></dc:creator>
      
      <category><![CDATA[python]]></category><category><![CDATA[fastapi]]></category><category><![CDATA[docker]]></category><category><![CDATA[docker-compose]]></category><category><![CDATA[dockerfile]]></category><category><![CDATA[бэкенд]]></category><category><![CDATA[для начинающих]]></category><category><![CDATA[микросервисы]]></category><category><![CDATA[api]]></category><category><![CDATA[разработка с нуля]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[CodeClone 2.0: структурное ревью Python-кода для CI, IDE и AI-агентов]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1031124/</guid>
      <link>https://habr.com/ru/articles/1031124/?utm_campaign=1031124&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Когда я начинал CodeClone, это был довольно понятный инструмент: найти структурные клоны в Python-коде и не дать им незаметно расползаться по проекту.</p><p>Сейчас вышел CodeClone 2.0.0, и это уже другой продукт.</p><p>Не “ещё один линтер”, не попытка заменить Ruff, mypy, pytest, Bandit или Semgrep, а отдельный слой ревью: он смотрит на структуру Python-кода, отделяет старый технический долг от новых регрессий, связывает находки с покрытием тестами и дает одну и ту же картину в CLI, HTML-отчете, GitHub Actions, VS Code, Claude Desktop, Codex и через MCP.</p><p>Эта статья не про список флагов CLI. Про флаги есть документация.</p><p>Здесь я хочу рассказать, во что CodeClone вырос как продукт и зачем вообще нужен такой класс инструмента сейчас, когда разработка всё заметнее смещается в сторону AI-агентов.</p> <a href="https://habr.com/ru/articles/1031124/?utm_campaign=1031124&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 04 May 2026 10:16:01 GMT</pubDate>
      <dc:creator><![CDATA[Orenlab]]></dc:creator>
      
      <category><![CDATA[python]]></category><category><![CDATA[code review]]></category><category><![CDATA[code review ai]]></category><category><![CDATA[quality gates]]></category><category><![CDATA[ai agents]]></category><category><![CDATA[static analysis]]></category><category><![CDATA[test coverage]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Эдсгер Дейкстра. Человек, который придумал параллельные вычисления]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/ruvds/articles/1027578/</guid>
      <link>https://habr.com/ru/companies/ruvds/articles/1027578/?utm_campaign=1027578&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/a46/3ad/13b/a463ad13ba5b2ace07d03b839b959fad.jpg" /><p>Д-р наук, профессор <a href="https://en.wikipedia.org/wiki/Edsger_W._Dijkstra">Эдсгер Дейкстра</a> (Edsger W. Dijkstra, 1930−2002)&nbsp;— легендарный голландский и американский учёный, труды которого заложили фундамент современного программирования. Среди всех учёных прошлого Дейкстра оказал самое большое влияние на современную информатику. Он один из разработчиков концепции&nbsp;<a href="https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5">структурного программирования</a>, <a href="https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%B2%D0%B5%D1%80%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F">формальной верификации</a>,&nbsp;распределённых вычислений, построения компиляторов, графовых алгоритмов, дизайна алгоритмов, дизайна ПО, дизайна математических аргументов, языков программирования и операционных систем.</p><p>Некоторые статьи Дейкстры всего лишь на несколько страниц становились источником целых новых исследовательских направлений. Ряд современных концепций были впервые выявлены Дейкстрой и носят придуманные им названия. Например, <a href="https://en.wikipedia.org/wiki/Concurrent_computing">параллельные вычисления</a>.</p> <a href="https://habr.com/ru/articles/1027578/?utm_campaign=1027578&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 04 May 2026 09:01:25 GMT</pubDate>
      <dc:creator><![CDATA[alizar (RUVDS.com)]]></dc:creator>
      
      <category><![CDATA[Эдсгер Дейкстра]]></category><category><![CDATA[SSSP]]></category><category><![CDATA[алгоритм кратчайшего пути]]></category><category><![CDATA[задача коммивояжера]]></category><category><![CDATA[семафоры]]></category><category><![CDATA[проблема взаимной блокировки]]></category><category><![CDATA[задача об обедающих философах]]></category><category><![CDATA[параллельный алгоритм]]></category><category><![CDATA[каллиграфия]]></category><category><![CDATA[ruvds_статьи]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как я создал AI-ассистента для трейдинга на T-Invest API Часть 2: Human-In-The-Loop]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030892/</guid>
      <link>https://habr.com/ru/articles/1030892/?utm_campaign=1030892&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/5ad/59e/b55/5ad59eb55ecd1e59cc9f20036427b04b.png" /><p>В <a href="https://habr.com/ru/articles/1021512/" rel="noopener noreferrer nofollow">предыдущей статье</a>&nbsp;был рассмотрен способ интеграции ИИ-ассистентов в&nbsp;процесс торговли на&nbsp;бирже. Чтобы углубиться в проектирование ИИ‑приложений, я решил доработать проект. В&nbsp;данной части опишу, как&nbsp;реализовал механизм GuardRails, а&nbsp;именно технику Human‑In‑The‑Loop.</p> <a href="https://habr.com/ru/articles/1030892/?utm_campaign=1030892&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 04 May 2026 09:00:24 GMT</pubDate>
      <dc:creator><![CDATA[RadAI]]></dc:creator>
      
      <category><![CDATA[ии-агенты]]></category><category><![CDATA[ии-ассистент]]></category><category><![CDATA[langgraph]]></category><category><![CDATA[langchain]]></category><category><![CDATA[chainlit]]></category><category><![CDATA[t-invest]]></category><category><![CDATA[т-инвестиции api]]></category><category><![CDATA[т-инвестиции]]></category><category><![CDATA[агент]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Как мы перешли на Opus и стали платить меньше]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030850/</guid>
      <link>https://habr.com/ru/articles/1030850/?utm_campaign=1030850&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/f79/c04/33f/f79c0433f327a8110b8b7e677a29dca9.png" /><p>На прошлой неделе мы писали о том, как&nbsp;<a href="https://www.mendral.com/blog/llms-are-good-at-sql" rel="noopener noreferrer nofollow">скармливали терабайты CI-логов LLM</a>. Большинство вопросов на Hacker News касались не самих логов — спрашивали про агента: какие модели, как они взаимодействуют и во сколько всё это обходится.</p><p>Сейчас мы работаем на Opus 4.6 и платим меньше, чем когда всё крутилось на Sonnet 4.0.</p><p>Причина в основном в том, чего Opus&nbsp;<em>не делает</em>: 80% сбоев до него не доходят, а когда доходят — он не читает ни одной строки лога.</p><p>Архитектура выглядит так...</p> <a href="https://habr.com/ru/articles/1030850/?utm_campaign=1030850&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 04 May 2026 08:34:07 GMT</pubDate>
      <dc:creator><![CDATA[python_leader]]></dc:creator>
      
      <category>LLM-агенты</category><category>multi-agent</category><category>Claude Opus</category><category>Claude Haiku</category><category>оркестратор</category><category>triager</category><category>ClickHouse</category><category>семантический поиск</category><category>стоимость инференса</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Изучаем машинное обучение scikit-learn за одну статью: от понимания API до боевого пайплайна]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1031044/</guid>
      <link>https://habr.com/ru/articles/1031044/?utm_campaign=1031044&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/ecb/11b/fac/ecb11bfac4bb8f1d4e57c871fded7adf.jpg" /><p>Осваиваем scikit-learn за 20 минут 🚀 Выкатил на Хабр гайд для тех, кто хочет понять классический ML на Python без воды. Внутри: — Главный секрет библиотеки (.fit, .predict, .transform) — Как не обмануть себя при оценке модели — Сборка правильного Pipeline, как у мидлов Залетайте читать и забирать шаблоны кода.</p> <a href="https://habr.com/ru/articles/1031044/?utm_campaign=1031044&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 04 May 2026 08:31:18 GMT</pubDate>
      <dc:creator><![CDATA[enamored_poc]]></dc:creator>
      
      <category><![CDATA[python]]></category><category><![CDATA[scikit-learn]]></category><category><![CDATA[machine learning]]></category><category><![CDATA[машинное обучение]]></category><category><![CDATA[data science]]></category><category><![CDATA[руководство]]></category><category><![CDATA[для начинающих]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Поведение как новый критерий идентификации пользователя. Кибербезопасность в эпоху ИИ]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/wunderfund/articles/1028648/</guid>
      <link>https://habr.com/ru/companies/wunderfund/articles/1028648/?utm_campaign=1028648&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/311/dcb/09c/311dcb09c3b0d091dc52f353d64ec353.png" /><p>Мы живём в эпоху смены парадигмы взаимодействия человека с сетевыми системами, смены того, как люди подтверждают то, что они те, за кого себя выдают. Главные вопросы, которые всегда задавали пользователям, звучали так: «Что вы знаете?» (пароль, PIN-код, девичья фамилия матери), или «Как вы выглядите?» (Face ID, отпечатки пальцев). Теперь же на первый план выходит такой вопрос: «Как вы себя ведёте?».</p><p>В наши дни развитие генеративного ИИ и прогресс в разработке вредоносного ПО, вроде RAT (Remote Access Trojan, троян удалённого доступа), позволили киберпреступникам проводить широкомасштабные атаки и даже обходить такие механизмы безопасности, как Face ID или MFA (Multi-Factor Authentication, многофакторная аутентификация, МФА), которые ранее считались «пуленепробиваемыми».</p><p>В наши дни анализ поведенческой биометрии становится стандартным подходом к обеспечению безопасности в банках, ответственных за покрытие убытков от киберпреступлений. Этот подход используется в тех случаях, когда внедрённые банками меры безопасности не способны гарантировать защиту от проблем, характерных для новых схем мошенничества.</p> <a href="https://habr.com/ru/articles/1028648/?utm_campaign=1028648&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 04 May 2026 08:30:28 GMT</pubDate>
      <dc:creator><![CDATA[mr-pickles (Wunder Fund)]]></dc:creator>
      
      <category>кибербезопасность</category><category>искусственный интеллект</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Code Review Horror Stories. Часть 1: Concurrency &amp; Memory в Go-сервисе]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1031010/</guid>
      <link>https://habr.com/ru/articles/1031010/?utm_campaign=1031010&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p><em>Продолжение </em><a href="https://habr.com/ru/articles/1030108/" rel="noopener noreferrer nofollow"><em>прошлой статьи про ошибки на Go-собесах</em></a><em>. В тот раз — про лайв-кодинг. Теперь — про code review: когда дают готовый сервис на ~150 строк и говорят “найди что не так, у тебя 30 минут”.</em></p><p><em>Разберём по косточкам реальный код с собеседования — микросервис трекинга рекламных кликов. Багов набралось 21, поэтому делю на две части. Первая — про самое страшное: concurrency, гонки, утечки памяти и горутин. Это то, что роняет сервис в проде. Часть 2 — про API design, ошибки и graceful shutdown — выйдет следом. Актуально для Go 1.26.</em></p><p><em>Из 21 бага на собесе я нашёл 18. Три самых тонких пропустил — потом, дома, перечитал спокойно и выписал. В этой части про concurrency пропустил один — TOCTOU race в дедупликации. Остальные семь — поймал. Расскажу как искал и какими красными флагами зацепился.</em></p> <a href="https://habr.com/ru/articles/1031010/?utm_campaign=1031010&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 04 May 2026 07:17:21 GMT</pubDate>
      <dc:creator><![CDATA[Zmey56]]></dc:creator>
      
      <category><![CDATA[go]]></category><category><![CDATA[golang]]></category><category><![CDATA[code review]]></category><category><![CDATA[собеседование]]></category><category><![CDATA[конкурентность]]></category><category><![CDATA[goroutine]]></category><category><![CDATA[race condition]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Remoded: разбираем демо-эффекты (часть 1)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1028782/</guid>
      <link>https://habr.com/ru/articles/1028782/?utm_campaign=1028782&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/cb3/5bb/973/cb35bb973e87e6060c3b73c39e97e7d9.jpg" /><p>Приветствую всех ценителей больших пикселей и выпуклых мониторов. Мы продолжаем разбираться с технологиями демосцены 90-х. В этой статье: недокументированные режимы VGA, аппаратный скролл, fake mode, палитровая анимация, и многое другое, о чем бесполезно спрашивать у ChatGPT.</p> <a href="https://habr.com/ru/articles/1028782/?utm_campaign=1028782&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">BEGIN</a>]]></description>
      
      <pubDate>Mon, 04 May 2026 06:51:52 GMT</pubDate>
      <dc:creator><![CDATA[BiTL]]></dc:creator>
      
      <category><![CDATA[демосцена]]></category><category><![CDATA[олдскул]]></category><category><![CDATA[oldschool]]></category><category><![CDATA[assembler]]></category><category><![CDATA[ассемблер]]></category><category><![CDATA[кодинг]]></category><category><![CDATA[компьютерная графика]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[CraftHub для VS Code: редактируй JSON как таблицу прямо в редакторе]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030994/</guid>
      <link>https://habr.com/ru/articles/1030994/?utm_campaign=1030994&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/c99/b72/1ce/c99b721ce44edfd6ab8901d60402fd52.png" /><p>Если вы хоть раз ловили себя на том, что ищете нужную строку в 300-строчном JSON — эта статья для вас. CraftHub теперь живёт прямо в VS Code: открыл файл, переключился в таблицу, поправил, переключился обратно</p> <a href="https://habr.com/ru/articles/1030994/?utm_campaign=1030994&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 04 May 2026 06:33:14 GMT</pubDate>
      <dc:creator><![CDATA[c3n9]]></dc:creator>
      
      <category><![CDATA[json]]></category><category><![CDATA[typescript]]></category><category><![CDATA[vscode extension]]></category><category><![CDATA[vscode]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Рефакторинг. Что нужно понять в первую очередь]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030960/</guid>
      <link>https://habr.com/ru/articles/1030960/?utm_campaign=1030960&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/932/7c0/892/9327c0892c90881a87c8a3ff745b4eac.jpg" /><p>Если начать читать книгу Марина Фаулера «Рефакторинг. Улучшение проекта существующего кода» в первый раз, то для программиста с небольшим опытом можно легко запутаться в том, что же сделать в первую очередь в своей программе чтобы навести там более-менее порядок или чтобы не допустить беспорядка если программа еще не написана. Т. к. рефакторингов там очень много, и чтобы их как следует освоить нужны годы, а программу нужно написать сейчас. Опишу здесь самые главные рефакторинги, без которых не обойтись.</p> <a href="https://habr.com/ru/articles/1030960/?utm_campaign=1030960&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 04 May 2026 03:17:34 GMT</pubDate>
      <dc:creator><![CDATA[YuryNv]]></dc:creator>
      
      <category><![CDATA[рефакторинг]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Я устал от Duolingo и написал себе AI-репетитора. Go, Clean Architecture, 4 LLM-модели — и вот что из этого вышло]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030928/</guid>
      <link>https://habr.com/ru/articles/1030928/?utm_campaign=1030928&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/3b6/7f3/e00/3b67f3e0056159d0a597991a5c25e41b.png" /><p>Мой рабочий день - это код. Вечером я хочу разговаривать с кем-то по-английски, а не нажимать на пингвинчиков.</p><p><strong>Duolingo</strong> учит меня заказывать яблоки, <strong>ChatGPT-чат</strong> отлично объясняет грамматику - но не помнит, что я разбирал Present Perfect в среду и опять путаю его с Past Simple в пятницу.</p><p>Я хотел простую штуку:</p><p>написать модели «давай сегодня про багтрекеры»;</p><p>получить чат на 15 минут;</p><p>а в конце - <strong>три новых слова</strong>, которые она же мне и подобрала по уровню B1.</p><p>Чтобы завтра эти слова всплыли в упражнениях.</p><p>Через месяц получился <strong>Lexis</strong>:</p><p><code>Go</code> · <code>Clean Architecture</code> · <code>4 LLM-модели</code> · <code>SSE-стриминг</code> · <code>JWT rotation + reuse detection</code></p><p>MIT, открытый репозиторий.</p><p>В статье - <strong>три инженерных якоря</strong>, которыми я доволен:</p><p><strong>Pluggable AI-провайдеры</strong> через интерфейс из трёх методов.</p><p><strong>SSE вместо WebSocket</strong> для стриминга AI-ответов.</p><p><strong>JWT rotation + reuse detection</strong> как production-ready стандарт, а не «потом перепишем».</p><p>Плюс честный список того, что ещё не готово.</p> <a href="https://habr.com/ru/articles/1030928/?utm_campaign=1030928&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Показать архитектуру</a>]]></description>
      
      <pubDate>Sun, 03 May 2026 19:56:59 GMT</pubDate>
      <dc:creator><![CDATA[vdv007]]></dc:creator>
      
      <category><![CDATA[Go]]></category><category><![CDATA[Clean Architecture]]></category><category><![CDATA[JWT]]></category><category><![CDATA[AI]]></category><category><![CDATA[LLM]]></category><category><![CDATA[pet-project]]></category><category><![CDATA[изучение английского]]></category><category><![CDATA[SSE]]></category><category><![CDATA[modular monolith]]></category><category><![CDATA[refresh tokens]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как оценить свою компанию перед разговором с инвесторами]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030904/</guid>
      <link>https://habr.com/ru/articles/1030904/?utm_campaign=1030904&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/4c5/33b/d54/4c533bd54913d0c361bd5d4951696340.png" /><p>В&nbsp;данный период своей жизни я пытаюсь создать свой стартап. Но&nbsp;никакой стартап не&nbsp;будет существовать без&nbsp;инвестиций. Возможно, если&nbsp;бы за&nbsp;душой&nbsp;было несколько&nbsp;лишних миллионов долларов, то, возможно обошелся&nbsp;бы и своими силами. Но&nbsp;имеем что&nbsp;имеем. Сразу хочу рассказать немного о&nbsp;себе. У&nbsp;меня за&nbsp;мою жизнь уже&nbsp;было несколько стартапов, один из&nbsp;которых дошел до&nbsp;третьего раунда инвестиций в&nbsp;миллион долларов. Приятные ощущения, работающая компания, но&nbsp;кризис.com‑ов решил все иначе, к&nbsp;сожалению.&nbsp;Были еще небольшие разные стартапы, на&nbsp;которых получалось тоже немного заработать. Это я к&nbsp;тому, что&nbsp;опыт какой никакой все‑таки есть. И каждый раз, в&nbsp;каждом своем проекте всегда я слышал одни и те&nbsp;же вопросы от&nbsp;программистов в&nbsp;своей команде: «Зачем нам вообще пилить MVP?», «А сколько денег нам дадут?», «И что, а&nbsp;зарплаты не&nbsp;будет что&nbsp;ли?» Когда я им отвечал честно, что&nbsp;первые инвестиции не&nbsp;про&nbsp;заработок, то ответ мой их все время расстраивал, ведь денег хочется прямо здесь и прямо сейчас. Прежде чем продолжить, то думаю, что&nbsp;стоит рассказать вам о&nbsp;том, кто&nbsp;же такой бизнес ангел для&nbsp;стартапа. Зачастую, если вы небольшая молодая и зеленая компания, у&nbsp;которой в&nbsp;лучшем случае есть какой‑то прототип или&nbsp;минимально рабочий продукт, то всяким большим дядям из&nbsp;больших и богатых фондов вы не&nbsp;интересны, они не&nbsp;видят в&nbsp;вас реальную выгоду, не&nbsp;видят реальных клиентов (которых обычно даже и нет на&nbsp;начальных этапах), не&nbsp;видят то, куда все ваши фантазии могут их привести. Но&nbsp;вы можете найти бизнес ангела, который поверит вам и поверит в&nbsp;вашу идею. Он дает вам начальный капитал, с&nbsp;которого вы уже сможете стартовать и начинать развивать свой проект.</p> <a href="https://habr.com/ru/articles/1030904/?utm_campaign=1030904&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 03 May 2026 17:52:15 GMT</pubDate>
      <dc:creator><![CDATA[igumnov]]></dc:creator>
      
      <category><![CDATA[инвестиционные фонды]]></category><category><![CDATA[бизнес-ангелы]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как я перестал терять скилы в Claude Code и превратил ~/.claude в Git-репозиторий]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030896/</guid>
      <link>https://habr.com/ru/articles/1030896/?utm_campaign=1030896&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/686/817/b2e/686817b2e76f05141a2c65723063a99c.png" /><p>При работе с Claude Code я столкнулся с проблемой: по мере роста числа агентов стало сложно синхронизировать их правила между машинами и окружениями. Параллельно возник риск — потерять все наработки (скилы, команды, конфигурации) при смене аккаунта или среды.</p><p>Я решил считать <code>~/.claude/</code> обычным кодом и хранить его в Git.</p><p>Так появился <strong>claude-config-template</strong> — репозиторий, из которого <code>~/.claude/</code> собирается через симлинки. В нём лежат скилы, агенты, команды, хуки и MCP-конфигурации.</p><p>Это даёт:<br>- переносимую конфигурацию между машинами <br>- единый источник правды для всех агентов <br>- версионирование и откат через Git</p> <a href="https://habr.com/ru/articles/1030896/?utm_campaign=1030896&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 03 May 2026 17:46:53 GMT</pubDate>
      <dc:creator><![CDATA[Prog-Time]]></dc:creator>
      
      <category><![CDATA[claude code]]></category><category><![CDATA[конфигурация]]></category><category><![CDATA[автоматизация]]></category><category><![CDATA[ai-агенты]]></category><category><![CDATA[llm]]></category><category><![CDATA[open source]]></category><category><![CDATA[искусственный интеллект]]></category><category><![CDATA[инструменты ии]]></category><category><![CDATA[claude code skills]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Хотел протестировать веб-приложение через AI — за три дня собрал свой инструмент]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030840/</guid>
      <link>https://habr.com/ru/articles/1030840/?utm_campaign=1030840&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/011/43d/039/01143d039a005807d8e174de9e9a3603.jpg" /><p>Задача была простая: протестировать два веб-приложения перед деплоем. Next.js-портфолио и SaaS-чат — accessibility, консольные ошибки, отзывчивость на мобильных. Рутина.</p><p>Открыл Claude Code, подключил Playwright MCP, написал «протестируй приложение». Агент начал работать, делать скриншоты, проверять элементы. На 51-м снапшоте <code>/compact</code> сработал. Текстовый контекст был заполнен на 18%. Я не понял что произошло.</p><p>Через час разбирательств я нашёл невидимый image-лимит. Через три часа — понял, что Playwright MCP сжигает в 50 раз больше токенов чем CLI на том же workflow. Через три дня — у меня был рабочий инструмент, который уже тестируют реальные пользователи.</p><p>Эта статья — про путь от «хочу просто протестировать» до open-source инструмента, и про архитектурные проблемы, которые заставили его собрать.</p> <a href="https://habr.com/ru/articles/1030840/?utm_campaign=1030840&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 03 May 2026 13:25:14 GMT</pubDate>
      <dc:creator><![CDATA[Creatman]]></dc:creator>
      
      <category><![CDATA[claude code]]></category><category><![CDATA[playwright]]></category><category><![CDATA[web]]></category><category><![CDATA[qa automation]]></category><category><![CDATA[qa testing]]></category><category><![CDATA[agents]]></category><category><![CDATA[ai tools]]></category><category><![CDATA[mcp]]></category><category><![CDATA[skills в claude]]></category><category><![CDATA[skills]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Celery Autoscale: что в лоб — то по лбу?]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030838/</guid>
      <link>https://habr.com/ru/articles/1030838/?utm_campaign=1030838&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Celery популярен. Модель prefork работает по умолчанию. Autoscale смотрится неплохим вариантом для любого воркера.</p><p>Идея посмотреть, как выглядит механизм изнутри родилась давно, когда по работе сталкивался с проблемами у клиентов в отложенных задачах, но никаких артефактов или задокументированного аномального поведения не было. Это стартовая статья об архитектуре, моделях и масштабировании Celery.</p> <a href="https://habr.com/ru/articles/1030838/?utm_campaign=1030838&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 03 May 2026 13:16:37 GMT</pubDate>
      <dc:creator><![CDATA[okolobackend]]></dc:creator>
      
      <category><![CDATA[celery]]></category><category><![CDATA[очереди]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Claude Code на автопилоте: субагенты, worktrees и CI/CD]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030832/</guid>
      <link>https://habr.com/ru/articles/1030832/?utm_campaign=1030832&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/c91/302/653/c91302653ef77401bda8b37a7a2f165d.png" /><p>Финал серии: Agent Teams, GitHub Actions, Agent SDK, TDD, Ralph-loop на ночь и осторожный прогноз на 2027</p><p><strong>Серия на Хабре:</strong>&nbsp;<a href="https://habr.com/ru/articles/1027090/" rel="noopener noreferrer nofollow">часть 1 - что Claude Code умеет из коробки</a>&nbsp;·&nbsp;<a href="https://habr.com/ru/articles/1028988/" rel="noopener noreferrer nofollow">часть 2 - настройки, хуки и Context Rot</a>&nbsp;· часть 3 - автономная работа и параллелизм.</p><p>Однажды вечером я дал Claude Code не задачу "сделай фичу", а уже написанную спеку и сложный план. Дальше работал не один чат, а цепочка: оркестратор разобрал план на независимые куски, поднял кодеров в отдельных worktree, дождался их diff'ов, потом вызвал ревьюеров на каждый кусок и собрал итоговый отчёт. Утром у меня был не "ответ ассистента", а несколько веток, замечания ревью и список решений, которые всё равно должен принять человек.</p><p>Это третья и финальная часть серии. В&nbsp;<a href="https://habr.com/ru/articles/1027090/" rel="noopener noreferrer nofollow">первой</a>&nbsp;я показал что такое Claude Code и почему я называю его&nbsp;<strong>командой из 15</strong>. Во&nbsp;<a href="https://habr.com/ru/articles/1028988/" rel="noopener noreferrer nofollow">второй</a>&nbsp;- десять настроек, которые эту команду делают управляемой: <a href="http://CLAUDE.md" rel="noopener noreferrer nofollow">CLAUDE.md</a> на 30 строк, permissions, хуки, совещание ботиков через Codex и Gemini, Context Rot.</p><p>Сегодня про следующий уровень. Когда конфиги настроены и работаешь каждый день, упираешься в новый потолок. Даже команда из 15 человек внутри одной сессии Claude имеет предел. Субагенты конкурируют за контекст, ветки мешают друг другу, ты переключаешься между задачами и теряешь состояние.</p><p>Дальше начинается параллелизм, автоматизация и автономия. Десять приёмов, которые превращают Claude Code из "умного помощника" в систему из отдельных агентов, scheduled tasks и CI-задач.</p><p>И в конце - честный разговор про то, куда всё это идёт в 2027 и что останется разработчику.</p> <a href="https://habr.com/ru/articles/1030832/?utm_campaign=1030832&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 03 May 2026 12:23:11 GMT</pubDate>
      <dc:creator><![CDATA[Kir_Moisha]]></dc:creator>
      
      <category><![CDATA[claude code]]></category><category><![CDATA[anthropic]]></category><category><![CDATA[ai-агенты]]></category><category><![CDATA[ai coding]]></category><category><![CDATA[субагенты]]></category><category><![CDATA[git worktrees]]></category><category><![CDATA[agent sdk]]></category><category><![CDATA[spec-driven development]]></category><category><![CDATA[vibecoding]]></category><category><![CDATA[программирование]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Когда pull request выглядит нормальным, но ревью на нём всё равно зависает]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030810/</guid>
      <link>https://habr.com/ru/articles/1030810/?utm_campaign=1030810&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/00c/91d/2f1/00c91d2f1887ba8565a76d49d3f62917.jpg" /><p>В AI-first разработке в продукт прилетает всё больше <code>pull request</code> от людей с разной глубиной контекста. Формально такие PR могут выглядеть нормально, но ревью всё чаще упирается не в синтаксис, а в попытку понять, что именно этот набор изменений делает с системой.</p><p>В статье - почему обычного ревью уже не всегда хватает и как из этой проблемы вырос PRShield: рабочий MVP слоя, который помогает принимать решение перед мержем.</p> <a href="https://habr.com/ru/articles/1030810/?utm_campaign=1030810&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 03 May 2026 10:15:51 GMT</pubDate>
      <dc:creator><![CDATA[alyadusov]]></dc:creator>
      
      <category><![CDATA[code review]]></category><category><![CDATA[pull request]]></category><category><![CDATA[ревью кода]]></category><category><![CDATA[AppSec]]></category><category><![CDATA[DevSecOps]]></category><category><![CDATA[AI code review]]></category><category><![CDATA[GitHub]]></category><category><![CDATA[LLM]]></category><category><![CDATA[безопасная разработка]]></category><category><![CDATA[анализ кода]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[GraphCompose: как я приволок ECS из геймдева и снапшот-тесты из фронта в PDF-генерацию на Java]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030796/</guid>
      <link>https://habr.com/ru/articles/1030796/?utm_campaign=1030796&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/e6a/9ce/ca1/e6a9ceca11581602f864a015574c4c08.jpg" /><p>TL;DR</p><p>Я сделал библиотеку для генерации PDF на Java, в которой:</p><p>Документ описывается&nbsp;<strong>семантически</strong>&nbsp;(модули, секции, параграфы, таблицы, слои), а не через&nbsp;<code>moveTo/lineTo/showText</code>.</p><p>Layout и рендер — это&nbsp;<strong>два разных прохода</strong>. Геометрия резолвится один раз, потом её рисуют. Поэтому документ можно&nbsp;<strong>тестировать до того, как написан хотя бы один байт PDF</strong>.</p><p>Под капотом —&nbsp;<strong>ECS-архитектура</strong>&nbsp;в стиле игровых движков: Entity / Component / System. Сущности документа лежат в&nbsp;<code>EntityManager</code>, компоненты прицепляются и снимаются, системы (<code>LayoutSystem</code>,&nbsp;<code>PaginationSystem</code>,&nbsp;<code>RenderingSystem</code>) работают над ними.</p><p>Тестирование трёхуровневое: unit →&nbsp;<strong>layout-снапшоты</strong>&nbsp;(как у Jest для React) →&nbsp;<strong>визуальная регрессия по PNG-диффу</strong>.</p><p>На простом инвойсе библиотека идёт&nbsp;<strong>2.45 мс</strong>&nbsp;(iText 5 — 1.57 мс, JasperReports — 4.45 мс). На стресс-тесте: 50 потоков, 5000 документов,&nbsp;<strong>0 ошибок, ~2000 doc/sec</strong>.</p><p>Это статья про задумку и инженерные решения, которые получились нетривиальными. Если вам интересно, как декларативный UI, ECS и снапшот-тесты влезают в одну библиотеку для PDF — заходите.</p> <a href="https://habr.com/ru/articles/1030796/?utm_campaign=1030796&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 03 May 2026 08:15:30 GMT</pubDate>
      <dc:creator><![CDATA[Demcha]]></dc:creator>
      
      <category><![CDATA[open source]]></category><category><![CDATA[java]]></category><category><![CDATA[pdf]]></category><category><![CDATA[pdfbox]]></category><category><![CDATA[graphcompose]]></category><category><![CDATA[layout engine]]></category><category><![CDATA[document generation]]></category><category><![CDATA[pagination]]></category><category><![CDATA[backend]]></category><category><![CDATA[visual regression]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Понять Big O раз и навсегда]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030772/</guid>
      <link>https://habr.com/ru/articles/1030772/?utm_campaign=1030772&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/80a/919/bd8/80a919bd867df92a753743737c53bbb5.jpg" /><p>На локалке всё летает, а на проде ложится замертво? Дело в масштабировании. Big O — это не скучная теория для алгоритмических собеседований, а реальный инструмент, чтобы ваш код не «убивал» сервера. В этой статье я на простых примерах и без зубодробительной математики объясню, как оценивать сложность своих алгоритмов. От <img class="formula inline" source="O(1)" alt="O(1)" src="https://habrastorage.org/getpro/habr/formulas/5/5e/5e0/5e079a28737d5dd019a3b8f6133ee55e.svg" width="32" height="16" data-width="4.618" data-height="2.262" data-vertical-align="-0.566"> до <img class="formula inline" source="O(N!)" alt="O(N!)" src="https://habrastorage.org/getpro/habr/formulas/1/1c/1c8/1c842c159c246c6974c90a654fb0845e.svg" width="48" height="16" data-width="6.124" data-height="2.262" data-vertical-align="-0.566"> — только суть, примеры на Python и немного здоровой иронии над медленным кодом.</p> <a href="https://habr.com/ru/articles/1030772/?utm_campaign=1030772&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 03 May 2026 05:48:19 GMT</pubDate>
      <dc:creator><![CDATA[enamored_poc]]></dc:creator>
      
      <category><![CDATA[Алгоритмы]]></category><category><![CDATA[big o]]></category><category><![CDATA[сложность алгоритмов]]></category><category><![CDATA[python]]></category><category><![CDATA[о-большое]]></category><category><![CDATA[оценка сложности]]></category><category><![CDATA[оптимизация кода]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Запрещённая математика в твоём autograd: бесконечно малые, дуальные числа и нестандартный анализ]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030680/</guid>
      <link>https://habr.com/ru/articles/1030680/?utm_campaign=1030680&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/1c6/f90/575/1c6f90575cdc1741b0fc6043ccf6c8a3.png" /><p>Когда вы пишете&nbsp;loss.backward()&nbsp;в PyTorch, ваш autograd делает то, что 200 лет считалось математической ересью: оперирует бесконечно малыми как настоящими числами.</p><p>В 1960 году Абрахам Робинсон формализовал эту «ересь» в виде нестандартного анализа.</p><p>В этой статье мы разберём, как математики изгнали, а затем вернули бесконечно малые, что такое гиперреалы и монады, а затем реализуем эту идею в коде.</p> <a href="https://habr.com/ru/articles/1030680/?utm_campaign=1030680&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 02 May 2026 14:42:19 GMT</pubDate>
      <dc:creator><![CDATA[inkedsymon]]></dc:creator>
      
      <category><![CDATA[autograd]]></category><category><![CDATA[математика]]></category><category><![CDATA[нестандартный анализ]]></category><category><![CDATA[дуальные числа]]></category><category><![CDATA[pytorch]]></category><category><![CDATA[градиенты]]></category><category><![CDATA[бесконечно малые]]></category><category><![CDATA[дифференцирование]]></category><category><![CDATA[python]]></category><category><![CDATA[машинное обучение]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Я создал эмулятор Game Boy на F#]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030636/</guid>
      <link>https://habr.com/ru/articles/1030636/?utm_campaign=1030636&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/570/a99/c2f/570a99c2f78b7aa99497ef89e2b88df6.JPG" /><p>Я <a href="https://nickkossolapov.github.io/fame-boy/building-a-game-boy-emulator-in-fsharp/" rel="noopener noreferrer nofollow">работаю</a> программистом уже более 8 лет, и, признаюсь, никогда не понимал, как на самом деле устроены компьютеры. Поэтому я решил попробовать изучить их работу путём эмуляции. Извините, Бен Итер, я пока не собираюсь ничего создавать.</p> <a href="https://habr.com/ru/articles/1030636/?utm_campaign=1030636&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 02 May 2026 11:27:42 GMT</pubDate>
      <dc:creator><![CDATA[maybe_elf]]></dc:creator>
      
      <category>эмуляция</category><category>эмуляция игр</category><category>game boy</category><category>nintendo</category><category>tetris</category><category>f#</category><category>эмулятор</category><category>старые игры</category><category>история it</category><category>ретро-консоли</category>
    </item>
  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Что именно я понимаю под промежуточным представлением (IR) компилятора]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030578/</guid>
      <link>https://habr.com/ru/articles/1030578/?utm_campaign=1030578&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Я много думал о том, как проектируются промежуточные представления (IR) для компилятора. В этом посте я поделюсь с вами некоторыми идеями, к которым я пришёл, и поясню, почему считаю их важными.</p><p>Главенствующая идея заключается в&nbsp;<em>способности принимать решения, располагая лишь локальной информацией. </em></p><p>Она существует примерно в паре трактовок. Исходим из того, что в каждый момент времени компилируем один какой-то метод, а не занимаемся чем-то сближающимся с трассировкой (трассировка, трейслеты, версионирование базовых блоков, т.д.).</p> <a href="https://habr.com/ru/articles/1030578/?utm_campaign=1030578&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 02 May 2026 06:46:12 GMT</pubDate>
      <dc:creator><![CDATA[Sivchenko_translate]]></dc:creator>
      
      <category>Компиляторы</category><category>IR</category><category>программирование</category><category>исследования</category><category>оптимизация</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Scala Digest. Выпуск 40]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/tbank/articles/1030510/</guid>
      <link>https://habr.com/ru/companies/tbank/articles/1030510/?utm_campaign=1030510&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/875/956/8b2/8759568b289d2282acab841ea1afe0e2.jpg" /><p>Привет, Хабр! Мир! Труд! Май! Мы — <a href="https://habr.com/ru/users/Melkaya_150cm/">Настя</a>, <a href="https://habr.com/ru/users/EvieLynn/">Эвелина</a> и <a href="https://habr.com/ru/users/haskiindahouse/">Михаил</a> — бэкенд-разработчики Т-Банка, пишем код на Scala и горим желанием его популяризировать. Поздравляем всех с майскими праздниками! Желаем всем хорошенько отдохнуть и, конечно, найти время и инвестировать его в нашу любимую Scala.&nbsp;</p><p>Приветствуем любую обратную связь! (づ ◕‿◕ )づ</p> <a href="https://habr.com/ru/articles/1030510/?utm_campaign=1030510&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать сороковой выпуск</a>]]></description>
      
      <pubDate>Fri, 01 May 2026 16:49:32 GMT</pubDate>
      <dc:creator><![CDATA[EvieLynn (Т-Банк)]]></dc:creator>
      
      <category><![CDATA[scala]]></category><category><![CDATA[digest]]></category><category><![CDATA[tbank]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Карпатый объяснил, почему ваши навыки программирования скоро станут ненужными. Или нет]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030500/</guid>
      <link>https://habr.com/ru/articles/1030500/?utm_campaign=1030500&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/375/900/7f1/3759007f194b927c55b78d7c0c188c41.jpg" /><p>Андрей Карпатый дал 30-минутное интервью Sequoia Capital. 357K просмотров за два дня. Главный тезис: в декабре 2025 что-то щёлкнуло. Агентные инструменты перестали ошибаться. Не стали идеальными, а перешли порог, после которого перестаёшь помнить, когда последний раз исправлял код руками.</p><p>Software 3.0: промпт вместо кода. Модель сама разбирается с окружением, дебажит, адаптируется. Его собственное приложение MenuGen стало “лишним” после одной строки промпта в Gemini.</p><p>Мой вольный пересказ с комментариями из практики: почему vibe coding и agentic engineering это разные вещи, что такое “рваный интеллект”, и почему вкус важнее знания API.</p> <a href="https://habr.com/ru/articles/1030500/?utm_campaign=1030500&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 01 May 2026 15:54:56 GMT</pubDate>
      <dc:creator><![CDATA[StudyQA]]></dc:creator>
      
      <category><![CDATA[Andrej Karpathy]]></category><category><![CDATA[vibe coding]]></category><category><![CDATA[agentic engineering]]></category><category><![CDATA[Software 3.0]]></category><category><![CDATA[Claude Code]]></category><category><![CDATA[AI-агенты]]></category><category><![CDATA[Sequoia]]></category><category><![CDATA[LLM]]></category><category><![CDATA[разработка с ИИ]]></category>
    </item>
  

  

  

	
  

  

  

      

      

      

    
  </channel>
</rss>
