<?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/flows/backend/posts/all/</link>
    <description><![CDATA[Все посты в потоке Бэкенд на Хабре]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Wed, 06 May 2026 00:39:42 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[Пост @MaxRokatansky — Блог компании OTUS (+2) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/otus/posts/1030962/</guid>
    <link>https://habr.com/ru/companies/otus/posts/1030962/?utm_campaign=1030962&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>От Go-интерфейсов до AI-агентов: 16 открытых уроков для IT-специалистов</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/bf6/965/864/bf6965864793f9d839ecebcff175f147.png" width="1800" height="980"></figure><p>На&nbsp;этой неделе&nbsp;— серия бесплатных открытых вебинаров для&nbsp;разработчиков, архитекторов, DevOps‑инженеров, аналитиков и специалистов, которые работают с&nbsp;AI‑инструментами.</p><p>Все вебинары проходят в&nbsp;рамках онлайн‑курсов OTUS и проводятся преподавателями‑практиками. Это возможность познакомиться с&nbsp;экспертами, посмотреть на&nbsp;формат обучения изнутри и задать вопросы по&nbsp;теме.</p><p>4️⃣ мая</p><p>➡ <strong>20:00. <a href="https://otus.pw/cmJl/" rel="noopener noreferrer nofollow">«Интерфейсы в&nbsp;Golang изнутри»</a></strong><br><sub>Разберём, как&nbsp;устроены интерфейсы в&nbsp;Go, что&nbsp;происходит под&nbsp;капотом и почему понимание внутренней механики помогает писать более предсказуемый код.</sub></p><p>5️⃣ мая</p><p>➡ <strong>20:00. <a href="https://otus.pw/ylxF/" rel="noopener noreferrer nofollow">«Postgres + JSON: реляционная мощь, документная гибкость»</a></strong><br><sub>Поговорим о&nbsp;том, как&nbsp;использовать JSON в&nbsp;PostgreSQL, когда это оправдано и как&nbsp;совместить строгую реляционную модель с&nbsp;гибкостью документного подхода.</sub></p><p>➡ <strong>20:00. <a href="https://otus.pw/KuDu/" rel="noopener noreferrer nofollow">«Архитектурные решения в&nbsp;backend‑разработке»</a></strong><br><sub>Обсудим, как&nbsp;принимать архитектурные решения в&nbsp;backend‑проектах, где проходит граница между полезной инженерной дисциплиной и избыточным усложнением.</sub></p><p>➡ <strong>20:00. <a href="https://otus.pw/S1Ec/" rel="noopener noreferrer nofollow">«Ansible:&nbsp;быстрый старт»</a></strong><br><sub>Практический вводный вебинар для&nbsp;тех, кто хочет автоматизировать рутинные задачи администрирования и&nbsp;быстрее перейти от&nbsp;ручных действий к&nbsp;воспроизводимой инфраструктуре.</sub></p><p>➡ <strong>20:00. <a href="https://otus.pw/fwpg/" rel="noopener noreferrer nofollow">«Как не&nbsp;допустить ошибок при&nbsp;написании пользовательских историй (User Story)?»</a></strong><br><sub>Разберём типичные ошибки в&nbsp;User Story и посмотрим, как&nbsp;формулировать требования так, чтобы они&nbsp;были понятны команде разработки и полезны для&nbsp;продукта.</sub></p><p>6️⃣ мая</p><p>➡<strong>18:00. <a href="https://otus.pw/LNOk/" rel="noopener noreferrer nofollow">«Методы работы с&nbsp;LLM: промпт‑инжиниринг, LoRA и RAG»</a></strong><br><sub>Поговорим о&nbsp;практических подходах к&nbsp;работе с&nbsp;большими языковыми моделями: от&nbsp;промптов до&nbsp;дообучения и retrieval‑augmented generation.</sub></p><p>➡ <strong>19:00. <a href="https://otus.pw/mEtM/" rel="noopener noreferrer nofollow">«Разработка проекта на&nbsp;Kotlin: коллаборация человека, архитектурных шаблонов и ИИ‑команды»</a></strong><br><sub>Практический вебинар о&nbsp;том, как&nbsp;совмещать инженерный подход, архитектурные паттерны и AI‑инструменты при&nbsp;разработке Kotlin‑проекта.</sub></p><p>➡ <strong>20:00. <a href="https://otus.pw/T0fx/" rel="noopener noreferrer nofollow">«Rust в&nbsp;деле: пишем многопользовательский чат с&nbsp;сервером, клиентом и CLI»</a></strong><br><sub>На&nbsp;примере чата посмотрим, как&nbsp;Rust применяется в&nbsp;реальной задаче: сервер, клиентская часть, CLI и работа с&nbsp;многопользовательским взаимодействием.</sub></p><p>➡ <strong>20:00. <a href="https://otus.pw/Zxba/" rel="noopener noreferrer nofollow">«Ключевые тренды AI Governance в 2026&nbsp;году»</a></strong><br><sub>Обсудим управление AI‑системами, риски, регулирование, ответственность и подходы, которые становятся важными для&nbsp;компаний, внедряющих искусственный интеллект.</sub></p><p>➡ <strong>20:00. <a href="https://otus.pw/4xMC/" rel="noopener noreferrer nofollow">«LangGraph + MCP в&nbsp;Cursor IDE: создаем автономного агента для&nbsp;глубокого анализа Google Trends»</a></strong><br><sub>Практический вебинар о&nbsp;создании AI‑агента с&nbsp;использованием LangGraph, MCP и Cursor IDE для&nbsp;анализа данных Google Trends.</sub></p><p>7️⃣ мая</p><p>➡ <strong>20:00. <a href="https://otus.pw/Ah4z/" rel="noopener noreferrer nofollow">«Стоп рутина: как&nbsp;self‑service деплой экономит ресурсы команды»</a></strong><br><sub>Поговорим о&nbsp;self‑service deployment: как&nbsp;снять часть операционной нагрузки с&nbsp;команды, ускорить поставку изменений и сделать процесс деплоя понятнее.</sub></p><p>➡ <strong>20:00. <a href="https://otus.pw/4vn2/" rel="noopener noreferrer nofollow">«Настройка удобного рабочего окружения для&nbsp;Python‑проекта»</a></strong><br><sub>Разберём, как&nbsp;подготовить рабочее окружение для&nbsp;Python‑разработки, чтобы меньше времени тратить на&nbsp;хаос в&nbsp;зависимостях и больше&nbsp;— на&nbsp;сам код.</sub></p><p>➡ <strong>20:00. <a href="https://otus.pw/kOPg/" rel="noopener noreferrer nofollow">«От кода до&nbsp;Kubernetes за&nbsp;полтора часа»</a></strong><br><sub>Посмотрим путь приложения от&nbsp;локального кода до&nbsp;запуска в&nbsp;Kubernetes и разберём базовые шаги, которые помогают понять production‑подход.</sub></p><p>➡ <strong>20:00. <a href="https://otus.pw/63Xd/" rel="noopener noreferrer nofollow">«Тестирование микросервисов на&nbsp;Go: почему ваш сервис ломается под 1000&nbsp;RPS»</a></strong><br><sub>Разберём, почему микросервисы могут вести себя нестабильно под&nbsp;нагрузкой, и какие подходы помогают находить проблемы до&nbsp;того, как&nbsp;они попадут в&nbsp;продакшен.</sub></p><p>➡ <strong>20:00. <a href="https://otus.pw/DBl3/" rel="noopener noreferrer nofollow">«Как бизнес‑аналитик управляет рисками при&nbsp;разработке IT‑продукта?»</a></strong><br><sub>Поговорим о&nbsp;роли бизнес‑аналитика в&nbsp;управлении рисками: от&nbsp;требований и коммуникации со стейкхолдерами до&nbsp;влияния на&nbsp;итоговое качество продукта.</sub></p><p>➡ <strong>20:00. <a href="https://otus.pw/fQ2m/" rel="noopener noreferrer nofollow">«Качество C#‑кода: от&nbsp;модульных тестов к&nbsp;системному подходу»</a></strong><a href="https://otus.pw/fQ2m/" rel="noopener noreferrer nofollow"> </a><br><sub>Разберём, почему качество кода не&nbsp;сводится только к&nbsp;unit‑тестам, и как&nbsp;выстраивать более системный подход к&nbsp;поддерживаемости C#‑проектов.</sub></p><blockquote><p><em>Полный список бесплатных уроков мая по AI, программированию и не только </em><a href="https://otus.pw/jqOE/" rel="noopener noreferrer nofollow"><em>смотрите в дайджесте.</em></a></p></blockquote> <a href="https://habr.com/ru/posts/1030962/?utm_campaign=1030962&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 04 May 2026 08:40:34 GMT</pubDate>
    <dc:creator><![CDATA[MaxRokatansky (OTUS)]]></dc:creator>
      
      <category><![CDATA[открытые уроки]]></category><category><![CDATA[вебинары для IT]]></category><category><![CDATA[backend-разработка]]></category><category><![CDATA[Go]]></category><category><![CDATA[PostgreSQL]]></category><category><![CDATA[Kubernetes]]></category><category><![CDATA[DevOps]]></category><category><![CDATA[AI-агенты]]></category><category><![CDATA[LLM]]></category><category><![CDATA[микросервисы]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @PechoraDev — CMS — 04.05.2026 07:31]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1030966/</guid>
    <link>https://habr.com/ru/posts/1030966/?utm_campaign=1030966&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Стоит ли садиться в 2026 за разработку своей CMS?</strong></p><p>Не так давно я писал несколько постов о  своем opensource движке, при помощи которого можно вести свой блог. И естественно мне за это навтыкали в комментариях, мол - какая нахрен CMS в 2026 году? Кому она вообще нужна?</p><p>Решил исследовать этот вопрос более тщательно и неожиданно для себя открыл одну важную вещь - узконаправленная CMS скорее всего действительно не нужна. А вот как инструмент для быстрого развертывания сайтиков - еще очень как. </p><p>Главное - чтобы эта CMS имела систему событий и хуков под капотов - чтобы при разработке своего плагина или контроллера можно было легко прицепиться к сущностям движка. </p><p>Недавно обратился ко мне старый клиент, которому в далеких лохматых годах делал сайт еще на джумле. Мол - сейчас есть сайт - на Тильде, современный, красивый, но - нефункциональный. Спасай-выручай, надо перенести с Тильды на какую-нибудь крутилку. </p><p>Перенес. Написал пару контроллеров. Дизайн сохранил в исконном виде (пришлось правда переписывать весь ужасный инлайн-css от тильды). Но - клиент доволен, что теперь все круто, и не нужно ежемесячно платить за хостинг Тильды (зато нужно платить целых 99 рублей за хостинг для текущего сайта). </p><p>Так вот к чему я? Прежде чем переносить сайт с тильды - я перелопатил штук 15 действующих CMS, на которых сейчас клепают сайты - включая всем известный WP и менее известную InstantCms. И ни  один двиг не дал того, что мне было нужно. </p><p>А задача у меня была тривиально простая - чтобы в админке я создал несколько сущностей (например слайдер, услуги, отзывы) - и разметил все это стандартными шортокдами системы, чтобы вывести на фронт. </p><p>Ни один движок этого не дает. (Ну или может я плохо искал). </p><p>Тут конечно я должен подвести к своей CMS - <em>а вот моя так умеет! Пользуйтесь!</em></p><p>Сейчас вы подумаете: «Ага, сейчас он начнет впаривать свою CMS!» А вот нет. Не буду.</p><p>Потому что вопрос реально открытый: <strong>а нужна ли своя CMS в 2026 году?</strong> Или проще наваять на php под конкретного клиента мини-админку для управления сайтом-визиткой?</p> <a href="https://habr.com/ru/posts/1030966/?utm_campaign=1030966&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 04 May 2026 04:31:31 GMT</pubDate>
    <dc:creator><![CDATA[PechoraDev]]></dc:creator>
      
      <category><![CDATA[cms]]></category><category><![CDATA[разработка]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @asrelo — Python — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1030730/</guid>
    <link>https://habr.com/ru/posts/1030730/?utm_campaign=1030730&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>В TOML нет <code>null</code>. У меня — есть (только для Python)</strong></p><p><strong>TLDR: </strong>TOML — удобный формат конфигураций, но ему не хватает поддержки <code>null</code>. Создатели языка осознанно отказались и отказываются добавлять <code>null</code>. Я столкнулся с этой проблемой при слиянии TOML-конфигураций в своём Python-проекте и решил её, форкнув популярные библиотеки и добавив в них поддержку значения <code>null</code>  : <a href="https://pypi.org/project/tomli-null/" rel="noopener noreferrer nofollow">tomli-null</a> (парсер) и <a href="https://pypi.org/project/tomli-w-null/" rel="noopener noreferrer nofollow">tomli-w-null</a> (генератор).</p><p><a href="https://toml.io/" rel="noopener noreferrer nofollow">TOML</a> — популярный с недавних пор язык конфигурационных файлов, <s>сочетающий</s> избегающий проблемы других языков:</p><ul><li><p>TOML стандартизован, имеет типы данных, позволяет кодировать вложенные структуры (привет, INI);</p></li><li><p>TOML относительно прост и парсится без хитростей (привет, YAML),</p></li><li><p>синтаксис TOML легко читаем, поддерживает комментарии и не имеет нюансов вроде ошибок от далёких скобок и лишних запятых (привет, JSON).</p></li></ul><p>TOML, согласно <a href="https://toml.io/en/v1.1.0" rel="noopener noreferrer nofollow">спецификации</a>, "стремится быть минимальным форматом для файлов конфигурации, который легко читается благодаря очевидной семантике". С "минимальностью" языка в принципе можно поспорить — там и отдельные типы для даты/времени (4 штуки, 3 из них имеют варианты синтаксиса), и сахар в числовых литералах вроде <code>0xFF00_0000</code>, и непростой синтаксис для ключей (чтобы допускать и сочетать простые ключи, составные ключи, произвольные ключи в кавычках).</p><p>Но вот что я совершенно не ожидал и проглядел, когда выбирал TOML основным форматом для человеко-редактируемых структур данных в своём проекте, — что <strong>в TOML нет <code>null</code></strong>. Вообще. Это осознанное решение создателей языка. Разные аргументы против <code>null</code>, прозвучавшие за это время:</p><ul><li><p>"<em>Если значение не определено, пару ключ-значение просто нужно не указывать.</em>" <em>Нужно</em>, не <em>можно</em>.</p><p>Случаи, когда в приложении значение по умолчанию отличается от <code>null</code>, игнорируются.</p></li><li><p>"<em><code>null</code> создаёт неоднозначность между значением <code>null</code> и отсутствием пары ключ-значение.</em>"</p></li><li><p>"<em>Если мы разрешим <code>null</code>, это повлияет на всю систему типов; например, целое число теперь будет не "целое число", а "</em><a href="https://github.com/toml-lang/toml/issues/146#issuecomment-14217902" rel="noopener noreferrer nofollow"><em>целое число или null</em></a><em>".</em>"</p><p>???</p></li><li><p>"<em>Если очень нужно, вы можете использовать специальные значения по своему усмотрению: <code>0</code>, <code>-1</code>, <code>""</code>, <code>"null"</code>, <code>[]</code>, <code>{}</code>. Ещё можно использовать дополнительные поля для обозначения наличия значения (типа <code>{ present=true, value=100500 }</code>, или <code>null_values = ["key_a", "key_c"]</code>).</em>"</p><p>Гора разнообразных костылей с барского плеча, на пустом месте добавляющие кучу боли для интероперабельности, спасибо.</p></li></ul><p>Ответственных за спецификацию <a href="https://github.com/toml-lang/toml/issues/30" rel="noopener noreferrer nofollow">годами</a> <a href="https://github.com/toml-lang/toml/issues/802" rel="noopener noreferrer nofollow">просят</a> <a href="https://github.com/toml-lang/toml/discussions/1037" rel="noopener noreferrer nofollow">добавить</a> <code>null</code> в будущей версии, ответственные ушли в глухой отказ.</p><p>Для меня наличие <code>null</code> в подобном языке было само собой разумеющимся, я даже не думал об этом, когда разрабатывал сложный проект на Python, где файлы TOML пишутся и читаются человеком, пишутся и читаются программами, сливаются друг с другом. Когда я наконец-то напоролся на практике на отсутствие <code>null</code> (при слиянии конфигураций), менять всё на YAML было уже слишком поздно, а костыли добавили бы слишком много сложности.</p><p>Поэтому я форкнул пару библиотек и добавил в них поддержку <code>null</code> самым очевидным образом, не нуждающимся даже в примерах — просто литерал <code>null</code> на стороне TOML соответствует <code>None</code> на стороне Python.</p><ul><li><p><a href="https://pypi.org/project/tomli-null/" rel="noopener noreferrer nofollow">tomli-null</a> — парсер, форк <a href="https://pypi.org/project/tomli/" rel="noopener noreferrer nofollow">tomli</a> (<code>tomli</code> включена в Python 3.11 как <a href="https://docs.python.org/3/library/tomllib.html" rel="noopener noreferrer nofollow">tomllib</a>);</p></li><li><p><a href="https://pypi.org/project/tomli-w-null/" rel="noopener noreferrer nofollow">tomli-w-null</a> — генератор, форк <a href="https://pypi.org/project/tomli-w/" rel="noopener noreferrer nofollow">tomli-w</a>.</p></li></ul><p>(100% покрытие тестами прилагается само собой.)</p><p>P.S. PyPI очень... <em>интересным </em>образом показывает информацию об авторах из пакета, несколько раз напоролся, пока пытался убрать автора оригинальных библиотек из поля "для связи" на сайте.</p> <a href="https://habr.com/ru/posts/1030730/?utm_campaign=1030730&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Sat, 02 May 2026 20:32:20 GMT</pubDate>
    <dc:creator><![CDATA[asrelo]]></dc:creator>
      
      <category><![CDATA[TOML]]></category><category><![CDATA[Python]]></category><category><![CDATA[конфигурация]]></category><category><![CDATA[open source]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @hatman — Проектирование API — 30.04.2026 15:51]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1030142/</guid>
    <link>https://habr.com/ru/posts/1030142/?utm_campaign=1030142&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<figure class=""><img src="https://habrastorage.org/webt/f2/83/c7/f283c7b617b369a83c9f8f26faf785d4.png"></figure><p>Финальная книга на тему разработки публичных API: «API как искусство: разработка, поддержка, интеграция» [2025] — Сергей Константинов. Книга бывшего руководителя сервиса «Яндекс.Карты», которую можно назвать самой практичной, самой приземлённой и наиболее требовательной к квалификации читателя.</p><p>В отличие от книг, про которые я писал в предыдущих постах, она начинается сразу с девелоперской точки зрения. Как хороший архитектор, автор предлагает различные варианты реализации API, а потом говорит: «Миша, всё фигня, давай по новой» — и объясняет, почему.</p><p>Книжку нужно читать внимательно, так как автор часто приводит ссылки на свои же рассуждения и выводы из предыдущих глав. Однако для ленивого читателя он приводит методички по различным моментам проектирования API — например, «Вот 30 правил хорошего API», — тщательно поясняя, почему считает именно так.</p><p>Из интересного: поскольку автор работал в «Яндекс.Картах», он уделил целый раздел разработке SDK и UI-клиентских библиотек. Разработчикам, которые занимаются только server-side API, этот раздел, возможно, не нужен, но тем, кому это актуально, подобный материал нигде, кроме этой книги, не найти.</p><p>Отдельно хочется отметить, что автор позволяет себе язвительные ремарки по поводу некоторых решений публичных API. Эти комментарии раскрывают его большой опыт и подтверждают, что он действительно «повидал некоторое дерьмо».</p><p>Из минусов хочется сказать, что в книге не хватает теоретической базы: что такое хорошее API, какое должно быть целеполагание при его разработке и как вести документацию надлежащим образом.</p><p>Поэтому я бы сказал так: первой книгой по проектированию API стоит читать «Проектирование веб-API» от Лоры Арно. А уже на эту базу — книгу Сергея с большим количеством практических примеров и кейсов из реальной жизни.</p><p>Это хорошая книга, которая заслуживает покупки и прочтения!</p><p>P. S. Возможно, в следующих изданиях книги стоит части 4 и 6 перенести в начало, вместо их текущей позиции. Тогда книжка будет идти от простого к сложному более предсказуемо.</p> <a href="https://habr.com/ru/posts/1030142/?utm_campaign=1030142&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 30 Apr 2026 12:51:54 GMT</pubDate>
    <dc:creator><![CDATA[hatman]]></dc:creator>
      
      <category><![CDATA[api]]></category><category><![CDATA[книги]]></category><category><![CDATA[обучение]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @zdanevich-vitaly — Rust (+4) — 30.04.2026 08:28]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1029870/</guid>
    <link>https://habr.com/ru/posts/1029870/?utm_campaign=1029870&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Я давний пользователь <a href="https://github.com/vitaly-zdanevich/geeknote" rel="noopener noreferrer nofollow">Geeknote</a> - это cli для <a href="https://evernote.com/" rel="noopener noreferrer nofollow">Evernote</a>. Несколько лет назад проект застрял на втором Питоне - и никто не хотел его портировать на третий. Я ждал что кто-то займётся этим - но пришлось самому - так что я форкнул, починил, и даже связался с Виталием Роденко - одним из создателей Geeknote и администратора на PyPI, чтобы получить право туда пушить. За десяток лет я видел как Geeknote переходил из одни руки в другие - и как он забрасывался, и через несколько лет находился новый мантейнер. Было забавно осознать, что теперь и я стал мантейнером программного продукта, который всегда установлен на все мои машины.</p><p>Как и большинство из нас, я стал пробовать LLM - как замену поиску, для анализа кодов, советов, и вот наконец - несколько проектов - даже не читая кода - только давая команды и тестируя результат. Известная шутка - переписать на Rust. Почему бы у нет - Geeknote не велик - около пяти тысяч строк на Питоне, что я и попробовал - через <strong>Codex gpt-5.5</strong>. Несколько десятков итераций, "добавь это", "добавь то", "пропали теги", "пропала анимация" - и за несколько часов я получил рабочий Geeknote на Rust, назвал его <a href="https://gitlab.com/vitaly-zdanevich/reeknote" rel="noopener noreferrer nofollow">reeknote</a>. </p><p>Результат: быстрее работает, раза в два. Теперь буду им пользоваться.</p><p>P.S.: CLI хороши для перфоманса, SSH, быстрее разработка без GUI, а ещё похоже и для LLM - можно попросить сохранить ответ в Evernote. Как и прочие интеграции, в том числе в скриптах.</p> <a href="https://habr.com/ru/posts/1029870/?utm_campaign=1029870&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 30 Apr 2026 05:28:25 GMT</pubDate>
    <dc:creator><![CDATA[zdanevich-vitaly]]></dc:creator>
      
      <category><![CDATA[evernote]]></category><category><![CDATA[geeknote]]></category><category><![CDATA[cli]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @alfredlao — Развитие стартапа — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1029832/</guid>
    <link>https://habr.com/ru/posts/1029832/?utm_campaign=1029832&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>MVP в стартапе давно мёртв...</strong></p><p>Интернет полон буллшита на тему MVP. Вам продали удобную сказку. Сделай как-нибудь. Пользователь схавает. Главное, протестируешь гипотезу. Нет. Не схавает! Уже лет пять как это не работает.</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/207/de2/d5a/207de2d5ac566b6752b10b7389e979fb.png" width="1983" height="793"></figure><p>Пользователь в 2026 году живет в мире, где у него в кармане продукты уровня Apple, Spotify, Telegram и ИИ-ассистенты, которые угадывают ваши мысли быстрее, чем вы их сами формулируете.</p><p>И вы правда думаете, что пользователь будет разбираться в вашем кривом MVP, чтобы помочь вам протестировать идею? Пользователь не инвестор. Не ваш кофаундер. Он вам ничего не должен. Он быстро закрывает ваше приложение, чтобы забыть о нем как о страшном сне из детства.</p><blockquote><p><em>Ищу таких как ты, опытных&nbsp;</em><strong><em>backend и full-stack разработчиков, а также</em></strong><em>&nbsp;</em><strong><em>performance &amp; growth маркетологов и продактов</em></strong><em>, которые хотят выходить за границы скучных простых задач. В нашей стартап-студии все партнеры, все профессионалы, работаем на результат. Я более 20 лет занимаюсь разработкой и выводом на рынок новых продуктов. Напиши мне, если интересно поучаствовать.</em></p></blockquote><p>То, что вы называете MVP это чаще всего не Minimum Viable Product. Это&nbsp;<strong>Minimum Viable Excuse</strong>.</p><p>Оправдание, почему:</p><ul><li><p>нет нормального UX</p></li><li><p>нет ясной ценности</p></li><li><p>нет ощущения "хочу вернуться"</p></li><li><p>нет даже базового уважения к вниманию пользователя</p></li></ul><p>Реальность неприятная, но как есть.&nbsp;<strong>Вы не тестируете идею. Вы тестируете, насколько пользователи готовы терпеть ваш плохой продукт.</strong></p><p>И когда они не терпят, вы делаете гениальный вывод: Гипотеза не зашла.</p><p><strong>Чтобы быстро тестировать гипотезы, нужно сначала сделать нормально! А вы умеете делать нормально??? Один из тысячи может и умеет!</strong></p><p>И помимо всего прочего это дороже. И да, это дольше! Но это единственный способ получить честный сигнал от рынка. Все остальное это тестирование на собственных иллюзиях.</p><p>И да, вы можете продолжать делать быстрые MVP и говорить, что рынок не готов. Многие правда и до MVP то не доезжают. Я собираю команды, у которых такие осечки бывают лишь в одном из десяти случаев. Так что если надоело жевать зеленую траву, приходи и двинемся дальше вместе.</p> <a href="https://habr.com/ru/posts/1029832/?utm_campaign=1029832&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 30 Apr 2026 04:26:00 GMT</pubDate>
    <dc:creator><![CDATA[alfredlao]]></dc:creator>
      
      <category><![CDATA[mvp]]></category><category><![CDATA[ai]]></category><category><![CDATA[стартапы]]></category><category><![CDATA[акселератор]]></category><category><![CDATA[идея]]></category><category><![CDATA[разработка]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @sergeytolkachyov — Joomla — 29.04.2026 16:27]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1029674/</guid>
    <link>https://habr.com/ru/posts/1029674/?utm_campaign=1029674&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>WT Max библиотека для интеграции с Joomla.</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/3f6/8ee/860/3f68ee860daae24d77dcd38ae777e718.png" width="1280" height="722"></figure><p>Вышла Joomla-библиотека для API мессенджера MAX с системным плагином для настроек и диагностики подключения. Библиотека предназначена для разработчиков.</p><p>Расширение является Joomla-обёрткой над  самостоятельным PHP Composer-пакетом <code>Webtolk\Max</code>. PHP SDK разрабатывалось с учётом стандартов PSR и полностью не зависит от какого-либо фреймворка и/или пакета.</p><p>Библиотека может использоваться для:</p><ul><li><p>отправки сообщений через бота в мессенджере Макс с сайта (разного рода уведомления),</p></li><li><p>отправки контента с сайта в мессенджер - видео, аудио, картинки</p></li><li><p>кнопок-ссылок к сообщениям</p></li><li><p>приёма и обработки реакций на эти кнопки</p></li><li><p>обработки ответов в чате / личных сообщениях</p></li><li><p>работы с пользователями, чатами, статусами “печатает/просмотрено” и т.д.</p></li></ul><p>PHP SDK работает с:</p><ul><li><p>PHP 8.1+</p></li><li><p>любым PSR-18 HTTP-клиентом (Guzzle, Symphony Http client, Joomla HTTP и другие)</p></li><li><p>стандартом PSR-17 RequestFactoryInterface и StreamFactoryInterface</p></li><li><p>любым PSR-3 логгером</p></li></ul><p>Joomla-библиотека интегрирует в ваш сайт PHP SDK, использующий инструменты ядра Joomla: http клиент, фабрики PSR-17, стандартный PSR-3 логгер из ядра Joomla. </p><pre><code class="php">&lt;?php

declare(strict_types=1);

use Webtolk\Wtmax\Wtmax;

defined('_JEXEC') or die;
// В Joomla отдаёт подготовленный объект Webtolk\Max\Max 
// с фабриками, HTTP-клиентом и штатным логгером Joomla
$max = Wtmax::getInstance();

$bot = $max-&gt;bots()-&gt;me();

echo $bot-&gt;getId();
echo $bot-&gt;getUsername();</code></pre><p>В составе Joomla-библиотеки собирается коллекция полей Joomla Form. В частности сейчас в ней есть стандартное поле выбора чата из списка доступных чатов для бота в Максе в модальном окне (поле ModalSelect).</p><ul><li><p><a href="https://github.com/WebTolk/Max-platform-PHP-SDK" rel="noopener noreferrer nofollow">PHP SDK, Composer-пакет</a> </p></li><li><p><a href="https://web-tolk.ru/dev/biblioteki/wt-max-platform" rel="noopener noreferrer nofollow">Joomla-обёртка WT Max</a></p></li></ul> <a href="https://habr.com/ru/posts/1029674/?utm_campaign=1029674&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 29 Apr 2026 13:27:01 GMT</pubDate>
    <dc:creator><![CDATA[sergeytolkachyov]]></dc:creator>
      
      <category><![CDATA[joomla]]></category><category><![CDATA[max]]></category><category><![CDATA[макс]]></category><category><![CDATA[мессенджер мax]]></category><category><![CDATA[api]]></category><category><![CDATA[php sdk]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @dugalb — Rust (+1) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1029344/</guid>
    <link>https://habr.com/ru/posts/1029344/?utm_campaign=1029344&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Rust GUI: поверхностный обзор и шпаргалка</strong></p><p>Это не&nbsp;туториал, а&nbsp;карта‑шпаргалка, чтобы не&nbsp;потеряться среди десятка библиотек и&nbsp;быстро понять, куда копать под&nbsp;свою задачу.</p><p>Перед выбором любого фреймворка&nbsp;— откройте <a href="http://areweguiyet.com" rel="noopener noreferrer nofollow">areweguiyet.com</a>. Там видно зрелость,&nbsp;лицензию, платформы и число скачиваний. Лучшая страховка от «библиотека умерла через месяц».</p><p>Чтобы не&nbsp;путаться в&nbsp;терминах, стоит уточинить, в&nbsp;чем разница архитектурных подходов.</p><p><strong>Immediate Mode</strong> (пересобирается каждый кадр). Суть: «Опиши, что&nbsp;должно&nbsp;быть на&nbsp;экране прямо сейчас». Не «создай кнопку и запомни её», а&nbsp;линейная пересборка каждый кадр: «если сейчас здесь нажали&nbsp;— сделай действие, и в&nbsp;любом случае нарисуй кнопку вот здесь».</p><p>— egui, Ply, Rust bindings dear imgui</p><p><strong>Retained Mode</strong> (дерево виджетов в&nbsp;памяти). Суть: «Измени то, что&nbsp;уже есть». Один раз описывается структуру UI (создал кнопку, положил в&nbsp;layout), а&nbsp;потом меняются её свойства: текст, цвет, видимость. Кнопка «живёт» в&nbsp;памяти как&nbsp;объект.</p><p>— GTK и FLTK.</p><p><strong>Reactive </strong>(реактивный режим). Суть: «UI&nbsp;— это функция от&nbsp;состояния». UI описывается как&nbsp;отображение некоторого состояния. Когда состояние меняется, фреймворк сам пересчитывает, что&nbsp;именно в&nbsp;UI нужно обновить.</p><p>— Azul, Cushy, Floem, Ribir, Yew, Xilem, Dioxus (использует Virtual DOM), Leptos.</p><p><strong>Hybrid Mode</strong> (декларативный API + оптимизированный retained‑рендеринг)</p><p>— GPUI(Zed)</p><p>Теперь&nbsp;— к&nbsp;конкретным фреймворкам, которые сейчас на&nbsp;слуху.</p><p><a href="https://github.com/tauri-apps/create-tauri-app" rel="noopener noreferrer nofollow">Tauri</a>. Аналог Electron. Бэкенд пишется на&nbsp;Rust, фронтенд&nbsp;— с&nbsp;помощью JS фреймворков (React, Vue, Svelte). Но архитектура платформы не ограничивается этим стеком. Благодаря поддержке WebAssembly можно использовать и полностью Rust-решения. Например, фреймворк <a href="https://github.com/leptos-rs/leptos" rel="noopener noreferrer nofollow">Leptos </a>компилируется в WASM-модуль и запускается во встроенном WebView Tauri.</p><p><a href="https://github.com/emilk/egui" rel="noopener noreferrer nofollow">Egui</a>. Не&nbsp;требует отдельного связывания UI с&nbsp;моделью данных. Отрисовка интерфейса описывается в&nbsp;коде&nbsp;линейно, без&nbsp;колбэков и событий, что&nbsp;ускоряет прототипирование. При этом Egui поддерживает адаптивный рендеринг.</p><p><a href="https://github.com/iced-rs/iced" rel="noopener noreferrer nofollow">Iced</a>. Кроссплатформенная библиотека, вдохновленная Elm Architecture (TEA). Типобезопасность и простота использования заявляются как&nbsp;ключевые принципы.Проект находится в&nbsp;активной разработке.</p><p><a href="https://github.com/DioxusLabs/dioxus" rel="noopener noreferrer nofollow">Dioxus</a>. Фреймворк, похожий на&nbsp;React. Использует собственный Virtual DOM и макрос <code>rsx!</code>, позволяя писать HTML‑подобный код прямо внутри Rust. Dioxus Native: экспериментальный рендерер на базе WGPU, отрисовывает дерево компонентов напрямую, без использования WebView или CSS‑движка. UI‑логика и бэкенд выполняются в одном процессе, в отличие от&nbsp;Tauri, где фронтенд и бэкенд разделены.</p><p><a href="https://github.com/slint-ui/slint" rel="noopener noreferrer nofollow">Slint</a>. Фреймворк, нацеленный на&nbsp;легковесность, вплоть до&nbsp;использования на&nbsp;встраиваемых устройствах. Для&nbsp;описания интерфейса используется собственный язык разметки (<code>.slint</code>), для&nbsp;кода доступны биндинги к&nbsp;Rust, C++ и JavaScript. Предлагает инструмент Live‑Preview для&nbsp;визуальной разработки.</p><p><a href="https://github.com/linebender/xilem" rel="noopener noreferrer nofollow">Xilem</a>. Экспериментальный фреймворк от&nbsp;команды Linebender на&nbsp;основе оригинальной архитектуры (Xilem architecture), вдохновленной Elm, SwiftUI и Flutter. Разрабатывается как&nbsp;преемник библиотеки Druid, работа над которой&nbsp;была прекращена.</p><p><strong>Следующий шаг.</strong></p><p>Выбор фреймворка по&nbsp;документации и отзывам&nbsp;— это половина дела. Вторая половина&nbsp;— попробовать его руками на&nbsp;минимальном примере. </p><p>Многие Rust‑фреймворки требуют системных библиотек для&nbsp;графики и оконных систем. Настройка «на голой» машине может занять ощутимое время и зависеть от&nbsp;ОС. Чтобы не&nbsp;разворачивать отдельное окружение под&nbsp;каждый вариант, удобно использовать dev‑контейнеры в&nbsp;VS Code. Контейнер фиксирует эту настройку один раз, и она работает одинаково на&nbsp;Windows, macOS и Linux (с учётом специфики Docker).</p><p>Преимущества контейнеров:</p><ul><li><p>Изолированное, воспроизводимое окружение для&nbsp;каждого фреймворка.</p></li><li><p>Отсутствие конфликтов версий и зависимостей на&nbsp;основной машине.</p></li><li><p>Возможность переключаться между фреймворками параллельно, не&nbsp;теряя контекст.</p></li></ul><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/4a2/25c/506/4a225c506c1c11799ebe4ffdc86d95e4.png" alt="проверка интерфейса" title="проверка интерфейса" width="832" height="603"><div><figcaption>проверка интерфейса</figcaption></div></figure><p>Этот подход позволяет за&nbsp;пару часов собрать минимальные приложения в 3–4&nbsp;фреймворках и сравнить ощущения от&nbsp;кода, скорость сборки, поведение окна, качество документации к&nbsp;старту.</p> <a href="https://habr.com/ru/posts/1029344/?utm_campaign=1029344&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 28 Apr 2026 23:06:46 GMT</pubDate>
    <dc:creator><![CDATA[dugalb]]></dc:creator>
      
      <category><![CDATA[rust]]></category><category><![CDATA[ui]]></category><category><![CDATA[tauri]]></category><category><![CDATA[egui]]></category><category><![CDATA[iced]]></category><category><![CDATA[dioxus]]></category><category><![CDATA[slint]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @dugalb — Интерфейсы (+2) — 28.04.2026 23:25]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1029316/</guid>
    <link>https://habr.com/ru/posts/1029316/?utm_campaign=1029316&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Что&nbsp;такое magicgui и зачем он нам?</strong></p><p><strong><a href="https://github.com/pyapp-kit/magicgui" rel="noopener noreferrer nofollow">magicgui</a> </strong>— это Python‑библиотека для&nbsp;быстрой разработки простых интерфейсов. Если нужен сложный интерфейс с&nbsp;кастомной вёрсткой и нестандартным поведением&nbsp;— лучше взять PyQt‑Pyside. Когда задача обернуть функцию в&nbsp;окошко за 5&nbsp;минут&nbsp;— magicgui справится.</p><p>В&nbsp;настоящее время&nbsp;<strong>magicgui</strong>&nbsp;поддерживает следующие бэкэнды:</p><ul><li><p><a href="https://www.qt.io/" rel="noopener noreferrer nofollow">Qt</a>&nbsp;(через&nbsp;<a href="https://pypi.org/project/PySide2/" rel="noopener noreferrer nofollow">PySide2</a>&nbsp;/&nbsp;<a href="https://pypi.org/project/PySide6/" rel="noopener noreferrer nofollow">PySide6</a>&nbsp;или&nbsp;<a href="https://pypi.org/project/PyQt5/" rel="noopener noreferrer nofollow">PyQt5</a>&nbsp;/&nbsp;<a href="https://pypi.org/project/PyQt6/" rel="noopener noreferrer nofollow">PyQt6</a>&nbsp;)</p></li><li><p><a href="https://ipywidgets.readthedocs.io/en/latest/" rel="noopener noreferrer nofollow">Виджеты Jupyter</a></p></li></ul><p>API организовано на&nbsp;двух уровнях:</p><figure class="bordered full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/81a/715/c93/81a715c93a49425ee6f7e71fef4a6675.png" alt="слои API magicgui" title="слои API magicgui" width="834" height="1158"><div><figcaption>слои API magicgui</figcaption></div></figure><p>Верхний уровень&nbsp;— магия типов. Декораторы <a class="mention" href="/users/magicgui">@magicgui</a>, <a class="mention" href="/users/guiclass">@guiclass</a>, автоопределение виджетов по&nbsp;аннотациям.</p><p>Нижний уровень&nbsp;— ручная сборка из&nbsp;готовых <a href="https://pyapp-kit.github.io/magicgui/widgets/" rel="noopener noreferrer nofollow">виджетов </a>(SpinBox, Slider, PushButton).</p><p><strong>Примеры работы: </strong><a href="https://pyapp-kit.github.io/magicgui/generated_examples/" rel="noopener noreferrer nofollow">https://pyapp‑kit.github.io/magicgui/generated_examples/</a></p><p><strong>Github: </strong><a href="https://github.com/pyapp-kit/magicgui" rel="noopener noreferrer nofollow">https://github.com/pyapp‑kit/magicgui</a></p> <a href="https://habr.com/ru/posts/1029316/?utm_campaign=1029316&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 28 Apr 2026 20:25:42 GMT</pubDate>
    <dc:creator><![CDATA[dugalb]]></dc:creator>
      
      <category><![CDATA[gui]]></category><category><![CDATA[ui]]></category><category><![CDATA[qt]]></category><category><![CDATA[интерфейсы]]></category><category><![CDATA[python]]></category><category><![CDATA[pyqt]]></category><category><![CDATA[pyside]]></category><category><![CDATA[jupyter]]></category><category><![CDATA[jupyter notebook]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @hatman — Проектирование API — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1028558/</guid>
    <link>https://habr.com/ru/posts/1028558/?utm_campaign=1028558&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<figure class=""><img src="https://habrastorage.org/webt/55/97/dc/5597dc858d362c7b1d96664b78b5a78c.png"></figure><p>Прочитал книжку, которую можно скорее назвать методичкой в силу её небольшого размера: «A Practical Approach to API Design» Кейта Кейси и Джеймса Хиггинботама, 2014 года. Это неплохой материал для понимания, что такое публичное API и каких принципов и паттернов стоит придерживаться при его проектировании.</p><p>Однако стоит уточнить, что книга по текущим меркам уже довольно старая — ей 12 лет. Поэтому некоторые главы посвящены рассуждениям, почему один подход лучше другого, причём эти сравнения сегодня во многом утратили актуальность: один стандарт проиграл, а другой де-факто стал общепринятым.</p><p>Кроме того, это всё же не полноценный обучающий материал, а скорее рассуждение, манифест, который призывает компании становиться API-First и придерживаться этого принципа при разработке API. При этом глава с обоснованием бизнес- и технических преимуществ разработки API остаётся более чем актуальной.</p><p>Читать этот материал в целом уже нет особого смысла, поскольку Лоре Арно в своей книге «Проектирование веб-API» прямо опирался на эту работу (и сам это указал). Поэтому лучше сразу уделить время книге Арно: в ней материал раскрыт в широком обучающем формате. К тому же книга Арно вышла в 2019 году и содержит более актуальную информацию.</p> <a href="https://habr.com/ru/posts/1028558/?utm_campaign=1028558&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 28 Apr 2026 08:03:24 GMT</pubDate>
    <dc:creator><![CDATA[hatman]]></dc:creator>
      
      <category><![CDATA[API]]></category><category><![CDATA[api]]></category><category><![CDATA[книги]]></category><category><![CDATA[обучение]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @VAGNAT — Проектирование и рефакторинг (+4) — 28.04.2026 10:43]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1028926/</guid>
    <link>https://habr.com/ru/posts/1028926/?utm_campaign=1028926&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Паттерны проектирования еще актуальны?</strong></p><p>Вокруг все чаще говорят, что ИИ скоро будет писать код за нас. Логичный вопрос — нужны ли тогда паттерны? Зачем разбираться в паттернах GoF, если нейросеть и так сгенерирует рабочий код по описанию?</p><p>У меня ощущение обратное.</p><p>Я плотно вошел в разработку в 2019 году. Переходил из 1С в .NET. Книги по паттернам GoF у меня были, но долго лежали как «книга на полке». Казалось, они оторваны от повседневных задач. Теорию вроде понимал, но не видел, где это реально применяется.</p><p>Все поменялось, когда я стал использовать ИИ как инструмент для обучения. Просил давать задачи, искать проблемы в решениях, объяснять, почему в одном месте уместен Strategy, а в другом лучше Mediator. Через практику и обсуждение паттерны перестали быть абстракцией.</p><p>Чем проще генерировать код, тем важнее понимать его форму и границы. Иначе не ускоришь разработку, а ускоришь накопление технического долга.</p><p>Из этого и вырос мой pet-project <a href="http://gofinsights.com" rel="noopener noreferrer nofollow">gofinsights.com</a>. Я делаю его тренажером по паттернам проектирования. Не просто «прочитал и забыл», а через практику, сравнение решений и постепенное распознавание типовых архитектурных ходов.</p><p>Сейчас там есть интерактивный квиз, где можно проверить базу и не перепутать Factory Method с Abstract Factory. Дальше хочу развивать проект в сторону более глубокого ИИ-разбора. Чтобы можно было не только узнавать паттерн, но и разбирать кодовые запахи, причины проблем и возможную эволюцию решений.</p><p>Как вы это видите? Паттерны проектирования все еще рабочая база для разработчика? Или с появлением ИИ они станут менее важны?</p> <a href="https://habr.com/ru/posts/1028926/?utm_campaign=1028926&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 28 Apr 2026 07:43:49 GMT</pubDate>
    <dc:creator><![CDATA[VAGNAT]]></dc:creator>
      
      <category><![CDATA[паттерны проектирования]]></category><category><![CDATA[паттерны программирования]]></category><category><![CDATA[шаблоны]]></category><category><![CDATA[тренажёр]]></category><category><![CDATA[java]]></category><category><![CDATA[python]]></category><category><![CDATA[csharp]]></category><category><![CDATA[php]]></category><category><![CDATA[go]]></category><category><![CDATA[шаблоны проектирования]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @dKosarevsky — Rust (+4) — 28.04.2026 00:08]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1028824/</guid>
    <link>https://habr.com/ru/posts/1028824/?utm_campaign=1028824&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Наконец-то поднял публичную демку Aximo на Hugging Face Spaces 🎙️</p><p>Это локальный speech-to-text API, который работает на CPU, использует Parakeet v3 и позволяет тестировать транскрибацию прямо из браузера через Swagger UI с записью с микрофона, о котором писал в одном из своих предыдущих <a href="https://habr.com/ru/posts/1026808/" rel="noopener noreferrer nofollow">постов</a>.</p><ul><li><p>демо: <a href="https://ifif-aximo.hf.space/docs" rel="noopener noreferrer nofollow">https://ifif-aximo.hf.space/docs</a></p></li><li><p>репозиторий: <a href="https://github.com/agent-axiom/aximo" rel="noopener noreferrer nofollow">https://github.com/agent-axiom/aximo</a></p></li></ul> <a href="https://habr.com/ru/posts/1028824/?utm_campaign=1028824&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 27 Apr 2026 21:08:42 GMT</pubDate>
    <dc:creator><![CDATA[dKosarevsky]]></dc:creator>
      
      <category><![CDATA[stt]]></category><category><![CDATA[api]]></category><category><![CDATA[rust]]></category><category><![CDATA[voice]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @gtosss — Искусственный интеллект (+1) — 27.04.2026 20:17]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1028742/</guid>
    <link>https://habr.com/ru/posts/1028742/?utm_campaign=1028742&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Сейчас довольно много предложений по покупке курсов о «промпт-инженеринге». Я много работал и работаю с ИИ, но ещё больше — без него (примерно в десять раз). Готов поделиться рабочим рецептом, который позволит писать мастерские промпты. Прям лучшие. Это скорее даже фундаментальный принцип.</p><p>Делюсь опытом совершенно бесплатно. Всё оказалось довольно просто. Чтобы уверенно управлять ИИ и писать сильные, работающие промпты, <strong>вы должны хорошо разбираться в том, о чём просите нейросеть</strong>. Вот такой простой и совершенно бесплатный совет — не благодарите. Надеюсь, сэкономил ваши деньги.</p><p>Еще больше дельных советов в моем <a href="https://t.me/gtosss_group" rel="noopener noreferrer nofollow">ТГ канале</a>.</p> <a href="https://habr.com/ru/posts/1028742/?utm_campaign=1028742&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 27 Apr 2026 17:17:22 GMT</pubDate>
    <dc:creator><![CDATA[gtosss]]></dc:creator>
      
      <category><![CDATA[промпт-инжиниринг]]></category><category><![CDATA[промпты]]></category><category><![CDATA[искуственный интеллект]]></category><category><![CDATA[вайбкодинг]]></category><category><![CDATA[gpt]]></category><category><![CDATA[ии]]></category><category><![CDATA[ии-агенты]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @YuriPanchul — C++ (+4) — 27.04.2026 18:59]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1028712/</guid>
    <link>https://habr.com/ru/posts/1028712/?utm_campaign=1028712&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Чернобыльское лето 1986 года, когда все киевские одноклассники разъехались по разным концам СССР подальше от радиации, было для меня супер-продуктивным в смысле изучения программирования. Я ходил в контору человека по фамилии Долина, бывшего полковника танковых войск из Донецка, который переквалифицировался в компьтеризатора украинского образования. Там я работал на компьютерах MSX Yamaha, выучил программирование на Си. Компилятор назывался ASCII C (сейчас в комментах появятся умники которые будут мне говорить, что ASCII это кодировка, а я им буду кидать ссылку что это еще и японская компания).</p><p>Долине мое увлечение Си не нравилось, он хотел чтобы я больше писал программ на Бейсике, которые он демонстрировал людям из украинских министерств и студии мультфильмов (некоторые программы были графические). Кроме графики я сделал еще например программу которая фиксировала в реальном времени действия футболистов во время матча, через нажатия клавиш наблюдателем. Контора Долины была у стадиона, оттуда доносились вопли болельщиков. Долина это показывал кому-то по спортивной линии.</p><p>В конце лета я полетел на Новосибирскую Летнюю Школу Юных Программистов, где выучил ассемблер Z80 и сделал поддержку параллельного выполнения нескольких Си функций с помощью переключения контекстов в обработчике прерывания по таймеру. С сохранением регистров в дексрипторе задачи в списке задач. За это я получил диплом первой степени. По-моему дипломы вручал академик Ершов, хотя может я путаю и мы встретились с ним в академгородке куда на тоже возили.</p><p>На школе было невероятное количество комаров, а также красивая девочка из Томска, которая мне нравилась, и ее подружка, которой нравился я. Из Украины еще был юный гений из Харькова, который постоянно спорил со мной, что персоналки фигня, а мейнфреймы - это круто. Так как я успел поработать и на мейнфреймах, споры были довольно развесистые.</p><p>Еще там я увидел первые советские программы западного качества - редактор tor(?), программу низкоуровневой работы с диском и оконный отладчик. Они были написаны на Си и ассемблере аккуратно, как примеры в западных книжках. Советский код который я видел до этого (и большинство после этого) был написан тяп-ляп. Писали эти программы местные аспиранты которые были также преподавателями школы.</p><p>Помимо этих программ я привез на флоппи-дисках со школы CP/M (хуже файловая система чем в MSX-DOS), среду Turbo Pascal, интерпретатор Lisp, компилятор Nevada Fortran, еще два компилятора Си (Aztec C и BDS C) и даже компилятор с подмножества языка Ada, который я знал теоретически, но никогда не использовал.</p><p>29 лет спустя, в 2017 году я приехал на ту же новосибирскую школу в качестве инструктора по Verilog и FPGA. Еще там был Борис Файфель который учил детей Лиспу или чему-то такому.</p> <a href="https://habr.com/ru/posts/1028712/?utm_campaign=1028712&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 27 Apr 2026 15:59:08 GMT</pubDate>
    <dc:creator><![CDATA[YuriPanchul]]></dc:creator>
      
      <category><![CDATA[Lisp]]></category><category><![CDATA[ADA]]></category><category><![CDATA[Z80]]></category><category><![CDATA[Летняя Школа Юных Программистов]]></category><category><![CDATA[ЛШЮП]]></category><category><![CDATA[Ершов]]></category><category><![CDATA[Новосибирск]]></category><category><![CDATA[Yamaha]]></category><category><![CDATA[Чернобыль]]></category><category><![CDATA[СССР]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @toxicmt — Искусственный интеллект (+2) — 27.04.2026 16:47]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1028664/</guid>
    <link>https://habr.com/ru/posts/1028664/?utm_campaign=1028664&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>AI-агент уничтожил производственную базу данных SaaS. За 9 секунд</strong></p><p>Jer Crane, основатель PocketOS, сервиса для компаний по аренде автомобилей. Агент Cursor (на базе Claude Opus) работал в staging-среде, наткнулся на ошибку credentials и сам решил "починить" проблему: удалил Railway-volume одним GraphQL-запросом.</p><p>Токен, который он нашёл в случайном файле, был создан для управления доменами. Но Railway не разграничивает права токенов: каждый из них фактически является root-доступом. Никакого подтверждения не потребовалось.</p><p>Бэкапы? Они хранились в том же volume и ушли вместе с данными. Последний восстановимый бэкап был трёхмесячной давности. Когда Jer спросил агента, почему он так поступил, тот ответил письменно и перечислил все правила безопасности, которые нарушил: угадывал вместо того, чтобы проверять, выполнил деструктивное действие без запроса, не прочитал документацию перед удалением и не спросил разрешения.</p><p>Итог: малый бизнес потерял данные клиентов за три месяца. Люди приходили в субботу забирать арендованные машины и не находили своих записей.  Главный вывод: системные промпты не могут быть единственным слоем защиты. Безопасность должна быть встроена в API, токены и обработчики деструктивных операций, а не в текст, который модель "должна прочитать и соблюдать". </p><p>Если вы используете Railway и AI-агенты в проде, сегодня хороший день проверить скоупы токенов и то, где реально хранятся ваши бэкапы</p> <a href="https://habr.com/ru/posts/1028664/?utm_campaign=1028664&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 27 Apr 2026 13:47:53 GMT</pubDate>
    <dc:creator><![CDATA[toxicmt]]></dc:creator>
      
      <category><![CDATA[нас не заменят]]></category><category><![CDATA[наймите меня]]></category><category><![CDATA[вайбкодинг]]></category><category><![CDATA[факапы]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @MaxRokatansky — Блог компании OTUS (+3) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/otus/posts/1027406/</guid>
    <link>https://habr.com/ru/companies/otus/posts/1027406/?utm_campaign=1027406&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>📝 <strong>Анонс бесплатных открытых уроков на&nbsp;неделю: 27–30&nbsp;апреля</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/dca/3dc/2e1/dca3dc2e1322e0e708a5a63c97a99dec.png" width="1800" height="980"></figure><p>Привет, коллеги! Традиционная подборка открытых онлайн‑мероприятий для&nbsp;тех, кто хочет прокачать скиллы в&nbsp;IT, управлении, аналитике и автоматизации. На&nbsp;этой неделе&nbsp;— фокус на&nbsp;архитектуру, тестирование, Computer Vision и внутреннюю кухню разработки. Всё бесплатно, но&nbsp;нужна регистрация.</p><p>📅 <strong>Расписание по&nbsp;дням</strong></p><p><strong><em><sub>Понедельник, 27&nbsp;апреля</sub></em></strong></p><ul><li><p><strong>20:00</strong>&nbsp;— <a href="https://otus.pw/2SXT/" rel="noopener noreferrer nofollow">«Рисуем в&nbsp;формате онлайн модель процесса BPMN в&nbsp;Camunda Modeler»</a></p></li><li><p><strong>20:00</strong>&nbsp;— <a href="https://otus.pw/Jji6/" rel="noopener noreferrer nofollow">«Настройка кластера Elasticsearch»</a></p></li></ul><p><strong><em><sub>Вторник, 28&nbsp;апреля</sub></em></strong></p><ul><li><p><strong>20:00</strong>&nbsp;— <a href="https://otus.pw/nssp/" rel="noopener noreferrer nofollow">«Коучинговые инструменты для&nbsp;мотивации и повышения продуктивности команды»</a></p></li><li><p><strong>20:00</strong>&nbsp;— <a href="https://otus.pw/mNNR/" rel="noopener noreferrer nofollow">«Архитектура ИИ врагов в&nbsp;играх на&nbsp;Unity»</a></p></li><li><p><strong>20:00</strong>&nbsp;— <a href="https://otus.pw/uFCm/" rel="noopener noreferrer nofollow">«Первый нагрузочный тест в&nbsp;Apache JMeter»</a></p></li><li><p><strong>20:00</strong>&nbsp;— <a href="https://otus.pw/5hME/" rel="noopener noreferrer nofollow">«Архитектура тестового фреймворка: от&nbsp;хаоса к&nbsp;стабильности»</a></p></li><li><p><strong>20:00</strong>&nbsp;— <a href="https://otus.pw/GAuB/" rel="noopener noreferrer nofollow">«Контрактные тесты в&nbsp;Kotlin: как&nbsp;подружить фронт и бэкэнд»</a></p></li><li><p><strong>20:00</strong>&nbsp;— <a href="https://otus.pw/fzRsm/" rel="noopener noreferrer nofollow">«Фоновые задачи в&nbsp;Django: работа с&nbsp;Celery»</a></p></li><li><p><strong>20:00</strong>&nbsp;— <a href="https://otus.pw/QY7h/" rel="noopener noreferrer nofollow">«Как работают современные модели компьютерного зрения „из коробки“ на&nbsp;базе популярных библиотек и фреймворков (Hugging Face, OpenCV, YOLO, Roboflow)»</a></p></li><li><p>20:00&nbsp;— <a href="https://otus.pw/2b5W/" rel="noopener noreferrer nofollow">«Почему только 5% компаний получили реальную выгоду от&nbsp;ИИ в 2025&nbsp;году?»</a></p></li></ul><p><strong><em><sub>Среда, 29&nbsp;апреля</sub></em></strong></p><ul><li><p><strong>20:00</strong>&nbsp;— <a href="https://otus.pw/fvdS/" rel="noopener noreferrer nofollow">«Деревья решений для&nbsp;задач классификации и регрессии»</a></p></li><li><p><strong>20:00</strong>&nbsp;— <a href="https://otus.pw/SdhA/" rel="noopener noreferrer nofollow">«Свой язык на&nbsp;PHP за 60&nbsp;минут»</a></p></li><li><p><strong>20:00</strong>&nbsp;— <a href="https://otus.pw/fwtC/" rel="noopener noreferrer nofollow">«Трекинг с&nbsp;подвижной камеры: алгоритмы и механика компьютерного зрения на&nbsp;роботах для&nbsp;индустриальных задач»</a></p></li><li><p><strong>20:00</strong>&nbsp;— <a href="https://otus.pw/UGDQ/" rel="noopener noreferrer nofollow">«Разрешите себе карьеру технического директора»</a></p></li><li><p><strong>20:00</strong>&nbsp;— <a href="https://otus.pw/kuMa/" rel="noopener noreferrer nofollow">«Качество C#‑кода: от&nbsp;модульных тестов к&nbsp;системному подходу»</a></p></li><li><p><strong>20:00</strong>&nbsp;— <a href="https://otus.pw/7uaS/" rel="noopener noreferrer nofollow">«Продакт‑менеджер, маркетолог и PMM&nbsp;— в&nbsp;чём разница»</a></p></li></ul><p><strong><em><sub>Четверг, 30&nbsp;апреля</sub></em></strong></p><ul><li><p><strong>19:00</strong>&nbsp;— <a href="https://otus.pw/Djggi/" rel="noopener noreferrer nofollow">«МОК‑интервью на&nbsp;позицию Руководитель Проектов»</a></p></li><li><p><strong>19:00</strong>&nbsp;— <a href="https://otus.pw/Kcyqf/" rel="noopener noreferrer nofollow">«От стратегии к&nbsp;портфелю изменений: как&nbsp;архитектор связывает цели бизнеса, инициативы и архитектурные решения»</a></p></li><li><p><strong>20:00</strong>&nbsp;— <a href="https://otus.pw/dXLyO/" rel="noopener noreferrer nofollow">«Yahoo Finance и не&nbsp;только&nbsp;— работа с&nbsp;российскими торговыми площадкам»</a></p></li><li><p><strong>20:00</strong>&nbsp;— <a href="https://otus.pw/Jq1A/" rel="noopener noreferrer nofollow">«Поиск в&nbsp;базе знаний: где векторы ошибаются, а&nbsp;графы помогают»</a></p></li><li><p><strong>20:00</strong>&nbsp;— <a href="https://otus.pw/UccOl/" rel="noopener noreferrer nofollow">«Как управлять тимлидами?»</a></p></li><li><p><strong>20:00</strong>&nbsp;— <a href="https://otus.pw/z1Ch/" rel="noopener noreferrer nofollow">«Битрикс24&nbsp;+ MAX: разработка чат‑ботов и автоматизация коммуникаций»&nbsp;</a></p></li><li><p><strong>20:00</strong>&nbsp;— <a href="https://otus.pw/o7qm/" rel="noopener noreferrer nofollow">«Планируем внедрение DevSecOps&nbsp;— что&nbsp;следует учесть?»</a></p></li></ul><blockquote><p><em>Мы перечислили 20&nbsp;открытых вебинаров на&nbsp;эту неделю. Если вы не&nbsp;нашли в&nbsp;расписании тему, которая нужна именно вам,&nbsp;— загляните в </em><a href="https://otus.pw/r9iP3/" rel="noopener noreferrer nofollow"><em>полный календарь</em></a><em> </em></p></blockquote> <a href="https://habr.com/ru/posts/1027406/?utm_campaign=1027406&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 27 Apr 2026 07:20:26 GMT</pubDate>
    <dc:creator><![CDATA[MaxRokatansky (OTUS)]]></dc:creator>
      
      <category><![CDATA[вебинары]]></category><category><![CDATA[IT-обучение]]></category><category><![CDATA[архитектура ПО]]></category><category><![CDATA[тестирование]]></category><category><![CDATA[Apache JMeter]]></category><category><![CDATA[Kotlin]]></category><category><![CDATA[Django Celery]]></category><category><![CDATA[компьютерное зрение]]></category><category><![CDATA[DevSecOps]]></category><category><![CDATA[Elasticsearch]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @hatman — Проектирование API — 26.04.2026 23:45]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1028254/</guid>
    <link>https://habr.com/ru/posts/1028254/?utm_campaign=1028254&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<figure class=""><img src="https://habrastorage.org/webt/17/82/9f/17829f64a93dd1a6f3c984d91198e20d.png"></figure><p>Прочитал книжку «API Design Patterns» от бывшего разработчика Google — JJ Geewax, и это, на удивление, полностью ненужная книжка.</p><p>По названию вы можете подумать, что это книга поможет вам проектировать какое-то публичное API либо как-то выстроить эффективное взаимодействие для внутреннего API, но фактически это максимально обзорная книжка, где намешано куча всего — начиная от REST и заканчивая проектированием связей в базе данных и политикой ретраев.</p><p>Особенно доставляет, что на большинство вопросов автор приводит несколько подходов, но не даёт никакого обоснования, где и когда нужно применять тот или иной подход. «Просто есть несколько вариантов — выбирай мудро» (с).</p><p>По самому предложенному варианту API тоже есть вопросы, ибо за свою 12-летнюю карьеру и знакомство с множеством реализаций API я ни разу не видел того, что предложил автор. Возможно, это внутренняя штука от Google, которая не стала широко используемой, но в Google её используют.</p><p>Ну и самое главное — в книге нет никакой целостности. Словно автор просто брал какую-то тему, писал про неё 6–8 страничек, потом брал новую тему и снова писал 6–8 страничек. И какой-то связи между этими главами нет.</p><p>В общем, не нужно тратить время на эту книжку. Книжка из моего предыдущего поста была в разы лучше и структурированнее.</p> <a href="https://habr.com/ru/posts/1028254/?utm_campaign=1028254&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Sun, 26 Apr 2026 20:45:59 GMT</pubDate>
    <dc:creator><![CDATA[hatman]]></dc:creator>
      
      <category><![CDATA[проектирование api]]></category><category><![CDATA[api]]></category><category><![CDATA[книги]]></category><category><![CDATA[образование]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @PechoraDev — PHP (+2) — 26.04.2026 22:32]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1028250/</guid>
    <link>https://habr.com/ru/posts/1028250/?utm_campaign=1028250&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>BloggyCms v1.0.0-rc.4</strong></p><p>Наконец-то спустя почти год и два месяца моя CMS-ка для ведения блога получила более менее внятный релиз-кандидат, в котором ошибок осталось не так много, и в принципе система уже легко ставится на хостинг и управляется. </p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/117/0bb/0ed/1170bb0ed00762e69fb1686986fa07af.png" alt="Дашборд системы" title="Дашборд системы" width="1025" height="785"><div><figcaption>Дашборд системы</figcaption></div></figure><p>Впереди - куча оптимизации, например вынесение всех форм шаблона админки в контроллеры, и последующий их рендеринг через render_form(). Данные контроллеров в json и так далее. </p><p>Но - текущая версия движка с последующими обновлениями уже не сломается, как это было в первых релизных версиях. </p><p>Ну и самое главное - официальный сайт. Как оказалось - это одна из тех задач, которая весьма объемна и кропотлива - это и документация, и каталог дополнений с API для разработчиков и еще много-много чего. </p><p>Приглашаю к тестированию: <a href="https://github.com/pechoradev/BloggyCms" rel="noopener noreferrer nofollow">https://github.com/pechoradev/BloggyCms</a></p><p>Также буду рад видеть новых контрибьюторов CMS. </p> <a href="https://habr.com/ru/posts/1028250/?utm_campaign=1028250&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Sun, 26 Apr 2026 19:32:08 GMT</pubDate>
    <dc:creator><![CDATA[PechoraDev]]></dc:creator>
      
      <category><![CDATA[php]]></category><category><![CDATA[cms]]></category><category><![CDATA[bloggycms]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @passimx — Учебный процесс в IT (+3) — 25.04.2026 08:40]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1027754/</guid>
    <link>https://habr.com/ru/posts/1027754/?utm_campaign=1027754&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>TON Smart Contracts: базовый минимум за 5 минут</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/a58/b28/926/a58b28926e62ed0b20c9887a94881e03.jpeg" width="1280" height="759"></figure><p>Если бы я наткнулся на эту статью в самом начале работы с блокчейном ТОН, это бы сэкономило мне кучу времени на понимание архитектуры и принципов работы смарт контрактов.</p><p><strong>Что такое смарт контракт с точки зрения разработчика.</strong></p><p>Я постараюсь уберечь вас от терминологии блокчейна, вместо этого на пальцах показать из чего состоит смарт контракт и как его собрать. Если говорить совсем просто, то смарт контракт - это ячейка в памяти, хранящая в себе:</p><ul><li><p>Адрес</p></li><li><p>Баланс</p></li><li><p>Любые данные, которые вы туда запишите</p></li><li><p>Код смарт контракта</p></li><li><p>Текущий статус смарт контракта</p></li></ul><p>Ну или если перевести вышесказанное в код, то:</p><pre><code class="typescript">class SmartContract{ 
   readonly address: string; 
   readonly balance: number; 
   readonly code: string; 
   readonly status: 'uninitialized' | 'active' | 'frozen'; 

   storage: object; 
   ... 
}
</code></pre><p><strong>Плавное погружение...</strong></p><p>Представьте, вы написали код класса на своем любимом языке программирования, как полагается, с полями и методами, и превратили этот код в строку.&nbsp;<strong>Code</strong>&nbsp;- это и есть код вашего смарт контракта. Он будет выполняться в блокчейне. Точкой входа в таком коде будет метод&nbsp;<strong>onInternalMessage</strong>&nbsp;или&nbsp;<strong>onExternalMessage</strong>. Чтобы состояние полей класса можно было сохранять и перезаписывать, к смарт контракту прилагается объект&nbsp;<strong>Storage</strong>&nbsp;, в котором хранятся значения ваших полей.</p><p>При сохранении смарт контракта в блокчейн вы отправляете&nbsp;<strong>{ code, data }</strong>&nbsp;, где&nbsp;<strong>code</strong>&nbsp;- это код вашего смарт контракта,&nbsp;<strong>data</strong>&nbsp;- начальные данные. По этим двум полям вычисляется будущий адрес смарт контракта:&nbsp;<strong>address = hash({ code, data })</strong>. По этому адресу будет доступен ваш смарт контракт в блокчейне ТОН. На него можно совершать переводы, просматривать историю транзакцию, с него может переводить средства и вызывать другие смарт контракты.</p><p><strong>Как происходит деплой смарт контракта.</strong></p><p>Каждый смарт контракт платит немного комиссии по факту своего существования, в пример вспоминается налог на недвижимость. Чем больше жилплощадь - тем больше налог. Но в рамках ТОН вы платите за количество данных, которое хранит ваш смарт контракт, включая сам код вашего смарт контракта. Поэтому при создании на нем должно лежать как минимум чуть-чуть ТОН(как правило копейки). Создать смарт контракт можно 2 способами:</p><p>1) Другой смарт контракт делает перевод ТОН, прикрепляя код вашего смарт контракта вместе с начальными значениями(data) в поле&nbsp;<strong>Init = { code, data }</strong>. Блокчейн видит в переводе это поле и автоматически делает деплой. Статус смарт контракта становится "active".</p><p>2) Другой смарт контракт так же делает перевод ТОН, но только не прикрепляя ничего. В таком случае средства останутся висеть на адресе пустого смарт контракта, который будет выглядеть примерно так:</p><pre><code class="typescript">{ 
   "address": "401bf...3004", 
   "balance": 3000, 
   "code": "", 
   "storage": {}, 
   "status": "uninitialized" 
}</code></pre><p>Он ждет внешнее сообщение, где в него передадут код и начальные данные таким образом, чтобы&nbsp;<strong>address = hash({ code, data })</strong>, только тогда он сохранит код и сможет выполняться. Для вызова внешнего сообщения используется обычное API, где передается адрес и&nbsp;<strong>Init = { code, data }</strong>&nbsp;. Запрос сначала попадет в блокчейн, после чего при совпадении адреса&nbsp;<strong>address = hash({ code, data })</strong>&nbsp;произойдет деплой, и статус станет "active".</p><p><strong>Заключение</strong></p><p>В этой статье мы с вами закрепили азы архитектуры блокчейна ТОН, где каждый адрес является адресом смарт контракта. Разобрали структуру и механику создания. Рады вашему фидбеку или вопросам! Следите за нашими анонсами и новостями в&nbsp;<a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Ft.me%2Fpassimx_chanel&amp;postId=2872558" rel="noopener noreferrer nofollow">Telegram</a>.</p> <a href="https://habr.com/ru/posts/1027754/?utm_campaign=1027754&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Sat, 25 Apr 2026 05:40:01 GMT</pubDate>
    <dc:creator><![CDATA[passimx]]></dc:creator>
      
      <category><![CDATA[смарт-контракты]]></category><category><![CDATA[блокчейн]]></category><category><![CDATA[введение]]></category><category><![CDATA[ton]]></category><category><![CDATA[toncoin]]></category><category><![CDATA[ton blockchain]]></category><category><![CDATA[smartcontracts]]></category><category><![CDATA[blockchain]]></category><category><![CDATA[разработка]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @Xronofag — Искусственный интеллект — 24.04.2026 21:47]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/1027708/</guid>
    <link>https://habr.com/ru/posts/1027708/?utm_campaign=1027708&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>DeepSeek V4: 8 технических инноваций, de-NVIDIAfication и что это значит для рынка</p><p>Вчера OpenAI выпустил GPT-5.5. Сегодня DeepSeek выложил V4 – открытые веса, MIT-лицензия, 1М токенов контекста. Тайминг, конечно...</p><p>8 технических инноваций</p><p>Техническое описание V4 впечатляет не столько отдельными решениями, сколько&nbsp;<strong>плотностью инноваций</strong>&nbsp;– DeepSeek упаковал в один релиз больше новых техник, чем большинство лабораторий выпускают за год. Не все из них обязательно окажутся одинаково эффективными, но уровень инженерной амбиции – зашкаливающий.</p><p>1. Гибридное внимание (CSA + HCA)</p><p>Классический механизм Attention был серьёзно доработан. Теперь используется комбинация&nbsp;<strong>Compressed Sparse Attention</strong>&nbsp;и&nbsp;<strong>Heavily Compressed Attention</strong>, заменившая Multi-head Latent Attention из V3 и DeepSeek Sparse Attention из V3.2. У этого есть свои ньюансы и "цена". <a href="https://t.me/turboproject/3991" rel="noopener noreferrer nofollow">Эксперты пишут</a>, что это может серьезно влиять на применимость модели в задачах с легаси кодом, так как компрессия контекста будет приводить к тому, что Дипсик 4 сможет корректно работать только с тем, кодом, который написал сам, а на легаси могут быть сюрпризы.</p><p>Результат: на окне в 1 миллион токенов модель потребляет лишь&nbsp;<strong>27% вычислений</strong>&nbsp;и&nbsp;<strong>10% памяти</strong>&nbsp;(KV-кэша) по сравнению с V3.2. Читать целые кодовые базы и книги стало экстремально дешево.</p><p>2. Оптимизатор Muon на триллионном масштабе</p><p>Индустрия привыкла к оптимизатору AdamW – он де-факто стандарт для обучения трансформеров. DeepSeek перевёл большую часть параметров на&nbsp;<strong>Muon</strong>&nbsp;– это первый публично известный случай применения Muon на модели масштаба 1.6T параметров.</p><p>Muon дал более быструю сходимость и стабильность при обучении гигантской MoE-архитектуры. Ранее он валидировался только на существенно меньших масштабах.</p><p>3. Гиперконнекции (mHC)</p><p>Классические остаточные связи (residual connections) между слоями нейросети были заменены на&nbsp;<strong>Manifold-Constrained Hyper-Connections</strong>. С помощью проекции на многообразие Биркгофа через итерации Синкхорна–Кноппа они устранили риск того, что сигналы "взорвутся" при обучении очень глубокой сети – проблему, которая убивала предыдущие попытки сделать обучаемые остаточные связи.</p><p>Накладные расходы: всего ~6.7% дополнительных вычислений. Техника была впервые опубликована DeepSeek в январе 2026 года.</p><p>4. Слияние знаний через On-Policy Distillation (OPD)</p><p>Вместо того чтобы в конце обучать модель всему одновременно (что приводит к размыванию компетенций), авторы пошли двухэтапным путём:</p><ol><li><p>Сначала обучили&nbsp;<strong>10+ узких ИИ-экспертов</strong>&nbsp;(отдельно математик, отдельно кодер, отдельно логик и т.д.) через SFT + GRPO (reinforcement learning).</p></li><li><p>Затем через&nbsp;<strong>On-Policy Distillation</strong>&nbsp;аккуратно "перелили" знания каждого эксперта в единую финальную модель.</p></li></ol><p>Это устранило проблему, когда знания из одной области мешают другой – так называемое cross-domain interference.</p><p>5. Генеративный судья (GRM)</p><p>Для обучения сложным задачам DeepSeek отказался от классических скалярных "оценщиков" (как в стандартном RLHF). Вместо числовой оценки "хорошо/плохо" модель теперь сама&nbsp;<strong>текстово анализирует свои шаги</strong>&nbsp;– Generative Reward Model. Это качественно более богатая обратная связь при обучении.</p><p>6. Три режима мышления "из коробки"</p><p>Глубиной рассуждений модели можно управлять:</p><ul><li><p><strong>Non-Think</strong>&nbsp;– быстрый интуитивный ответ</p></li><li><p><strong>Think-High</strong>&nbsp;– вдумчивый анализ</p></li><li><p><strong>Think-Max</strong>&nbsp;– "выжми педаль в пол": модель расписывает все гипотезы, ищет краевые случаи и доказывает свой ответ (требует ≥384K контекста)</p></li></ul><p>Think-Max – это режим, в котором DeepSeek замеряет свои лучшие бенчмарки. На HLE он поднимает score с 34.5 до 37.7, на SimpleQA-Verified – с 46.2 до 57.</p> <a href="https://habr.com/ru/posts/1027708/?utm_campaign=1027708&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 24 Apr 2026 18:47:20 GMT</pubDate>
    <dc:creator><![CDATA[Xronofag]]></dc:creator>
      
      <category><![CDATA[Гибридное внимание]]></category><category><![CDATA[оптимизатор Muon]]></category><category><![CDATA[гиперконнекции mHC]]></category><category><![CDATA[дистилляция экспертов OPD]]></category><category><![CDATA[генеративный судья GRM]]></category><category><![CDATA[три режима мышления]]></category><category><![CDATA[FP4-квантизация при обучении]]></category><category><![CDATA[On-Disk KV-кэш]]></category><category><![CDATA[кросс-платформенные ядра TileLang]]></category><category><![CDATA[открытый формат MXFP4.]]></category>
  </item>
  

	
  

  

  

      

      

      

    
  </channel>
</rss>
