<?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/posts/</link>
    <description><![CDATA[Программирование – искусство создания компьютерных программ]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Fri, 24 Apr 2026 22:22:28 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[Пост @NikitaPanevin — Блог компании PVS-Studio (+3) — 24.04.2026 14:52]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/pvs-studio/posts/1027530/</guid>
    <link>https://habr.com/ru/companies/pvs-studio/posts/1027530/?utm_campaign=1027530&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>ИИ что? Проверяем Semantic Kernel</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/ff3/597/b8e/ff3597b8e3a002df50bedb168a1711a4.png" width="975" height="550"></figure><p>Проекты, связанные с интеграцией искусственного интеллекта, всё чаще становятся частью повседневной разработки. Один из таких проектов — <a href="https://github.com/microsoft/semantic-kernel" rel="noopener noreferrer nofollow">Semantic Kernel</a>. Он представляет собой SDK для построения AI-агентов и оркестрации LLM-сценариев и активно развивается компанией Microsoft.</p><p>Однако под капотом даже самых современных решений скрывается вполне обычный C# код со всеми присущими ему проблемами. Поэтому мы проверили проект и написали статью о самых интересных <a href="https://pvs-studio.ru/ru/blog/posts/csharp/1367/?utm_source=website&amp;utm_medium=habr&amp;utm_campaign=readmore&amp;utm_content=article" rel="noopener noreferrer nofollow">ошибках в коде Semantic Kernel</a>.</p> <a href="https://habr.com/ru/posts/1027530/?utm_campaign=1027530&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 24 Apr 2026 11:52:54 GMT</pubDate>
    <dc:creator><![CDATA[NikitaPanevin (PVS-Studio)]]></dc:creator>
      
      <category><![CDATA[c#]]></category><category><![CDATA[.net]]></category><category><![CDATA[open source]]></category><category><![CDATA[программирование]]></category><category><![CDATA[статический анализ]]></category><category><![CDATA[semantic kernel]]></category><category><![CDATA[pvs-studio]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @quasilyte — Go (+2) — 24.04.2026 12:50]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1027466/</guid>
    <link>https://habr.com/ru/posts/1027466/?utm_campaign=1027466&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Сделал необычную RTS на Ludum Dare 59 за пару дней</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/32a/6c1/0cd/32a6c10cd6d5cae2e90a66da2d2c0cbe.gif" alt="Выглядит примерно так" title="Выглядит примерно так" width="800" height="450"><div><figcaption>Выглядит примерно так</figcaption></div></figure><p>Игра написана на Go (Ebitengine), <a href="https://github.com/quasilyte/ld59-game" rel="noopener noreferrer nofollow">исходники на есть гитхабе</a>.</p><p><a href="https://quasilyte.itch.io/out-of-signal" rel="noopener noreferrer nofollow">Поиграть можно в браузере</a>, ведь Ebitengine имеет неплохой экспорт в wasm. Она мало весит, быстро работает, и экспорт не требовал лишних усилий - это вам не шуточный игровой движок.</p><p>Я накидал небольшой шаблон для игр на стеке своих геймдев-библиотек. Его можно посмотреть тут: <a href="https://github.com/quasilyte/gscene-game-template" rel="noopener noreferrer nofollow">https://github.com/quasilyte/gscene-game-template</a>.</p><p>С этим шаблоном старт начала работы над игровой логикой и "мясом" игры становится ближе. Это позволяет +/- выйти на удобство какого-нибудь Godot, где не нужно первые несколько часов настраивать как у нас обрабатывается input, звук и сцены. Я этот шаблон буду дорабатывать по мере участия в джемах, за каждую мини-игру у меня копится TODO на то, что еще там можно было бы улучшить.</p><p>Если тема разработки игр на Go вам интересна, заходите в наше <a href="https://t.me/go_gamedev" rel="noopener noreferrer nofollow">русскоязычное сообщество в телеграме</a>. Мы там обсуждаем всякие библиотеки для геймдева, свои игры, и всё такое.</p><p>Кстати, ребята из чатика тоже сделали свои игры на Ebitengine, вот они:</p><ul><li><p><a href="https://dqso.itch.io/hired-or-homeless" rel="noopener noreferrer nofollow">https://dqso.itch.io/hired-or-homeless</a></p></li><li><p><a href="https://metalim.itch.io/zero-day-lunch" rel="noopener noreferrer nofollow">https://metalim.itch.io/zero-day-lunch</a></p></li></ul> <a href="https://habr.com/ru/posts/1027466/?utm_campaign=1027466&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 24 Apr 2026 09:50:55 GMT</pubDate>
    <dc:creator><![CDATA[quasilyte]]></dc:creator>
      
      <category><![CDATA[golang]]></category><category><![CDATA[go]]></category><category><![CDATA[ld59]]></category><category><![CDATA[ldjam59]]></category><category><![CDATA[ludum-dare59]]></category><category><![CDATA[ludum-dare-59]]></category><category><![CDATA[gamedev]]></category><category><![CDATA[indiedev]]></category><category><![CDATA[ebiten]]></category><category><![CDATA[ebitengine]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @apdorodin — Data Engineering (+3) — 23.04.2026 15:56]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1027082/</guid>
    <link>https://habr.com/ru/posts/1027082/?utm_campaign=1027082&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>MCP - это было очень модно (где-то год назад). Но многие до сих пор не поняли простую вещь: агент с доступом к командной строке может пользоваться любыми CLI-интерфейсами ничуть не хуже.</p><p>При этом у классических CLI есть очевидные преимущества:</p><p>- Их банально легче разрабатывать</p><p>- Они прозрачнее и понятнее в работе</p><p>- Применяться они могут не только агентами, но и людьми</p><p>- Их уже существует огромное множество под любые задачи</p><p>В Google это тоже осознали и выкатили [свой инструмент](<a href="https://github.com/googleworkspace/cli" rel="noopener noreferrer nofollow">https://github.com/googleworkspace/cli</a>). Сделан он явно для агентов (его выпустили только в этом месяце), но это именно CLI, а не очередной MCP-сервер.</p><p>Точных фактов по этой теме пока нет. Кто-то говорит, что [в простых задачах MCP требует больше контекста, а в сложных — меньше, чем CLI, если инструменты грамотно обернуты и хорошо обнаруживаются агентом](<a href="https://portofcontext.com/blog/cli-vs-mcp-vs-code-mode" rel="noopener noreferrer nofollow">https://portofcontext.com/blog/cli-vs-mcp-vs-code-mode</a>). Кто-то, что этой разницей можно пренебречь, да и вызвана она тем, что не все CLI адаптированы под экономию контекста. Но все согласны, что CLI может дать агенту доступ ко всем тем же инструментам и обеспечить одинаковый процент успеха при выполнении задач, при этом будучи куда понятнее для человека и значительно проще в написании и поддержке.</p><p>В моих проектах я буду использовать CLI.</p> <a href="https://habr.com/ru/posts/1027082/?utm_campaign=1027082&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 23 Apr 2026 12:56:35 GMT</pubDate>
    <dc:creator><![CDATA[apdorodin]]></dc:creator>
      
      <category><![CDATA[ai]]></category><category><![CDATA[mcp]]></category><category><![CDATA[mcp-server]]></category><category><![CDATA[cli]]></category><category><![CDATA[llm]]></category><category><![CDATA[agent]]></category><category><![CDATA[ai agent]]></category><category><![CDATA[agentic ai]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @MaxRokatansky — Блог компании OTUS (+3) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/otus/posts/1026512/</guid>
    <link>https://habr.com/ru/companies/otus/posts/1026512/?utm_campaign=1026512&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Бэкенд «тормозит», API ломаются, а архитектура трещит: уроки, которые помогают закрыть эти проблемы</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/2ea/ed7/fef/2eaed7feff9e3d33752b4f2fccfbe325.png" width="1800" height="980"></figure><p>У бэкенд-разработки есть неприятная особенность: большинство сложностей проявляется не в момент, когда пишется первый сервис, а позже — когда API начинает обрастать интеграциями, фоновые задачи конкурируют за ресурсы, поиск и хранилище требуют разных подходов к данным, а архитектурные решения внезапно начинают влиять на скорость разработки не меньше, чем качество кода.</p><p>В этой подборке — бесплатные демо-уроки от преподавателей-практиков про те части бэкенда, которые обычно и забирают больше всего времени в реальной работе. Это хороший способ посмотреть на чужой инженерный подход, познакомиться с экспертом, задать вопросы по своей ситуации и заодно закрыть конкретные пробелы: в API, тестировании, нагрузке, инфраструктуре, работе с данными и проектировании систем.</p><ul><li><p>22 апреля 20:00. <a href="https://otus.pw/9fKu/" rel="noopener noreferrer nofollow">Bun + ИИ: создаём быстрый сервер нового поколения на JavaScript</a></p></li><li><p>22 апреля 20:00. <a href="https://otus.pw/dVlO/" rel="noopener noreferrer nofollow">Symfony Workflow: конечный автомат для реализации бизнес-логики</a></p></li><li><p>23 апреля 20:00. <a href="https://otus.pw/dVlO/" rel="noopener noreferrer nofollow">Многопоточность в C++: как писать быстрые и безопасные приложения</a></p></li><li><p>23 апреля 20:00. <a href="https://otus.pw/iB16/" rel="noopener noreferrer nofollow">Паттерны RESTful API. Как проектировать удобные, масштабируемые и гибкие API?</a></p></li><li><p>28 апреля 20:00. <a href="https://otus.pw/6Axs/" rel="noopener noreferrer nofollow">Фоновые задачи в Django: работа с Celery</a></p></li><li><p>30 апреля 20:00. <a href="https://otus.pw/y3gJ/" rel="noopener noreferrer nofollow">Поиск в базе знаний: где векторы ошибаются, а графы помогают</a></p></li><li><p>4 мая 20:00. <a href="https://otus.pw/PTT1/" rel="noopener noreferrer nofollow">Интерфейсы в Golang изнутри</a></p></li><li><p>5 мая 20:00. <a href="https://otus.pw/dVsE/" rel="noopener noreferrer nofollow">Postgres + JSON: реляционная мощь, документная гибкость</a></p></li><li><p>5 мая 20:00. <a href="https://otus.pw/vD8N/" rel="noopener noreferrer nofollow">Архитектурные решения в бэкенд-разработке</a></p></li><li><p>6 мая 19:00. <a href="https://otus.pw/DM8s/" rel="noopener noreferrer nofollow">Разработка проекта на Kotlin: коллаборация человека, архитектурных шаблонов и ИИ-команды</a></p></li><li><p>6 мая 20:00. <a href="https://otus.pw/k1C9H/" rel="noopener noreferrer nofollow">Rust в деле: пишем многопользовательский чат с сервером, клиентом и CLI</a></p></li><li><p>7 мая 20:00. <a href="https://otus.pw/X0cA/" rel="noopener noreferrer nofollow">От кода до Kubernetes за полтора часа</a></p></li><li><p>7 мая 20:00. <a href="https://otus.pw/tAZL/" rel="noopener noreferrer nofollow">Тестирование микросервисов на Go: почему ваш сервис ломается под 1000 RPS</a></p></li><li><p>13 мая 20:00. <a href="https://otus.pw/qMPdU/" rel="noopener noreferrer nofollow">Kafka Streams DSL</a></p></li><li><p>13 мая 20:00. <a href="https://otus.pw/BUqE/" rel="noopener noreferrer nofollow">ClickHouse для аналитики больших данных: практические кейсы и связь с NoSQL-экосистемой</a></p></li><li><p>14 мая 20:00. <a href="https://otus.pw/cUMl/" rel="noopener noreferrer nofollow">Взаимодействие с базой данных и миграции на Go</a></p></li></ul><blockquote><p><em>Полный список бесплатных уроков от преподавателей курсов по программированию, инфраструктуре и не только уже доступен </em><a href="https://otus.pw/goUn/" rel="noopener noreferrer nofollow"><em>в календаре мероприятий.</em></a></p></blockquote> <a href="https://habr.com/ru/posts/1026512/?utm_campaign=1026512&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 22 Apr 2026 10:13:03 GMT</pubDate>
    <dc:creator><![CDATA[MaxRokatansky (OTUS)]]></dc:creator>
      
      <category><![CDATA[бэкенд-разработка]]></category><category><![CDATA[микросервисы]]></category><category><![CDATA[архитектурные решения]]></category><category><![CDATA[Postgres]]></category><category><![CDATA[подборка вебинаров]]></category><category><![CDATA[бесплатные уроки]]></category><category><![CDATA[онлайн-обучение]]></category><category><![CDATA[карьера в ит]]></category><category><![CDATA[профессиональное развитие]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @TonyAlt — Unity (+4) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1025780/</guid>
    <link>https://habr.com/ru/posts/1025780/?utm_campaign=1025780&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Как разработчикам монетизировать свои игры в 2026?</strong></p><p>Всем привет! Хотели похвастаться очередным сложным, но очень важным шагом на пути к возрождению российского геймдева и заодно спросить мнения окружающих (да, мы всегда сначала делаем, потом думаем).</p><p>Традиционный подход подразумевает, что разработчик заключает договор с площадкой (Steam, VK Play, Itch и т.д.). Игрок покупает игру, и деньги идут на счёт платформы. После этого в определенные даты происходит выплаты на счета разработчиков за вычетом комиссий. Где-то больше, где-то меньше, где-то по-другому. Но смысл тот же. Этот подход позволяет, во-первых, брать комиссии, во-вторых, легче работать с возвратами и в-третьих, быстрее распознавать отмывание денег и мошенничество.</p><p>Мы решили использовать схему маркетплейсов, где каждый разработчик приходит со своим статусом (ООО, ИП, смз). Но приходит он в первую очередь не к нам, а к платёжным агрегаторам типа Юкасса, Робокасса, любая …касса. Одним словом, подключает себе интернет-эквайринг, такое делает любой банк. Банк ему даёт API для подключения, ID магазина, ключи для проведения оплат и всё, действуй.</p><p>Где здесь мы? Мы предоставляем бесплатный хостинг для игр. Сама площадка + страница игры + страница разработчика. Всё тоже самое что у itch[.]io. Заодно есть консоль разработчика, в которую добавляется всё больше и больше возможностей. Соответственно, в этой консоли разработчик указывает тот самый идентификатор магазина, суперсекретный ключ и дальше надеется на магию.</p><p>Если магия происходит, то наш скрипт подставляет его данные в другой скрипт, только уже от платёжного агрегатора. Игрок видит кнопку обычную кнопку оплаты и оплачивает, после чего денюжки магическим образом летят на счёт разработчика. На этом магия заканчивается, начинается то ли математика, то ли бухгалтерия (я в этом не силён, не шарю).</p><p>Опережу (почти) все вопросы и сразу отвечу:</p><p>Q: На что вы будете существовать если у вас комиссии 0%?</p><p>A: При покупке игры рядом есть еще кнопочка “поддержать платформу”, надеемся, что это сработает</p><p>Q: Вы делаете очередного убийцу стима?</p><p>A: Нет</p><p>Q: Это точно не развод?</p><p>A: Точно нет, чесслово</p><p>На остальные вопросы обязательно ответим. Так как это не реклама, то прямо указывать название площадки не буду, но подскажу, что наш канал <a href="https://t.me/dustore_official" rel="noopener noreferrer nofollow">https://t.me/dustore_official</a></p> <a href="https://habr.com/ru/posts/1025780/?utm_campaign=1025780&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 20 Apr 2026 18:05:32 GMT</pubDate>
    <dc:creator><![CDATA[TonyAlt]]></dc:creator>
      
      <category><![CDATA[публикация игр]]></category><category><![CDATA[разработка игр]]></category><category><![CDATA[монетизация игр]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @JordanCpp — C (+4) — 20.04.2026 14:17]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1025592/</guid>
    <link>https://habr.com/ru/posts/1025592/?utm_campaign=1025592&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Переосмысление библиотеки <a href="https://github.com/JordanCpp/LDL" rel="noopener noreferrer nofollow">LDL</a>.</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/8eb/316/594/8eb3165940792d960cabf23cb81bb10c.jpg" width="802" height="632"></figure><p>Я полностью пересмотрел концепцию библиотеки LDL.</p><p><strong>Что такое LDL?</strong><br>Это графическая библиотека с единым API для всех систем как старых, так и новых.</p><p>Раньше я писал её на C++98, что давало хорошую портабельность. Но сейчас я пересмотрел многие тезисы, которые декларировал на GitHub, чтобы наконец добраться до первого релиза.</p><p>Новая стратегия</p><p>Я решил выпускать релизы&nbsp;<strong>без реализации полного функционала</strong>&nbsp;(графика, звук, шрифты и т.д.) постепенно, итеративно.</p><ul><li><p>Перешёл на&nbsp;<strong>C89</strong>&nbsp;для максимальной переносимости. Это не только DOS или Windows 3.x, но и старые системы вроде Solaris, PlayStation 1 и другие.</p></li><li><p>Для&nbsp;<strong>первого релиза</strong>&nbsp;реализую минимальный базовый функционал: графику (OpenGL, Vulkan), окна и события. По возможностям аналог GLFW.</p></li><li><p>С каждым следующим релизом буду добавлять: 2D-рендер, звук, шрифты и прочее.</p></li></ul><p>Лицензия и целевые платформы</p><ul><li><p>Лицензия меняется на&nbsp;<strong>LGPLv3</strong>.</p></li><li><p>На старте поддерживаются&nbsp;<strong>Windows и Linux</strong>.</p></li></ul><p>Качество и инструменты</p><p>При разработке использую:</p><ul><li><p>AddressSanitizer (ASan)</p></li><li><p>UndefinedBehaviorSanitizer (UBSan)</p></li><li><p>Различные анализаторы кода</p></li></ul><p>Я считаю, что такая стратегия полезнее, чем годами доводить библиотеку до версии 1.0 в офлайн-режиме.</p><p><strong>Примеры и бэкенды</strong></p><ul><li><p>Добавлю&nbsp;<strong>десятки примеров</strong>&nbsp;с OpenGL 1.x, OpenGL 3.x и Vulkan.</p></li><li><p>Буду добавлять&nbsp;<strong>бэкенды для LDL</strong>: не только под ОС, но и поверх других графических библиотек — SDL, SFML, GLFW и т.д.</p></li><li><p><strong>API остаётся единым</strong>&nbsp;для всех бэкендов.</p></li></ul><p>Это позволит сразу добавить поддержку звука и шрифтов (через бэкенды), а в нативных версиях реализовывать их позже.</p><p>&nbsp;<strong>2D-рендер без границ</strong></p><p>Одной из главных задач LDL я вижу создание&nbsp;<strong>единого 2D-интерфейса</strong>, который стирает различия между поколениями графики.</p><p>Вам не нужно думать о том, что находится в системе: современная видеокарта с&nbsp;<strong>Vulkan</strong>, старый ускоритель с&nbsp;<strong>OpenGL 1.2</strong>&nbsp;или вообще только центральный процессор (<strong>Software Rendering</strong>).</p><ul><li><p><strong>Единый интерфейс</strong>: Вы используете одни и те же команды для рисования пикселей, линий и спрайтов.</p></li><li><p><strong>Адаптивность</strong>: LDL сам выберет наиболее эффективный способ вывода изображения. На современной системе это будет аппаратное ускорение, а на «железе» без видеокарты оптимизированный программный растеризатор.</p></li><li><p><strong>Визуальная честность</strong>: Ваш визуальный стиль останется неизменным, на чем бы он ни запускался. Это дает возможность делать игры и приложения, которые выглядят и работают одинаково и на ретро-ноутбуке, и на современном мониторе.</p></li></ul><p><strong>Философия: Машина времени в вашем коде</strong></p><p>Зачем тратить силы на поддержку систем, которые многие считают «трупами»?</p><p><strong>1. Борьба с цифровым забвением</strong></p><p>Современный софт живет 3–5 лет. Мы выбрасываем железо не потому, что оно сломалось, а потому, что софт стал слишком тяжелым и ленивым. LDL — это протест против «запланированного устаревания». Я хочу, чтобы код, написанный сегодня, мог дышать в железе любой эпохи.</p><p><strong>2. Инженерный аскетизм</strong></p><p>Когда у тебя гигабайты памяти, ты перестаешь ценить каждый байт. Написание библиотеки под C89 для слабого железа — это духовная практика для программиста. Это возвращение к искусству находить изящные решения в условиях жестких ограничений. Каждый сэкономленный такт процессора — это дань уважения инженерам прошлого.</p><p><strong>3. Преемственность поколений</strong></p><p>Мы стоим на плечах гигантов, но часто забываем их имена. LDL сохраняет возможность для диалога между эпохами. Это инструмент, который позволяет современному разработчику почувствовать «металл» старых машин, не теряя связи с современными технологиями вроде Vulkan.</p><p><strong>Итог</strong></p><p>LDL — это&nbsp;<strong>Little Directmedia Layer</strong>. Он маленький не потому, что слабый, а потому, что в нем нет ничего лишнего. Это попытка создать код, который будет принадлежать не конкретной версии ОС, а истории программирования в целом.</p><p>Один API. Один код. Тридцать лет компьютерной истории.</p> <a href="https://habr.com/ru/posts/1025592/?utm_campaign=1025592&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 20 Apr 2026 11:17:08 GMT</pubDate>
    <dc:creator><![CDATA[JordanCpp]]></dc:creator>
      
      <category><![CDATA[c89]]></category><category><![CDATA[c++]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @MaxRokatansky — Блог компании OTUS (+2) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/otus/posts/1024194/</guid>
    <link>https://habr.com/ru/companies/otus/posts/1024194/?utm_campaign=1024194&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>30 беплатных уроков недели: AI, Spark 4.0, C++, REST API, Angular и Linux</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/5b6/238/04f/5b623804fc6b24611d08a63f32832978.png" width="1800" height="980"></figure><p>Привет, Хабр. Собрали подборку ближайших бесплатных уроков, которые проведут  преподаватели курсов Отус в преддверии старта новых курсов. На них можно узнать о формате обучения, пообщаться с экспертами и заодно закрыть пробелы в знаниях по интересующей теме. Выбирайте свою тему и присоединяйтесь.</p><p><strong>20 апреля, понедельник:</strong></p><ul><li><p>20:00. <a href="https://otus.pw/gaBU/" rel="noopener noreferrer nofollow">Unit-тесты для iOS приложений, работаем над качеством изнутри </a></p></li><li><p>20:00. <a href="https://otus.pw/3Pr0/" rel="noopener noreferrer nofollow">Качество данных (data quality) на практике: от технических метрик до внедрения в команде </a></p></li><li><p>20:00. <a href="https://otus.pw/hv7T/" rel="noopener noreferrer nofollow">От интерфейса до корзины: создаём мини интернет-магазин на языке JavaScript</a> </p></li><li><p>20:00. <a href="https://otus.pw/MIgq/" rel="noopener noreferrer nofollow">Эффекты в Scala</a> </p></li><li><p>20:00. <a href="https://otus.pw/s8kB/" rel="noopener noreferrer nofollow">Балансировка и геораспределение: как создать быстрое и надёжное приложение для всего мира </a></p></li><li><p>20:00. <a href="https://otus.pw/nEMO8/" rel="noopener noreferrer nofollow">Менеджер в перегрузе: как выжить и не выгореть</a> </p></li></ul><p><strong>21 апреля, вторник:</strong></p><ul><li><p>19:00. <a href="https://otus.pw/OCow/" rel="noopener noreferrer nofollow">BPMN для 1С: Как правильно моделировать интеграции? (Разбираем 4 уровня детализации) </a></p></li><li><p>19:00. <a href="https://otus.pw/qlpJ/" rel="noopener noreferrer nofollow">Значение корпоративной архитектуры для реализации стратегии цифровой трансформации </a></p></li><li><p>20:00. <a href="https://otus.pw/h61O/" rel="noopener noreferrer nofollow">Функции в SQL: вычисления и переиспользование кода</a> </p></li><li><p>20:00. <a href="https://otus.pw/uUBE/" rel="noopener noreferrer nofollow">Оптимизация запросов 1С </a></p></li><li><p>20:00. <a href="https://otus.pw/9kPk/" rel="noopener noreferrer nofollow">Архитектура мониторинга ИБ инфраструктуры на SIEM</a> </p></li><li><p>20:00. <a href="https://otus.pw/bXuxO/" rel="noopener noreferrer nofollow">Производительность кода на примере алгоритмов сортировки </a></p></li><li><p>20:00. <a href="https://otus.pw/1l64/" rel="noopener noreferrer nofollow">Как BPMN помогает видеть узкие места </a></p></li><li><p>20:00. <a href="https://otus.pw/j8HG/" rel="noopener noreferrer nofollow">Архитектура Angular-приложения: как писать масштабируемый frontend</a> </p></li><li><p>20:00. <a href="https://otus.pw/AanU/" rel="noopener noreferrer nofollow">Связанные списки в ядре Linux: от API до реального кода </a></p></li><li><p>20:00. <a href="https://otus.pw/yqPd2/" rel="noopener noreferrer nofollow">Использование BGP для маршрутизации IPv6 </a></p></li></ul><p><strong>22 апреля, среда:</strong></p><ul><li><p>19:00. <a href="https://otus.pw/7rQJ/" rel="noopener noreferrer nofollow">Основы балансировки нагрузки в Angie и Nginx </a></p></li><li><p>20:00. <a href="https://otus.pw/HkPQ/" rel="noopener noreferrer nofollow">Бизнес-процессы CRM. Стандартные активити CRM</a> </p></li><li><p>20:00. <a href="https://otus.pw/Jo8W/" rel="noopener noreferrer nofollow">Bun + ИИ: создаём быстрый сервер нового поколения на JavaScript (Bun — современная среда выполнения JavaScript; ИИ — искусственный интеллект)</a> </p></li><li><p>20:00. <a href="https://otus.pw/B9gR/" rel="noopener noreferrer nofollow">Symfony Workflow: конечный автомат для реализации бизнес-логики </a></p></li><li><p>20:00. <a href="https://otus.pw/Mw5R/" rel="noopener noreferrer nofollow">Делегирование без боли: как перестать быть “главным исполнителем” и не скатиться в микроменеджмент</a> </p></li><li><p>20:00. <a href="https://otus.pw/LW3j/" rel="noopener noreferrer nofollow">Программируемые реле в АСУ ТП: гибкий инструмент для решения инженерных задач </a></p></li><li><p>20:00. <a href="https://otus.pw/e38t/" rel="noopener noreferrer nofollow">Создание нейро-сотрудника на базе Telegram-бота и GPT: от регистрации до рабочего прототипа </a></p></li></ul><p><strong>23 апреля, четверг:</strong></p><ul><li><p>18:00. <a href="https://otus.pw/GCa7/" rel="noopener noreferrer nofollow">Cоздаём ИИ-ассистента для системного аналитика за 1 час </a></p></li><li><p>19:00. <a href="https://otus.pw/QPSU/" rel="noopener noreferrer nofollow">Интегрируем EDT в процессы непрерывной интеграции. Подключаем 1С к CI/CD </a></p></li><li><p>20:00. <a href="https://otus.pw/WVqO/" rel="noopener noreferrer nofollow">Что нового в Spark 4.0 </a></p></li><li><p>20:00. <a href="https://otus.pw/YB6V2/" rel="noopener noreferrer nofollow">Многопоточность в C++: как писать быстрые и безопасные приложения </a></p></li><li><p>20:00. <a href="https://otus.pw/wKgpV/" rel="noopener noreferrer nofollow">Паттерны RESTful API. Как проектировать удобные, масштабируемые и гибкие API? </a></p></li></ul><p><strong>27 апреля, понедельник:</strong></p><ul><li><p>20:00. <a href="https://otus.pw/aC49/" rel="noopener noreferrer nofollow">Рисуем в формате онлайн модель процесса BPMN в Camunda Modeler </a></p></li><li><p>20:00. <a href="https://otus.pw/ZSzk/" rel="noopener noreferrer nofollow">Настройка кластера Elasticsearch</a></p></li></ul><blockquote><p><em>Еще больше бесплатных уроков от преподавателей курсов можно посмотреть </em><a href="https://otus.pw/BpC0T/" rel="noopener noreferrer nofollow"><em>в календаре мероприятий.</em></a></p></blockquote> <a href="https://habr.com/ru/posts/1024194/?utm_campaign=1024194&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 20 Apr 2026 07:28:15 GMT</pubDate>
    <dc:creator><![CDATA[MaxRokatansky (OTUS)]]></dc:creator>
      
      <category><![CDATA[карьера в ит]]></category><category><![CDATA[подборка вебинаров]]></category><category><![CDATA[бесплатные уроки]]></category><category><![CDATA[профессиональное развитие]]></category><category><![CDATA[повышение грейда]]></category><category><![CDATA[lifelong education]]></category><category><![CDATA[обучение в ит]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @Assador — Текстовые редакторы и IDE (+4) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1024892/</guid>
    <link>https://habr.com/ru/posts/1024892/?utm_campaign=1024892&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Пока везут в&nbsp;Zed нативный diff выделенных кусков кода, с&nbsp;подсветкой, преферансом и&nbsp;барышнями, мы будем пить то, что&nbsp;есть&nbsp;😁</p><p>Скрипт намбер&nbsp;ван:</p><pre><code class="bash">#!/bin/bash

FILE1="/tmp/clp.saved"

# xclip -o -selection primary &gt; "$FILE1"
wl-paste --primary &gt; "$FILE1"
notify-send "Diff" "Первый фрагмент сохранён"</code></pre><p>вешаем на&nbsp;одно сочетание клавиш (у&nbsp;меня, например, для&nbsp;удобства, <code>Alt+Shift+1</code>)<br> (выбираем на&nbsp;вкус для X11 или Wayland)</p><p>Скрипт намбер&nbsp;ту:</p><pre><code class="bash">#!/bin/bash

FILE1="/tmp/clp.saved"
FILE2=$(mktemp /tmp/clp.XXXXXX)

trap 'rm -f "$FILE2"' EXIT

# xclip -o -selection primary &gt; "$FILE2"
wl-paste --primary &gt; "$FILE2"

if [ ! -s "$FILE1" ] || [ ! -s "$FILE2" ]; then
	notify-send "Ошибка" "Нет текста для сравнения"
	exit 1
fi

meld "$FILE1" "$FILE2"</code></pre><p>вешаем на&nbsp;другое сочетание клавиш (у&nbsp;меня, например, <code>Alt+Shift+2</code>)</p><p>Изолента и&nbsp;реактивный двигатель&nbsp;— вот&nbsp;всё, что нам нужно. Лучше, чем&nbsp;ничего, по&nbsp;крайней мере…<br> Первый скрипт сохраняет выделенный текст во&nbsp;временный файл <code>/tmp/clp.saved</code>.<br> Второй скрипт сохраняет выделенный текст в&nbsp;другой временный файл <code>/tmp/clp.XXXXXX</code>, открывает&nbsp;их оба в&nbsp;нашем любимом <strong>Meld</strong>, мы на всё это дело любуемся, сравниваем, закрываем Meld, после чего скрипт удаляет этот второй временный файл со&nbsp;случайным постфиксом, чтобы не&nbsp;болтался зря. Первый, <code>/tmp/clp.saved</code> пока остаётся, чтобы было удобно с&nbsp;одним и&nbsp;тем&nbsp;же «первовыделенным» сравнивать несколько вариантов, и&nbsp;его всегда можно переопределить первым скриптом.</p><p><strong>Итого</strong>: Выделили кусок, <code>Alt+Shift+1</code>, выделили другой кусок, <code>Alt+Shift+2</code>&nbsp;— смотрим, радуемся!&nbsp;😁</p> <a href="https://habr.com/ru/posts/1024892/?utm_campaign=1024892&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Sat, 18 Apr 2026 08:10:30 GMT</pubDate>
    <dc:creator><![CDATA[Assador]]></dc:creator>
      
      <category><![CDATA[zed]]></category><category><![CDATA[meld]]></category><category><![CDATA[bash]]></category><category><![CDATA[лайфхаки]]></category><category><![CDATA[инструменты]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @AleksandraUvarova — Блог компании PVS-Studio (+3) — 17.04.2026 13:09]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/pvs-studio/posts/1024582/</guid>
    <link>https://habr.com/ru/companies/pvs-studio/posts/1024582/?utm_campaign=1024582&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Как устроен компилятор?</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/52b/498/214/52b498214111ad5f923740beb8580ac5.png" width="1600" height="902"></figure><p>Мы каждый день пишем код, но часто воспринимаем компилятор как "чёрный ящик". Сегодня приоткроем завесу тайны над работой компилятора, расскажем о его жизненном цикле и объясним, на каком этапе в игру вступают деревья. </p><p>Под капотом скрывается целый конвейер, который включает в себя построение дерева, оптимизацию и генерацию кода. Мы разобрали все этапы на конкретных примерах и написали статью для тех, кто хочет понять, <a href="https://pvs-studio.ru/ru/blog/posts/1364/?utm_source=website&amp;utm_medium=habr&amp;utm_campaign=readmore&amp;utm_content=article" rel="noopener noreferrer nofollow">как работает компилятор</a>.</p> <a href="https://habr.com/ru/posts/1024582/?utm_campaign=1024582&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 17 Apr 2026 10:09:36 GMT</pubDate>
    <dc:creator><![CDATA[AleksandraUvarova (PVS-Studio)]]></dc:creator>
      
      <category><![CDATA[программирование]]></category><category><![CDATA[компиляторы]]></category><category><![CDATA[устройство]]></category><category><![CDATA[c++]]></category><category><![CDATA[c#]]></category><category><![CDATA[java]]></category><category><![CDATA[ast]]></category><category><![CDATA[абстрактное синтаксическое дерево]]></category><category><![CDATA[синтаксический анализ]]></category><category><![CDATA[статистический анализ]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @smirnoff_ai — Блог компании LLMStart.ru (+3) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/llmstart/posts/1023986/</guid>
    <link>https://habr.com/ru/companies/llmstart/posts/1023986/?utm_campaign=1023986&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Дорожная карта Agentic AI. Level 3. Первые артефакты — LLM API и структурированный вывод</strong></p><figure class=""><img src="https://habrastorage.org/webt/a2/b4/42/a2b442edd45e043e3bb591d7398fa2be.png" alt="Дорожная карта Agentic AI — Level 3. Первые артефакты: LLM API и структурированный вывод" title="Level 3. Первые артефакты — LLM API и структурированный вывод"><div><figcaption>Level 3. Первые артефакты — LLM API и структурированный вывод</figcaption></div></figure><p>Продолжаем идти по дорожной карте. Пришло время научиться обращаться к моделям через API.</p><p>— А куда обращаться? — спросите вы.</p><p>Есть несколько вариантов.</p><ol><li><p>Первый — на серверы производителей: старым добрым ChatGPT, DeepSeek, Gemini, Qwen.</p></li><li><p>Второй — к хабам опенсорс-моделей, например <a href="https://huggingface.co/docs/huggingface_hub/v1.3.1/en/guides/inference" rel="noopener noreferrer nofollow">HuggingFace</a>.</p></li><li><p>Третий — к провайдерам-агрегаторам, которые предоставляют и то и другое: <a href="https://openrouter.ai/" rel="noopener noreferrer nofollow">Openrouter</a>, <a href="https://www.together.ai/" rel="noopener noreferrer nofollow">Together</a>, <a href="https://fireworks.ai/" rel="noopener noreferrer nofollow">Fireworks</a>.</p></li></ol><p>К сожалению, форматы API у всех отличаются и обладают своей спецификой. А нам это неудобно, так как мы точно захотим экспериментировать с разными моделями и сервисами.</p><p>Но, к счастью, OpenAI был впереди планеты всей, и его <a href="https://platform.openai.com/docs/quickstart" rel="noopener noreferrer nofollow">формат</a> стал стандартом де-факто.</p><p>Поэтому начните с <a href="https://platform.openai.com/docs/libraries?language=python" rel="noopener noreferrer nofollow">интерфейса OpenAI</a>, возьмите провайдер <a href="https://openrouter.ai/docs/quickstart#using-the-openai-sdk" rel="noopener noreferrer nofollow">Openrouter</a>. Изучите спецификацию, форматы сообщений, поэкспериментируйте с системным промптом, параметрами генерации, <a href="https://platform.openai.com/docs/guides/streaming-responses" rel="noopener noreferrer nofollow">потоковым выводом</a>. Изучите мета-информацию в ответе — количество токенов, время генерации.</p><p>Обязательно разберитесь со <strong>структурированным выводом</strong>: это когда модель возвращает не просто текст, а JSON строго по вашей схеме. В агентных пайплайнах без этого никуда — именно так агенты передают данные друг другу и вызывают инструменты.</p><p>Сгенерируйте своего первого ИИ-ассистента, благо кодовые агенты отлично умеют генерировать код для OpenAI-библиотек. Изучайте основы, не гонитесь сразу за фреймворками верхнего уровня — с ними познакомимся позже.</p><p>📚 <strong>Материалы</strong></p><ul><li><p><a href="https://youtu.be/Sd8FXPzMIuo" rel="noopener noreferrer nofollow">Наш видео-туториал по OpenAI API</a></p></li><li><p><a href="https://platform.openai.com/docs/quickstart" rel="noopener noreferrer nofollow">OpenAI Quickstart</a> · <a href="https://github.com/openai/openai-python" rel="noopener noreferrer nofollow">Python SDK</a> · <a href="https://platform.openai.com/docs/guides/streaming-responses" rel="noopener noreferrer nofollow">Streaming</a></p></li><li><p><a href="https://huggingface.co/docs/huggingface_hub/v1.3.1/en/guides/inference" rel="noopener noreferrer nofollow">HuggingFace Inference API</a></p></li><li><p><a href="https://openrouter.ai/docs/quickstart" rel="noopener noreferrer nofollow">Openrouter Quickstart</a> · <a href="https://www.together.ai/" rel="noopener noreferrer nofollow">Together AI</a> · <a href="https://fireworks.ai/" rel="noopener noreferrer nofollow">Fireworks AI</a></p></li></ul><p>🔔 Следующая тема: мультимодальность — голос, изображения, видео.</p><p>⬅️ Предыдущая тема: <a href="https://habr.com/ru/posts/1021516/" rel="noopener noreferrer nofollow">Level 2. AI-driven разработка</a></p><p>Подписывайтесь, пожалуйста, чтобы не пропустить!</p><p>Наши <a href="https://llmstart.ru/?utm_source=habr&amp;utm_medium=post&amp;utm_campaign=agentic-roadmap#programs-section" rel="noopener noreferrer nofollow">курсы</a> по ИИ-агентам. По вопросам — пишите <a href="https://t.me/smirnoff_ai" rel="noopener noreferrer nofollow">мне</a>.</p> <a href="https://habr.com/ru/posts/1023986/?utm_campaign=1023986&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 17 Apr 2026 05:31:20 GMT</pubDate>
    <dc:creator><![CDATA[smirnoff_ai (LLMStart.ru)]]></dc:creator>
      
      <category><![CDATA[ai]]></category><category><![CDATA[llm]]></category><category><![CDATA[json]]></category><category><![CDATA[structured output]]></category><category><![CDATA[openai]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @MaxRokatansky — Блог компании OTUS (+1) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/otus/posts/1021906/</guid>
    <link>https://habr.com/ru/companies/otus/posts/1021906/?utm_campaign=1021906&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>13 демо-уроков апреля для разработчиков: от REST API и SQL до Bun, C++ и микросервисов</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/996/700/81e/99670081e88d0dd765d56d6e0ed1a60d.png" width="1800" height="980"></figure><p>Привет, Хабр. Эти уроки проведут преподаватели курсов Отус в преддверии старта новых потоков. На них можно узнать о формате обучения, пообщаться с экспертами и заодно закрыть пробелы в знаниях по интересующей теме. Участие бесплатное. Присоединяйтесь!</p><p><strong>15 апреля, среда:</strong></p><ul><li><p> 18:00 — <a href="https://otus.pw/clNy/" rel="noopener noreferrer nofollow">Основы протокола HTTP </a></p></li><li><p> 20:00 — <a href="https://otus.pw/tOWf/" rel="noopener noreferrer nofollow">OpenAPI + Spring </a></p></li><li><p> 20:00 — <a href="https://otus.pw/noy9/" rel="noopener noreferrer nofollow">Локализация текстов в Symfony: от статических переводов к динамическим данным из базы </a></p></li><li><p> 20:00 — <a href="https://otus.pw/lolE/" rel="noopener noreferrer nofollow">Основы проектирования бизнес-логики в микросервисной архитектуре</a> </p></li></ul><p><strong>16 апреля, четверг</strong>:</p><ul><li><p> 20:00 — <a href="https://otus.pw/GnZqj/" rel="noopener noreferrer nofollow">Облегчённые (Slim) примитивы синхронизации </a></p></li><li><p> 20:00 — <a href="https://otus.pw/ZDNV/" rel="noopener noreferrer nofollow">Архитектура ИИ-сервисов для High-Load и Low-Latency инференса </a></p></li></ul><p><strong>21 апреля, вторник:</strong></p><ul><li><p> 20:00 — <a href="https://otus.pw/G1FHF/" rel="noopener noreferrer nofollow">Функции в SQL: вычисления и переиспользование кода </a></p></li><li><p> 20:00 — <a href="https://otus.pw/wrjF/" rel="noopener noreferrer nofollow">Производительность кода на примере алгоритмов сортировки </a></p></li></ul><p><strong>22 апреля, среда:</strong></p><ul><li><p> 20:00 — <a href="https://otus.pw/fc1Vl/" rel="noopener noreferrer nofollow">Bun + ИИ: создаём быстрый сервер нового поколения на JavaScript (Bun — современная среда выполнения JavaScript; ИИ — искусственный интеллект) </a></p></li><li><p> 20:00 — <a href="https://otus.pw/UEor/" rel="noopener noreferrer nofollow">Symfony Workflow: конечный автомат для реализации бизнес-логики </a></p></li></ul><p><strong>23 апреля, четверг:</strong></p><ul><li><p> 20:00 — <a href="https://otus.pw/aMwl/" rel="noopener noreferrer nofollow">Многопоточность в C++: как писать быстрые и безопасные приложения</a> </p></li><li><p> 20:00 — <a href="https://otus.pw/9glk/" rel="noopener noreferrer nofollow">Паттерны RESTful API. Как проектировать удобные, масштабируемые и гибкие API? </a></p></li></ul><p><strong>29 апреля, среда:</strong></p><ul><li><p> 20:00 — <a href="https://otus.ru/lessons/razrabotchik-php?utm_source=habr&amp;utm_medium=affilate&amp;utm_campaign=post_ol_part&amp;utm_content=mql-13-demo-urokov-aprelya-dlya-razrabotchikov-ot-rest-api-i-sql-do-bun-c-plus-plus-i-mikroservisov&amp;utm_term=2026.04.13_backend#event-7098" rel="noopener noreferrer nofollow">PHP-разработчик. Продвинутый уровень</a></p></li></ul> <a href="https://habr.com/ru/posts/1021906/?utm_campaign=1021906&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 14 Apr 2026 08:35:42 GMT</pubDate>
    <dc:creator><![CDATA[MaxRokatansky (OTUS)]]></dc:creator>
      
      <category><![CDATA[подборка вебинаров]]></category><category><![CDATA[бесплатные уроки]]></category><category><![CDATA[бэкенд-разработка]]></category><category><![CDATA[карьера в ит]]></category><category><![CDATA[профессиональное развитие]]></category><category><![CDATA[lifelong education]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @250w — Контент и копирайтинг (+4) — 12.04.2026 08:33]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1022416/</guid>
    <link>https://habr.com/ru/posts/1022416/?utm_campaign=1022416&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Как научиться печатать вслепую за час.</p><p>Предлагаю способ без тренажеров за один час научиться печатать вслепую на клавиатуре. Слепая печать это стиль набора текста при котором печатающий не ищет каждый раз нужные клавиши глазами, а знает их местонахождение наизусть, и задействует при печати все пальцы.</p><p>Способ обучения состоит из трех шагов. </p><p>Первый шаг. За полчаса запоминаем три последовательности букв в верхнем, среднем и нижнем ряду клавиатуры. Для этого можно запомнить три последовательности </p><p>ЙЦУ КЕНГуру ШЩаЗ ХЪ </p><p>ФЫВА ПРО ЛоДЖЭя </p><p>мЯЧ СМИТ ЬБьЮ, </p><p>в которых нужно пропускать строчные буквы.  </p><p>Для запоминания английской раскладки запомните три последовательности </p><p>Q WERTY U I OP! </p><p>AS DFGHiJKL </p><p>ZXCVBNM,. </p><p>Второй шаг. Располагаем кисти так, чтобы указательные пальцы опирались на клавиши с бугорками - А и О. Печатаем на ощупь в течении получаса. Если у вас нет своего текста, можно воспользоваться Гонками на клавиатуре <a href="https://www.google.com/search?q=%D0%B3%D0%BE%D0%BD%D0%BA%D0%B8+%D0%BD%D0%B0+%D0%BA%D0%BB%D0%B0%D0%B2%D0%B8%D0%B0%D1%82%D1%83%D1%80%D0%B5&amp;oq=%D0%B3%D0%BE%D0%BD%D0%BA%D0%B8+%D0%BD%D0%B0+%D0%BA%D0%BB%D0%B0%D0%B2%D0%B8%D0%B0%D1%82%D1%83%D1%80%D0%B5" rel="noopener noreferrer nofollow">https://www.google.com/search?q=гонки+на+клавиатуре</a>. При этом если расположение буквы уже запомнилось, то нажимаем ее правильным пальцем. Если расположение клавиши не запомнилось, то, не глядя на клавиатуру, ощупываем  слева на право клавиши в нужном ряду, пока не найдем искомую букву. Например, для нажатия буквы Т ощупываем мизинцем левой руки букву Я, безымянным - букву Ч, средним - С, указательным левой - М, указательным левой руки - букву И, указательным правой руки - букву Т. </p><p>Третий шаг. В дальнейшем печатаем вслепую, чтобы не забыть навыки. </p><p>По необходимости повторяем предыдущие шаги. </p><p>Метод слепой печати позволит ускорить ввод текста в несколько раз, не думать о расположении клавиш, на зависеть от наличия света. Навык слепой печати пригодится тем, кто часто пользуется компьютером, подчеркнет ваши высокие профессиональные качества. Слепой метод позволяет печатать двести знаков в минуту. Модифицируйте предложенный способ обучения под ваши обстоятельства и особенности.</p> <a href="https://habr.com/ru/posts/1022416/?utm_campaign=1022416&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Sun, 12 Apr 2026 05:33:15 GMT</pubDate>
    <dc:creator><![CDATA[250w]]></dc:creator>
      
      <category><![CDATA[печать]]></category><category><![CDATA[печать вслепую]]></category><category><![CDATA[ввод данных]]></category><category><![CDATA[ввод текста]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @abratko — Управление проектами (+1) — 10.04.2026 14:27]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1021838/</guid>
    <link>https://habr.com/ru/posts/1021838/?utm_campaign=1021838&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Пятничный пост. Рубрика - узнай себя и что было дальше?</strong><br></p><p>— Привет. В этом спринте наш главный приоритет — это обработка больших данных из файла, который загружает пользователь. Тебе предстоит сделать пошаговую форму и предварительную проверку перед отправкой, — уверенным голосом сказал Виталий — руководитель проекта.<br>— Бизнес очень хочет эту фичу и ждёт, — добавил он, повышая уровень ответственности и важности задачи.<br>— Но… перед этим есть маленькая задачка: нужно в форме группового добавления товаров в корзину показать ошибки, которые возвращает сервер.<br><br>Подключились ребята с бэка.<br>— Раньше у нас этого не было, мы просто падали. Сейчас для каждого отдельного запроса может быть своя ошибка. Мы обсудили это с Виталием и Викой на прошлой неделе и быстро всё сделали, — декларировали они, явно удовлетворённые результатом своей работы.<br><br>— Да… там простой процесс: пользователь нажимает кнопку, и для каждого поля уходит свой запрос. Нужно просто показать ошибки, — подтвердила Вика — аналитик.</p><p>Вдруг я ощутил, что все смотрят на меня, и даже бизнес, которого не было в комнате.</p><p>Тестировщик Николай молчал и, кажется, тянулся за попкорном.<br>— Я не при делах, меня на совещании не было, — читалось в его глазах.</p><p>— Не уверен… что это можно сделать быстро. Там много старого кода и логики, запросы работают параллельно, мы вообще не обрабатываем ошибки в этой форме. Просто закрываем модалку. Нужно подумать… — сделал я слабую попытку возразить.</p><p>— Ну, так… форма же уже работает. Это простое отображение ошибок. Бизнес хочет, чтобы в конце недели это было на проде. Ок…? — закончил вопросом-утверждением Виталий.</p><p>— Ок… — зачем-то ответил я. «Б…!!! Зачем я это сказал?!» — тут же промелькнуло у меня в голове, и две половинки моего тела чуть ниже спины нервно сжались в предвкушении нюансов…<br><br><strong>Кого узнали и что было дальше? </strong></p> <a href="https://habr.com/ru/posts/1021838/?utm_campaign=1021838&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 10 Apr 2026 11:27:16 GMT</pubDate>
    <dc:creator><![CDATA[abratko]]></dc:creator>
      
      <category><![CDATA[управление людьми]]></category><category><![CDATA[управление командой]]></category><category><![CDATA[управление проектами]]></category><category><![CDATA[цели]]></category><category><![CDATA[фокусировка]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @smirnoff_ai — Блог компании LLMStart.ru (+4) — 09.04.2026 19:24]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/llmstart/posts/1021516/</guid>
    <link>https://habr.com/ru/companies/llmstart/posts/1021516/?utm_campaign=1021516&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Дорожная карта Agentic AI. Level 2. Ускорение — AI-driven development</strong></p><figure class=""><img src="https://habrastorage.org/webt/57/d8/06/57d80629aea8d7719768edb5926e7f27.png" alt="Дорожная карта Agentic AI — Level 2. Ускорение: AI-driven development" title="Level 2. Ускорение — AI-driven development"><div><figcaption>Level 2. Ускорение — AI-driven development</figcaption></div></figure><p>Кодовые агенты — вторая тема дорожной карты, и я поставил её сюда не случайно.</p><p>Во-первых, это мощнейший инструментарий, который кратно ускорит и обучение, и разработку — а значит, овладеть им надо как можно раньше. Во-вторых, именно он делает освоение сферы доступным не только опытным программистам, а всем, кто не боится исходного кода. Ну и в-третьих — кодовые агенты сами по себе эталон реализации ИИ-агентов, к которому стоит стремиться.</p><p>Для начала ознакомьтесь с разнообразием инструментов:</p><ul><li><p><strong>Онлайн-прототипирование:</strong> <a href="https://v0.app/" rel="noopener noreferrer nofollow">V0</a>, <a href="https://bolt.new/" rel="noopener noreferrer nofollow">Bolt</a>, <a href="https://lovable.dev/" rel="noopener noreferrer nofollow">Lovable</a>, <a href="https://replit.com/" rel="noopener noreferrer nofollow">Replit</a></p></li><li><p><strong>Консольные агенты:</strong> <a href="https://code.claude.com/" rel="noopener noreferrer nofollow">Claude Code</a>, <a href="https://github.com/openai/codex" rel="noopener noreferrer nofollow">Codex CLI</a>, <a href="https://github.com/google-gemini/gemini-cli" rel="noopener noreferrer nofollow">Gemini CLI</a>, <a href="https://www.warp.dev/" rel="noopener noreferrer nofollow">Warp</a></p></li><li><p><strong>AI-coding IDE:</strong> <a href="https://cursor.com/" rel="noopener noreferrer nofollow">Cursor</a>, <a href="https://windsurf.com/" rel="noopener noreferrer nofollow">Windsurf</a></p></li><li><p><strong>Spec-Driven IDE:</strong> <a href="https://kiro.dev/" rel="noopener noreferrer nofollow">Kiro</a>, <a href="https://qoder.com/" rel="noopener noreferrer nofollow">Qoder</a></p></li></ul><p>Я работаю в Cursor и рекомендую начать с него. Почувствуйте, насколько удобнее работать с моделями в проекте, открытом на вашем компьютере — без ручной загрузки файлов и копирования в веб-интерфейсы. И главное — работайте только через агента, на всех этапах: требования, аналитика, проектирование, кодинг, тестирование, деплой, документация, онбординг, реверс-инжиниринг.</p><p>Три вещи, которые я настраиваю первым делом:</p><ul><li><p><strong><a href="https://cursor.com/docs/skills" rel="noopener noreferrer nofollow">Skills</a></strong> — для меня это самый мощный и пока сильно недооценённый инструмент. Скилл — инструкция-специалист: агент читает SKILL.md и получает роль, знания и алгоритм. Аналитик, архитектор, тестировщик, DevOps — можно собрать целую команду специалистов под проект. Формат уже стал кросс-платформенным — один SKILL.md работает в Cursor, Claude Code и Codex.</p></li><li><p><strong><a href="https://cursor.com/docs/context/rules" rel="noopener noreferrer nofollow">Rules</a></strong> — постоянные инструкции: стиль кода, архитектурные решения, запреты.</p></li><li><p><strong><a href="https://cursor.com/docs/context/mcp" rel="noopener noreferrer nofollow">MCP</a></strong> — подключение внешних инструментов и актуальной документации. Попробуйте начать с MCP <a href="https://github.com/upstash/context7" rel="noopener noreferrer nofollow">Context7</a>.</p></li></ul><p>Крайне рекомендую изучить <a href="https://martinfowler.com/articles/exploring-gen-ai/sdd-3-tools.html" rel="noopener noreferrer nofollow">Spec-Driven методологию</a> и <a href="https://www.anthropic.com/engineering/claude-code-best-practices" rel="noopener noreferrer nofollow">лучшие практики работы с кодовыми агентами от Anthropic</a>.</p><p>На выходе с этого уровня у вас будет персональный кодовый ИИ-агент, который берёт рутину на себя, а вы фокусируетесь на архитектуре.</p><p>📚 <strong>Наши материалы</strong></p><ul><li><p><a href="https://habr.com/ru/articles/941934/" rel="noopener noreferrer nofollow">Умный вайб-кодинг</a></p></li><li><p><a href="https://habr.com/ru/articles/983808/" rel="noopener noreferrer nofollow">300 дней с AI-агентами</a></p></li><li><p><a href="https://habr.com/ru/articles/984656/" rel="noopener noreferrer nofollow">Лучшие практики от Cursor</a></p></li><li><p><a href="https://habr.com/ru/articles/1005494/" rel="noopener noreferrer nofollow">Третья эпоха AI-разработки</a></p></li><li><p>Видео: <a href="https://youtu.be/22v18mceY64" rel="noopener noreferrer nofollow">AI-driven разработка</a> · <a href="https://youtu.be/sPx-IlHaxFo" rel="noopener noreferrer nofollow">Qoder</a> · <a href="https://youtu.be/myex7aX32k4" rel="noopener noreferrer nofollow">Claude Code</a> · <a href="https://youtu.be/m0my5ogJitk" rel="noopener noreferrer nofollow">Gemini CLI</a></p></li></ul><p>🔔 Следующая тема: <a href="https://habr.com/ru/posts/1023986/" rel="noopener noreferrer nofollow">работа с LLM API</a>.</p><p>⬅️ Предыдущая тема: <a href="https://habr.com/ru/posts/1020524/" rel="noopener noreferrer nofollow">Level 1. Основы LLM и промпт-инжиниринг</a></p><p>Подписывайтесь, пожалуйста, чтобы не пропустить!</p><blockquote><p>🎓 <strong>Приглашаем на бесплатный мастер-класс</strong><br> 📅 13 апреля, пнд 16:00 МСК — AI-driven практикум «ИИ-агент с нуля за один эфир»<br> 👉 Записывайтесь в наших ботах: <a href="https://t.me/llmstart_bot" rel="noopener noreferrer nofollow">Telegram</a> или <a href="https://vk.com/write-227031401" rel="noopener noreferrer nofollow">ВКонтакте</a></p></blockquote><p><em>Наши </em><a href="https://llmstart.ru/?utm_source=habr&amp;utm_medium=post&amp;utm_campaign=agentic-roadmap-03#programs-section" rel="noopener noreferrer nofollow"><em>курсы</em></a><em> по ИИ-кодингу ИИ-агентов. По вопросам — пишите </em><a href="https://t.me/smirnoff_ai" rel="noopener noreferrer nofollow"><em>мне</em></a><em>.</em></p> <a href="https://habr.com/ru/posts/1021516/?utm_campaign=1021516&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 09 Apr 2026 16:24:14 GMT</pubDate>
    <dc:creator><![CDATA[smirnoff_ai (LLMStart.ru)]]></dc:creator>
      
      <category><![CDATA[ai]]></category><category><![CDATA[aicoding]]></category><category><![CDATA[vibecoding]]></category><category><![CDATA[aidd]]></category><category><![CDATA[ai-agents]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @veta_pf — Блог компании МТС (+3) — 09.04.2026 14:58]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/ru_mts/posts/1021364/</guid>
    <link>https://habr.com/ru/companies/ru_mts/posts/1021364/?utm_campaign=1021364&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Подключайся ко второму онлайн-митапу MWS для Python-разработчиков 🎙️</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/f7b/c05/9e7/f7bc059e7709b757e2d6c680bdcfcb1a.png" width="1920" height="1080"></figure><p>На встрече <strong>узнаешь нюансы разработки с агентом </strong>и сразу <strong>сможешь попрактиковаться</strong>, а еще — <strong>поучаствовать в дискуссии</strong> <strong>с экспертами</strong> о роли ИИ в рабочих процессах.</p><p>Будет интересно Python-разработчикам, аналитикам и другим ИТ-специалистам, кто интересуется применением ИИ в разработке.</p><ul><li><p>📅 Когда: 15 апреля (среда) в 15:00 по мск</p></li><li><p>📍 Где: онлайн&nbsp;</p></li><li><p>👉 <a href="https://mts-digital.ru/events/details?id=72858541?utm_source=habr&amp;utm_medium=post&amp;utm_campaign=vstrecha_python_090426" rel="noopener noreferrer nofollow">Зарегистрироваться</a></p></li></ul> <a href="https://habr.com/ru/posts/1021364/?utm_campaign=1021364&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 09 Apr 2026 11:58:33 GMT</pubDate>
    <dc:creator><![CDATA[veta_pf (МТС)]]></dc:creator>
      
      <category><![CDATA[онлайн-встреча]]></category><category><![CDATA[mws]]></category><category><![CDATA[разработка]]></category><category><![CDATA[ии в разработке]]></category><category><![CDATA[pyton]]></category><category><![CDATA[разработка с ии]]></category><category><![CDATA[ит-сообщество]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @smirnoff_ai — Блог компании LLMStart.ru (+4) — 07.04.2026 20:04]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/llmstart/posts/1020524/</guid>
    <link>https://habr.com/ru/companies/llmstart/posts/1020524/?utm_campaign=1020524&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Дорожная карта Agentic AI. Level 1. Основы LLM и промпт-инжиниринг</strong></p><figure class=""><img src="https://habrastorage.org/webt/8c/2f/ab/8c2fab383e2db095925a0895e2425299.png" alt="Дорожная карта Agentic AI — Level 1. Быстрый старт: основы LLM и промпт-инжиниринг" title="Level 1. Основы LLM и промпт-инжиниринг"><div><figcaption>Level 1. Основы LLM и промпт-инжиниринг</figcaption></div></figure><p>Начну нашу дорожную карту Agentic AI с языковых моделей.</p><p>Сразу оговорюсь: важнее не глубина знаний про их устройство, а умение разбираться в широте возможностей и многообразии их применения. Иными словами, учимся профессиональному вождению, а не сборке автомобиля.</p><p>Важно ознакомиться с принципами работы моделей, генерации токенов, вариаций архитектур — на уровне того, чтобы понимать:</p><ul><li><p>параметры моделей и основные термины (размер, веса, токены, контекстное окно, галлюцинации),</p></li><li><p>способы оптимизации (квантизация, прунинг, дистилляция),</p></li><li><p>способности к размышлению, ведению диалога, следованию инструкциям, обработке не только текста, но и медиа-контента.</p></li></ul><p>Главное — практиковаться. Я взял себе за правило: каждую задачу сначала через ИИ. Пишу код? Промпт. Анализирую данные? Промпт. Пишу письмо? Промпт. Делаю презентацию? Промпт.</p><p>Чтобы делать это качественно — прокачивайте навык писать промпты, изучите гайды по промпт-инжинирингу от вендоров. Результат на выходе зависит от качества контекста и точности инструкций.</p><p>Изучите гайды, пробуйте разные модели, начните с топовых: ChatGPT, Claude, Gemini, DeepSeek, Qwen. Отечественные: YandexGPT, GigaChat.</p><p>Прокачайте насмотренность, набейте руку, пройдите по аренам, лидербордам, бенчмаркам — научитесь понимать, в чём одни модели сильнее других.</p><p>На выходе будете как рыба в воде: выбирать модель под задачу и качественно с ней работать.</p><p>📚 <strong>Материалы</strong></p><ul><li><p>Как работают LLM: <a href="https://www.promptingguide.ai/ru" rel="noopener noreferrer nofollow">Prompting Guide</a>, визуализации — <a href="https://bbycroft.net/llm" rel="noopener noreferrer nofollow">LLM Visualizer</a> и <a href="https://poloclub.github.io/transformer-explainer/" rel="noopener noreferrer nofollow">Transformer Explainer</a>, <a href="https://www.youtube.com/playlist?list=PLlLIAoinpfyGwPE42Md2y2iSnIOBnQ9K1" rel="noopener noreferrer nofollow">наш плейлист с объяснениями основ</a>.</p></li><li><p>Промпт-инжиниринг от вендоров: <a href="https://cookbook.openai.com/examples/gpt-5/gpt-5-2_prompting_guide" rel="noopener noreferrer nofollow">OpenAI Cookbook</a>, <a href="https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/overview" rel="noopener noreferrer nofollow">Anthropic Prompt Engineering</a>, <a href="https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-4-best-practices" rel="noopener noreferrer nofollow">Claude 4 best practices</a>.</p></li><li><p>Выбор модели: <a href="https://youtu.be/G5lYfNWx-vk" rel="noopener noreferrer nofollow">видео-гайд</a>, лидерборды — <a href="https://lmarena.ai/ru/leaderboard" rel="noopener noreferrer nofollow">LM Arena</a>, <a href="https://llmarena.ru/" rel="noopener noreferrer nofollow">LLM Arena RU</a>, <a href="https://www.swebench.com/index.html" rel="noopener noreferrer nofollow">SWE-bench</a>. Хаб моделей: <a href="https://huggingface.co/" rel="noopener noreferrer nofollow">Hugging Face</a>.</p></li></ul><p>🔔 Следующая тема: AI-driven разработка — как грамотно ускорять разработку в X раз.</p><p>⬅️ Предыдущая тема: <a href="https://habr.com/ru/posts/1018720/" rel="noopener noreferrer nofollow">Дорожная карта Agentic AI. Интро</a></p><p>Подписывайтесь, пожалуйста, чтобы не пропустить!</p><blockquote><p>🎓 <strong>Бесплатные мероприятия на этой неделе</strong></p><ul><li><p>📅 <strong>9 апреля, чт 18:00</strong> — Онлайн-разбор продакшен-кейса «ИИ-агент консультанта 1С»</p></li><li><p>📅 <strong>13 апреля, пнд 16:00</strong> — AI-driven практикум «ИИ-агент с нуля за один эфир»</p></li></ul><p>👉 Записывайтесь на мероприятия в наших ботах: <a href="https://t.me/llmstart_bot" rel="noopener noreferrer nofollow">Telegram</a> или <a href="https://vk.com/write-227031401" rel="noopener noreferrer nofollow">ВКонтакте</a></p></blockquote><p><em>Ознакомьтесь с нашей </em><a href="https://llmstart.ru/ai-agents-combo/?utm_source=habr&amp;utm_medium=post&amp;utm_campaign=agentic-roadmap-01#programs-section" rel="noopener noreferrer nofollow"><em>траекторией роста по AI-driven разработке и ИИ-агентам</em></a><em>.</em></p> <a href="https://habr.com/ru/posts/1020524/?utm_campaign=1020524&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 07 Apr 2026 17:04:52 GMT</pubDate>
    <dc:creator><![CDATA[smirnoff_ai (LLMStart.ru)]]></dc:creator>
      
      <category><![CDATA[ai]]></category><category><![CDATA[agents]]></category><category><![CDATA[ии-агенты]]></category><category><![CDATA[llm]]></category><category><![CDATA[prompt-engineering]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @EddyLan — Блог компании Open Data Science (+3) — 07.04.2026 10:00]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/ods/posts/1020168/</guid>
    <link>https://habr.com/ru/companies/ods/posts/1020168/?utm_campaign=1020168&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>ИИ-код и линтеры: статический анализ проекта на 85 000 строк</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/25d/31b/ff5/25d31bff5ecb88ab0a5a426f8d2eef69.png" alt="Таблица с результатами проверки" title="Таблица с результатами проверки" width="1536" height="1024"><div><figcaption>Таблица с результатами проверки</figcaption></div></figure><div class="floating-image"><p>Недавно опубликовал <a href="https://habr.com/ru/companies/ods/articles/1019454/" rel="noopener noreferrer nofollow">статью о разработке шахматного веб-сервиса с помощью Claude Code и Codex</a>. В комментариях попросили показать результаты статического анализа. Разумный запрос — давайте посмотрим на цифры.</p><p><strong>Стиль и ошибки кода</strong></p></div><p><strong>ruff (Python)</strong> — 73 замечания на 63 000 строк. 1.2 на 1000 строк.</p><p>Состав: 39 неиспользуемых импортов, 17 неиспользуемых переменных, 6 forward references, 5 f-строк без подстановок, 5 лямбд вместо def. Ноль ошибок, от которых код падает в рантайме.</p><p><strong>ESLint (React/TypeScript)</strong> — 0 ошибок, 5 warnings на 21 000 строк. Все пять — рекомендация Next.js использовать <code>&lt;Image&gt;</code> вместо <code>&lt;img&gt;</code>.</p><p><u>Для сравнения:</u><br>- Зрелый проект с CI-линтингом — 0–2 замечания на 1000 строк. <br>- Без линтинга — 5–15. <br>- Легаси — 20–50. </p><p><em>У нас 1.2 и 0.24, при том что CI-линтинга в проекте нет. Claude и Codex запускают ruff и eslint сами на каждое изменение — я вижу это в логах. Результат соответствующий.</em></p><p><strong>Безопасность</strong></p><p>ruff и ESLint проверяют стиль, не безопасность. По совету из комментариев прогнал <strong>bandit</strong> — security-сканер для Python.</p><p>1 432 находки. Реальных уязвимостей: <strong>0</strong>.</p><ul><li><p><strong>2 HIGH</strong>&nbsp;— SHA1 для fingerprint'а шахматных партий. Это не криптография, а генерация коротких ID для внутренней классификации. Подделывать бессмысленно.</p></li><li><p><strong>5 MEDIUM</strong>&nbsp;«SQL injection» — bandit видит f-string в SQL-запросе и сигнализирует. Но внутри f-string стоят только&nbsp;<code>?</code>-плейсхолдеры, данные идут параметрами. Классическая параметризация, инъекция невозможна.</p></li><li><p><strong>4 MEDIUM</strong>&nbsp;«url open» — HTTP-клиенты Lichess, Chess.com, OpenRouter. URL из конфига, пользователь не контролирует.</p></li><li><p><strong>1 421 LOW</strong>&nbsp;— 1 250 assert'ов (bandit предупреждает, что&nbsp;<code>assert</code>&nbsp;удаляется при запуске с&nbsp;<code>-O</code>, но Django и Celery никто так не запускает), остальное — try/except/pass в опциональных ветках.</p></li></ul><p>Фронтенду отдельный security-сканер не нужен: React экранирует HTML автоматически, <code>dangerouslySetInnerHTML</code> не используется, фронт не работает с БД, файлами и процессами.</p><p><strong><em>85 000 строк, три сканера, ноль реальных уязвимостей. ИИ-код не нуждается в оправданиях — он нуждается в проверке. Проверили. Чисто.</em></strong></p><p>p.s. Проверку проходил код из статьи <a href="https://habr.com/ru/companies/ods/articles/1019454/" rel="noopener noreferrer nofollow">Вайбкодинг по Chess’ноку. 1. e4</a></p> <a href="https://habr.com/ru/posts/1020168/?utm_campaign=1020168&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 07 Apr 2026 07:00:40 GMT</pubDate>
    <dc:creator><![CDATA[EddyLan (Open Data Science)]]></dc:creator>
      
      <category><![CDATA[codex]]></category><category><![CDATA[ии-агенты]]></category><category><![CDATA[claude code]]></category><category><![CDATA[линтеры]]></category><category><![CDATA[lanchess]]></category><category><![CDATA[вайбкодинг]]></category><category><![CDATA[статический анализ]]></category><category><![CDATA[ruff]]></category><category><![CDATA[bandit]]></category><category><![CDATA[шахматы]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @GarantexAi — Программирование (+1) — 06.04.2026 12:49]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1019804/</guid>
    <link>https://habr.com/ru/posts/1019804/?utm_campaign=1019804&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Как за 11 лет разучиться дебажить: когнитивная атрофия от AI-инструментов</p><p>На Reddit разработчик с 11-летним стажем описал тревожный момент: он не смог отладить баг в собственном коде без Claude. Не потому что баг сложный, а потому что разучился генерировать гипотезы самостоятельно.</p><p>Что произошло</p><p>Разработчик столкнулся с нестабильным багом сетевых таймаутов в продакшене. Сервис писал сам, два года назад. Раньше подобная проблема решалась за час методичной работы. Теперь 40 минут пинг-понга с Claude без результата.</p><p>Когда он закрыл чат и попробовал разобраться сам, обнаружил: внутренний диалог, который раньше подсказывал «проверь пул соединений», «может retry storm», «посмотри балансировщик», стал заметно тише.</p><p>Баг он в итоге нашёл. Но медленнее, чем три года назад, когда AI ещё не использовал.</p><p>Почему это не про «AI плохой»</p><p>Автор подчёркивает: инструменты полезные, он пользуется ими каждый день. Проблема в другом. Навык генерации гипотез в условиях неопределённости деградирует без практики.</p><p>Это подтверждает концепция Cognitive Offloading. При систематическом переносе мыслительных операций на внешние инструменты ослабевают нейронные связи, отвечающие за эти процессы.</p><p>Классический пример — GPS-навигация. Исследование в Nature Communications (2017) показало: люди, которые постоянно ездят по навигатору, хуже справляются с задачами пространственной ориентации, чем те, кто периодически строит маршруты сами.</p><p>Где это ломается у разработчиков</p><p>На практике выделяются три зоны риска:</p><p><strong>Генерация гипотез</strong><br> AI отлично проверяет гипотезы. Но если перестать генерировать их самостоятельно, навык быстро деградирует. Через полгода становится сложно просто «посидеть» с проблемой.</p><p><strong>Валидация решений</strong><br> Раньше разработчики продумывали архитектуру и решения самостоятельно. Теперь часто тянутся к AI за подтверждением. В итоге снижается доверие к собственной экспертизе.</p><p><strong>Коммуникация</strong><br> Некоторые прогоняют через AI даже сообщения коллегам. Возникает размывание авторства мысли: это ты формулируешь или инструмент за тебя.</p><p>Контраргумент: а Stack Overflow?</p><p>Частое возражение: разработчики годами копировали решения с Stack Overflow и не деградировали.</p><p>Разница в модели взаимодействия:</p><ol><li><p> Нужно сформулировать проблему </p></li><li><p> Найти релевантный ответ </p></li><li><p> Адаптировать решение под свой контекст </p></li></ol><p>С AI можно просто описать симптомы и получить готовый ответ. Порог входа ниже, а значит выше риск делегировать мышление полностью.</p><p>Что делать: практические подходы</p><p><strong>Правило 5 минут</strong><br> Перед тем как открыть Claude, потратить 5 минут на самостоятельный анализ stack trace. Это простой способ «включить» мышление.</p><p><strong>Unplugged-сессии</strong><br> Периодически дебажить без AI. Например, один час в неделю. Это не ограничение, а тренировка.</p><p><strong>Приходить с гипотезами</strong><br> Разница между джуном и сеньором в работе с AI: джун ждёт решение, сеньор приносит несколько гипотез и использует AI как инструмент проверки.</p><p><strong>Рефлексия после решения</strong><br> После решения с помощью AI зафиксировать, какие гипотезы ты мог бы выдвинуть сам. Это возвращает осознанность процессу.</p><p><strong>Честно</strong></p><p>Я не демонизирую AI-инструменты. Сам использую ежедневно. Но когнитивная атрофия — реальный риск, который стоит учитывать.</p><p>Если вы программируете много лет и замечаете, что раньше справлялись быстрее без AI, это не паранойя. Навык требует практики, а делегирование мышления — это решение с определённой ценой.</p><p>Интересно, замечали ли вы у себя похожий эффект? Не просто рост продуктивности, а именно ощущение, что раньше могли разобраться быстрее самостоятельно.</p> <a href="https://habr.com/ru/posts/1019804/?utm_campaign=1019804&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 06 Apr 2026 09:49:21 GMT</pubDate>
    <dc:creator><![CDATA[GarantexAi]]></dc:creator>
      
      <category><![CDATA[дебаг]]></category><category><![CDATA[продуктивность разработчика]]></category><category><![CDATA[навыки программиста]]></category><category><![CDATA[claude]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @olegchir — Программирование — 03.04.2026 20:25]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1019104/</guid>
    <link>https://habr.com/ru/posts/1019104/?utm_campaign=1019104&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Если кто-то вдруг использует мой Licensedog для сбора информации о техстеке.</p><p>С сегодняшним обновлением, оно успешно разыскало в интернете и проверило все 5546 зависимости одного из наших проектов, кроме 4 мусорных внутренних библиотек.</p><p>Научил работать с Java (раньше были только Python, JS и Go).  Починил целую пачку багов.</p><p>Это такой краулер, который принимает на вход SBOM (в виде CSV или cyclonedx) и потом сомневается в нем: старается обойти интернет, и на самом деле физически найти файлы с лицензиями. Выкачать их репозиториев, распаковать из архивов, или даже открыть в барузере их сайты и распарсить веб-странички. И фактически проверить на соответствие. В отчете описывает, что и откуда взялось, и почему она думает что лицензия на самом деле не MIT а GPL. На выходе получается CSV или JSONL файл, который можно отгружать безопасникам на ревью.</p><p>Исходники - как всегда, на GitVerse.</p><p><a href="https://gitverse.ru/anarchic/licensedog" rel="noopener noreferrer nofollow">https://gitverse.ru/anarchic/licensedog</a></p> <a href="https://habr.com/ru/posts/1019104/?utm_campaign=1019104&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 03 Apr 2026 17:25:24 GMT</pubDate>
    <dc:creator><![CDATA[olegchir]]></dc:creator>
      
      <category><![CDATA[sbom]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @smirnoff_ai — Блог компании LLMStart.ru (+4) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/llmstart/posts/1018720/</guid>
    <link>https://habr.com/ru/companies/llmstart/posts/1018720/?utm_campaign=1018720&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<figure class=""><img src="https://habrastorage.org/webt/57/24/a1/5724a180b19c471fb8f7d6cfea6573aa.png" alt="Дорожная карта Agentic AI — от основ до production-ready систем" title="Дорожная карта Agentic AI"><div><figcaption>Дорожная карта Agentic AI</figcaption></div></figure><p><strong>Дорожная карта Agentic AI: от основ до production-ready агентных систем</strong></p><p>Друзья, я решил в апреле разобрать горящую тему этого года - что надо знать и уметь для разработки production-ready ИИ-агентов.</p><p>По сути, это будет своеобразная дорожная карта Agentic AI Engineering — по этапам, от основ до зрелых систем.</p><p>Я буду выкладывать небольшие посты с раскрытием важных тем и ссылками на полезные материалы.</p><p>Пройдем по следующим темам, которые нужно освоить, чтобы создавать агентные системы готовые к продакшену:</p><ul><li><p>Основы языковых моделей и промпт-инжиниринг,</p></li><li><p>Работа с LLM API и структурированный вывод,</p></li><li><p>AI-driven разработка с ИИ-агентами,</p></li><li><p>Мультимодальность — голос, изображения,</p></li><li><p>Local inference — локальный запуск моделей,</p></li><li><p>RAG — как передать агенту знания о вашем бизнесе,</p></li><li><p>Agents —  агенты с памятью, инструментами и планированием,</p></li><li><p>MCP — стандарт интеграции агентов с внешними системами,</p></li><li><p>Observability &amp; Evaluation —  мониторинг и оценка качества RAG-систем и агентов,</p></li><li><p>Security &amp; Guards — безопасность агентных систем,</p></li><li><p>Управление датасетами и промптами,</p></li><li><p>Сontext-engineering — работа с большим контекстом,</p></li><li><p>Skills — навыки агентов,</p></li><li><p>Agent harness — решение сложных задач, субагенты и планирование,</p></li><li><p>Multi-agents — мультиагентные системы.</p></li></ul><p>В конце серии сформируется понимание того, что и в каком порядке осваивать, чтобы создаваемые решения работали в реальных условиях, а не оставались брошенными игрушками.</p><p>Это вводный пост с приглашением подписываться, чтобы не пропустить следующие темы.</p><p>Кстати, если есть пожелания по темам, что стоит добавить, то пишите в комментариях, пожалуйста.</p><p>🔔 Следующий пост: <a href="https://habr.com/ru/posts/1020524/" rel="noopener noreferrer nofollow">основы языковых моделей — с чего всё начинается</a>.</p><p>Больше про ИИ-кодинг и ИИ-агентов в <a href="https://t.me/aidialogs" rel="noopener noreferrer nofollow">ТГ</a> и <a href="https://vk.com/write-227031401" rel="noopener noreferrer nofollow">ВК</a>.<br> Приглашаю ознакомиться с нашими <a href="https://llmstart.ru/?utm_source=habr&amp;utm_medium=post&amp;utm_campaign=agentic-roadmap#programs-section" rel="noopener noreferrer nofollow">онлайн-курсами</a> по ИИ-разработке ИИ-агентов.</p> <a href="https://habr.com/ru/posts/1018720/?utm_campaign=1018720&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 03 Apr 2026 07:01:24 GMT</pubDate>
    <dc:creator><![CDATA[smirnoff_ai (LLMStart.ru)]]></dc:creator>
      
      <category><![CDATA[ai]]></category><category><![CDATA[agents]]></category><category><![CDATA[llm]]></category><category><![CDATA[rag]]></category><category><![CDATA[mcp]]></category><category><![CDATA[observability]]></category><category><![CDATA[evaluation]]></category><category><![CDATA[security]]></category><category><![CDATA[context-engineering]]></category><category><![CDATA[prompt-engineering]]></category>
  </item>
  

	
  

  

  

      

      

      

    
  </channel>
</rss>
