Обновить

Статический анализ в Yii2

Уровень сложностиПростой

За последние несколько лет статический анализ стал неотъемлемой частью современной разработки на PHP. Сегодня сложно представить крупный PHP‑проект, в котором не использовались бы инструменты статического анализа.

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

По этой причине улучшение поддержки статического анализа является одним из направлений развития Yii2.

Читать далее

15 AI-агентов, общая RAG-память и один VPS: система, которая закрыла 20 моих иллюзий

Уровень сложностиСредний

Я соло-разработчик. Этой весной я решил, что вместо очередного «бота на RSI» соберу нормальную систему: команду автономных AI-агентов с общей памятью, которые круглосуточно исследуют крипторынок, читают научные статьи, следят за новостями, проверяют «гуру» из телеграма и ищут торговое преимущество. Всё это — на одном дешёвом VPS, на Python, cron и OpenAI API.

Система получилась. Она работает месяцами без моего участия, стоит копейки и делает ровно то, для чего строилась.

А теперь спойлер, ради которого стоит дочитать: главный результат работы этой машины — строгое, статистически честное доказательство того, что торгового edge у моего ретейл-подхода нет. Два десятка проверенных гипотез — два десятка трупов. И я считаю это лучшим, что система могла для меня сделать.

Обо всём по порядку: сначала архитектура и грабли (они переносимы на любую предметную область), потом — главная глава про кладбище гипотез.

Читать далее

MVP — Конвейер агентов, который не выдумывает факты: критик, детерминированный merge данных и грабли на пути

Уровень сложностиСредний

Здравствуйте, коллеги!

Три недели назад я взялся за задачу, которая звучит просто: сделать бота‑ассистента, который помогает IT‑джуну собрать резюме, и при этом не выдумывает того, что соискатель не описывал. И задача оказалась не про prompts. Ниже — архитектура, которая получилась и 3 инженерные истории, на которых я застревал по‑настоящему.

Всё, что описано, код и цифры — проверялось на живом MVP.

Читать далее

Новый VLESS клиент на Windows или почему HAPP стоит выкинуть на мусорку

Уровень сложностиСредний

Зачем писать ещё один VLESS-клиент, когда уже существуют v2rayN, HAPP и Nekoray? Мне хотелось объединить системный прокси, полноценный TUN, маршрутизацию приложений, разные форматы подписок и Zapret в одном понятном интерфейсе. Рассказываю, как устроен Lumen KVN, зачем ему одновременно Xray и sing-box, как реализованы импорт Happ Crypt, DNS в TUN-режиме, проверка серверов и какие компромиссы появились из-за работы с двумя сетевыми ядрами.

Читать далее

Санта‑Барбара без сценаристов: как нейросети создадут бесконечный сериал

Многие включают телевизор для фона. Не для того, чтобы смотреть, а просто для того, чтобы что‑то шло. Чтобы разговоры, шум, эффект присутствия. И вроде бы ты уже не один и даже как‑то уютнее.

А теперь представьте, что есть канал, по которому идет сериал, который никогда не заканчивается. И он не просто на триста‑пятьсот серий и финал, а действительно бесконечный. Где хорошо знакомые герои живут своей жизнью, ходят на работу, отдыхают, ссорятся и мирятся, женятся, ездят на курорты и дачи, растят и воспитывают детей. И всё это генерируется в реальном времени нейросетью (ИИ, AI).

Читать далее

Шляпа на аватарке крутилась как пропеллер. Виноваты были две пружины

У нас в голосовых комнатах на аватарки можно надевать шляпы, и пока человек говорит, шляпа чуть покачивается. Мелочь, но живая. А потом пришёл баг: «шляпа иногда крутится вокруг своей оси, как пропеллер, и замирает». С видео — на нём ковбойская шляпа делала полный оборот и вставала на место.

Самое любопытное в репорте: крутились только мягкие шляпы. На корону и каску никто не жаловался. С этой детали всё и распуталось — история про две пружины на одном угле.

Кто раскрутил шляпу

Онтологическая модель общества потребления

Уровень сложностиСредний

Актуальность проблемы онтологического моделирования общества потребления. Необходимость моделирования основных процессов потребления в современном общества как способа поиска потребностей в применении новых технологий и материалов.

Ежегодно в России создается более 200[1] новых технологий[2], инструмент искусственного интеллекта GNoME предсказывает возможность создания сотен тысяч новых синтетических материалов[3], в 2023 году в России зарегистрировано более 1000 новых лекарственных препаратов[4]. Каждое из этих новшеств разрабатывается с заранее определенной областью применения, однако, в нашем сложном, технологически развитом обществе, постоянно появляются новые области деятельности и потребления, имеющие свои специфические потребности в материалах и технологиях. Например, персонифицированная медицина: разработка лекарственных индивидуальных препаратов, эндопротезирующих изделий и материалов, учитывающих особенности пациентов, в том числе генетические[5]. Имеется и обратная зависимость: новые материалы с новыми свойствами порождают новые способы применения и даже новые, принципиально невозможные ранее, технологии. Например, использования графеновых материалов в ИТ‑технологиях, энергетике, при создании одежды[6]. Кроме того, у каждой технологии, как и у каждого инструментального средства, есть своя логика развития, и предоставление новых возможностей порождает новые потребности. Например, развитие и удешевление производства дронов, первоначально использовавшихся только для наблюдений, открывает новые области их использования в логистике.

Читать далее

Почему ИИ‑разработка не равна вайбкодингу и что с нами будет дальше

Уровень сложностиСредний

Все уже в курсе вайбкодинга. Интернет заполонили красивые сайты и приложения, которые ломаются от первого же чуть более настойчивого пользователя. Игры клепаются с такой скоростью, что грань между прототипом и готовым продуктом размылась почти до нуля. Сторы буквально тонут в нейромусоре. Компании сокращают штат под лозунгом ИИ‑оптимизации, а потом теряют деньги, потому что новые рельсы ведут не туда.

Разработчики на этом фоне разделились на два лагеря. Одни демонстративно сторонятся ИИ или прямо его отрицают. Другие бросили штурвал: шлют в чат «давай дальше», «сделай красиво» и пьют кофе, пока агент разбирается сам. Я хочу рассказать про третий путь, потому что обе крайности одинаково не работают.

Читать далее

Palistor: декларативный MVVM-фреймворк для React, дружелюбный к ИИ

Уровень сложностиСредний

Большинство React-экранов со временем превращаются в клубок из трёх несвязанных забот: как экран ведёт себя (валидация, условные поля, кросс-полевые правила), откуда берутся его данные (загрузка, кэширование, мутации) и как он выглядит (JSX). По мере роста эти части сплетаются так, что любое изменение задевает всё сразу.

Раньше это терпели: мы писали код руками, умели декомпозировать сложность и управлять ей, и хотя одной кнопке иногда требовалось три компонента и пара хуков, у нас было время и контроль. Сегодня всё больше кода пишет ИИ, и контроль ускользает. ИИ плохо проектирует архитектуру, но отлично заполняет декларативные слоты. Palistor убирает саму задачу архитектуры — остаётся заполнить конфиг по правилам. Такой код трудно развалить: ошибаться попросту негде, а ревьюить нужно один плоский объект, а не дерево из useEffect'ов.

Читать далее

Найм в 2к26. Что меня удивило больше всего

Уровень сложностиПростой

В 2026 году решили расширить штат. Разместил вакансию, начался поиск.

За первые два дня после публикации вакансии пришло более 400 откликов. Это сумасшедшая цифра... Ладно, собрался, отфильтровал, осталось около 300. 

Начались собеседования, и именно на них я был сильно удивлён, ведь не так давно ситуация была другая…

Читать далее

AI Recruiter assistance, инструмент для hr-ов

Уровень сложностиПростой

Я разработал инструмент для автоматизации подбора специалистов. Основная его задача сократить время первичного отбора кандидатов за счет автоматического анализа резюме, GitHub-репозиториев и применения RAG(Retrieval-Augmented Generation) подхода.

Читать далее

Я собрала ИИ-друга, который пишет первым и матерится. Потом он рассказал мне, что у меня в холодильнике

Уровень сложностиСредний

История о том, как продакт без единого разработчика построила бота-друга на Make + Supabase + Claude, зачем боту кубик, почему нейросеть отказывалась материться — и что такое эмерджентность на живом примере, от которого мне однажды стало по-настоящему не по себе.

Читать далее

AI сгенерировал код. Почему до готового продукта ещё далеко

Уровень сложностиСредний

AI способен за несколько минут создать работающий endpoint, интерфейс или Dockerfile. Но работающий код ещё не означает, что продукт готов к передаче заказчику.

В статье разбираю инженерный разрыв между AI-сгенерированной реализацией и принимаемым программным продуктом: критерии готовности, проверку негативных сценариев, воспроизводимую сборку, чистую установку, контроль секретов и формирование evidence. Также предлагаю практический процесс, позволяющий использовать AI для ускорения разработки, не подменяя им независимую проверку результата.

Читать далее

Spring 6.2 сломал мой instanceof: три бага, которые я поймал, пока писал Spring Boot Starter

Уровень сложностиСредний

runnable instanceof ScheduledMethodRunnable — false. Всегда false. Так Spring Framework 6.2 сломал матчинг задач в моей библиотеке, и это был только первый из трёх багов, которые не воспроизводились в тестах. Разбор — под катом.

Читать далее

Сдвоенные железнодорожные операции и неисправности вагонов: почему предприятия теряют миллионы, не замечая этого

Уровень сложностиПростой

Прибывает контейнерный поезд или сформированный маршрут. На предприятии его должны разгрузить/загрузить и отправить обратно — классические сдвоенные операции. Всё по плану и по графику.

А дальше осмотрщики вагонов АО «РЖД» при осмотре начинают браковать вагоны. Не один‑два — 10–15% от состава. Из поезда в 60–70 вагонов это 7–8 единиц. И вот тут план начинает рассыпаться.

Читать далее

Один аккаунт, несколько детских профилей, игры и рейтинг: как собрать закрытую семейную платформу

Уровень сложностиПростой

Один родительский аккаунт, несколько детских профилей, игровые задания, рейтинг и контент, который открывается по расписанию. Пока всё идёт по счастливому пути, это выглядит как набор экранов.

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

В статье разбираю, как собрать закрытую семейную платформу так, чтобы React оставался быстрым, Laravel не отдавал правила продукта браузеру, рейтинг можно было объяснить, а контентная команда управляла кампанией без постоянных релизов.

Читать далее

Почему сила LLM не гарантирует точность

Уровень сложностиСредний

Уверенная и складная речь легко принимается за признак правоты — и человеком, и машиной.

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

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

Читать далее

WebSocket, Web Workers и высокоскоростной поток данных: как спасти фронтенд от фризов

Уровень сложностиСредний

Криптотерминал CoinPulse. Next.js 15, Web Workers для фонового парсинга и чистый HTML5 Canvas API без использования сторонних библиотек

Читать далее

Память AI-агентов вне провайдера: переносимый контекст между инструментами

Уровень сложностиСредний

AI-провайдер — исполнитель, а не хранилище памяти. Показываю, как вынести проектный контекст в Markdown и Git: при входе агент читает короткий набор актуальных файлов, а после существенной работы фиксирует новое состояние.

Читать далее

Отказоустойчивая инфраструктура

Уровень сложностиПростой

История пути: от первого тревожного звонка до катастрофоустойчивой инфраструктуры

Как розничный бизнес, зависящий от непрерывной работы ИТ, прошёл путь от единственного дата-центра до катастрофоустойчивой инфраструктуры из нескольких гео распределенных площадок — и какие решения оказались ключевыми на этом пути.

Зачем всё это затевалось

В основе проекта лежал простой, но жёсткий бизнес-принцип: БДРВ — «Бизнес должен работать всегда». Для розничной компании остановка ИТ-инфраструктуры означает прямые и колоссальные финансовые потери, и чем глубже анализировать риски, тем очевиднее становится их масштаб.

Из этого принципа родились четыре ключевые цели проекта:

Читать далее