Кроме этого есть режим, который выкачивает исходники точечно выбранного метода - берется рекурсивно весь код конкретного эндпоинта/джобы и анализируется вместе с диффом, особенно полезно в рамках задач по оптимизации.
Более высокоуровневые моменты закрываются лидом.
С claude/codex локально экспериментировал и для ревью "агентский режим" в нашем случае даёт хорошо если +10% по качеству, а токенов отъедает примерно +150%, экономического смысла меньше. Есть планы настроить локальное ревью у разработчика на машине в рамках выданной ему подписки, но даже это спорно: выигрыш будет лишь в уже инициализированном контексте, но качество ревью тогда пострадает, а выстраивая контекст для ревью с нуля пострадает экономика, никаких отличий, кроме съеденных лимитов у разработчика.
И все равно ведь мы говорим про нейронки с ограниченным контекстом, который имеет свойство сжиматься и не способен уместить всю кодовую базу.
У нас AI - лишь первый шаг. Финальное ревью остаётся за лидом/замом. Процент замечаний на финальном ревью снизился на 85% по субъективным ощущениям, наблюдал с декабря. Сразу отсеялись минорные баги (NPE, опечатки, неверный выбор поля и т.д.), правила проекта дописал в промпт - процент соблюдения тоже вырос. Дополнил контекстом из прилинкованного Jira тикета - бизнес требования стали покрываться более качественно. Одни плюсы. Но без человека никуда - ни одна нейронка не вспомнит про глобальные планы по рефакторингу отдельных компонентов и архитектуру в целом, пока ей не описать это в отдельных инструкциях.
Скорость готовности PR выросла - меньше замечаний в финале, быстрее PR улетает на тест. Да и разработчикам понравилось, что мелочи видны сразу, а не на этапе финального ревью или даже теста.
Экономика сходится и окупается многократно, если перевести расходы на токены в часы ревьюера. Аналогичные инструменты на рынке обходятся порядка $25/мес за 1 разработчика, получилось дешевле как минимум в 2 раза.
KISS - реализовали через n8n и пару скриптов, первую неделю дебажили, далее забыли - работает до сих пор безотказно и без излишеств архитектуры. Глядя на решение в статье понимаю масштабы, но все равно субъективно выглядит излишне сложно, даже для 300 PR/час.
Qwen довольно слаб для комплексного ревью. Последние облачные модели Claude/openai/Google кратно превосходят локальные. Тестировали различные варианты, остановились на opus 4.6 как наиболее эффективной. Второе место - gpt 5.4, третье - Gemini 2.5 pro (3 pro preview была нестабильна на тот момент). Разница в цене между gpt 5.4 и opus ощутимая, но и качество тоже на порядок выше. Безопасность - этот критерий надо было выносить на 1 место в статье, единственный жесткий аргумент. Но будем честны, разрешая использовать claude code/codex/cursor разработчикам локально мы делаем ровно то же самое, что и отправляя части кода на ревью в облако.
Fallback необходим - иногда "лежат" что Claude, что gpt.
Также используя брейкпоинты можно модифицировать переменные на лету в чужом коде у себя в браузере.
Был случай, когда нужно было истекший токен подменить на актуальный из другой вкладки, не теряя уже полученные данные - скачанные треки из я.музыки, их было много, ждать загрузки снова не хотелось. А токен на этом сайте хранился в переменной вместо local storage.
Выкрутился следующим образом: в сурсах фронта нашел эту переменную через поиск по Bearer префиксу, далее нашел обращение к ней, поставил на него conditional breakpoint, в условии прописал "token = 'actual token', break;" - и сработало.
Даже скриншот сохранился
Аналогичный прием изредка использую со сторонними java библиотеками в intelij idea, когда нужно оперативно проверить гипотезу (сработает ли X если в эту переменную подставить Y).
Который год смотрю на ХМ серию ушей от сони. С одной стороны уши хвалят, по обзорам они реально хороши, да и в работе каждый день их используешь. По сути это инструмент, на котором экономить не стоит. С другой стороны - стоят ли они своих денег?
Было бы очень интересно почитать опыт других людей с более дешёвыми моделями.
Пробовал marshall major 2 и 3 - сильно давят на уши, да и формат полностью охватывающих амбюшур все же приятнее и удобнее, чем накладные.
Пока использую Anker Soundcore life Q20 - куплены на алике по акции 4 года за 25$. Шумодав прекрасный, звук отличный.
За 4 года:
Потрескались внутренние боковины направляющих - на thingeverse есть модель для печати на 3d принтере и замены, одну уже заменил так. Также потрескались и внешние боковины, однако это последствия моей небрежной носки в рюкзаке без жёсткого кейса
Поменял амбюшуры - кожзам стёрся об щетину. Проблема любых накладных наушников, если не бриться :)
Дострою свое решение и через пару лет вероятно накатаю статью. И про камеры (которыми ловили и котов, и закладчиков), и про неправильное резервное питание с солнечными панелями, и про всю self-hosted инфраструктуру в целом, включая мониторинг, бэкапы и архитектуру в целом
Найти бы время на это лишь между работой на работе и работой дома)
если в URL используются числовые идентификаторы (например, /users/5), остальные легко угадать (/users/6, /users/7). С UUID (/users/f47ac10b-58cc-4372-a567-0e02b2c3d479) это невозможно
UUID любой версии угадать сложнее, но всё ещё возможно - логи на прокси/утечки/брутфорс. Независимо от типа идентификатора безопасностью секьюрных данных пренебрегать не стоит.
У каждого свои цели и соответствующий выбор. Я тоже изначально склонялся к SFF из-за цены и производительности. Однако, затем трезво проанализировал насколько часто мне эта мощность будет нужна, насколько часто бывают отключения электричества (вспоминаем про аккумулятор) - и решил не обманывать себя, взял проверенное комфортное решение. Да, ИБП можно засунуть и в SFF. Даже клавиатуру с мини-монитором можно прикрутить. Но в моем случае это был бы обман самого себя - а такого лучше избегать
Выбирал между компактным ПК на miniITX и ноутбуком недавно. И пришел к интересной мысли: если нужна портативность, то бери ноутбук. Если портативность не нужна - собирай полноценный ПК без компромиссов на полноразмерной ATX. Большее кол-во слотов никогда не было минусом.
SFF - это интересно, красиво, но непрактично.
Ниже пара тезисов, которые стали ключевыми в выборе.
В пользу ПК:
Лёгкий апгрейд/замена компонентов, возможность поставить более чем 64гб озу
Цена - в моем случае за одинаковое железо ПК получался дешевле на $1-1.5к, с учётом того что мне не нужна видеокарта, а в ноутбуке она есть по умолчанию (топовые модели без вк не встречал)
Лучше отвод тепла при установке хорошего радиатора (dark rock например), но он большой зачастую и рушится концепция SFF
Выше мощность как следствие, меньше троттлинг
В пользу ноутбука:
Меньше размеры, лучшая портативность
Встроенный экран + клавиатура + ИБП (он же аккумулятор)
По итогу остановился на ноутбуке (scar 18). Да, дороже. Но вспоминаем про цели - была важна хотя бы относительная портативность и удобство.
Жажду накатать аналогичный пост про Яндекс Музыку. С редизайном убили все что можно, начиная с паузы по нажатию на пробел (теперь он активирует последнюю нажатую мышью кнопку, если листал треки - пробел переключит трек вместо паузы), скрытием дизлайка под 3-dot-меню и заканчивая регулировкой громкости скроллом (в новой версии этого нет)
Возможно пригодится кому-либо: neko-box поддерживает авторизацию и через ssh-ключи: вместо "password" указываем "private_key" одной строкой в формате "-----BEGIN RSA PRIVATE KEY-----\r\n......\r\n....." https://sing-box.sagernet.org/configuration/outbound/ssh/
GUI для rclone заброшен и обновляться не будет. Об этом писали на форуме rclone, точную ссылку не найду. Пробовал месяц назад его ставить, половина функционала не работает. А через cmd работает прекрасно. Документация довольно подробная, что радует.
Для простой синхронизации файлов nextcloud оверкилл на мой взгляд, тоже рассматривал его. Остановился на cronicle - GUI для запуска скриптов по расписанию, через него запускаю rclone. Можно даже простым cron-ом обойтись, если UI не нужен.
3 режима миксуем:
Только дифф
Дифф + N строк вокруг
Затронутые исходники полностью
Кроме этого есть режим, который выкачивает исходники точечно выбранного метода - берется рекурсивно весь код конкретного эндпоинта/джобы и анализируется вместе с диффом, особенно полезно в рамках задач по оптимизации.
Более высокоуровневые моменты закрываются лидом.
С claude/codex локально экспериментировал и для ревью "агентский режим" в нашем случае даёт хорошо если +10% по качеству, а токенов отъедает примерно +150%, экономического смысла меньше. Есть планы настроить локальное ревью у разработчика на машине в рамках выданной ему подписки, но даже это спорно: выигрыш будет лишь в уже инициализированном контексте, но качество ревью тогда пострадает, а выстраивая контекст для ревью с нуля пострадает экономика, никаких отличий, кроме съеденных лимитов у разработчика.
И все равно ведь мы говорим про нейронки с ограниченным контекстом, который имеет свойство сжиматься и не способен уместить всю кодовую базу.
Тоже внедрили code review с AI, вкратце:
У нас AI - лишь первый шаг. Финальное ревью остаётся за лидом/замом. Процент замечаний на финальном ревью снизился на 85% по субъективным ощущениям, наблюдал с декабря. Сразу отсеялись минорные баги (NPE, опечатки, неверный выбор поля и т.д.), правила проекта дописал в промпт - процент соблюдения тоже вырос. Дополнил контекстом из прилинкованного Jira тикета - бизнес требования стали покрываться более качественно. Одни плюсы. Но без человека никуда - ни одна нейронка не вспомнит про глобальные планы по рефакторингу отдельных компонентов и архитектуру в целом, пока ей не описать это в отдельных инструкциях.
Скорость готовности PR выросла - меньше замечаний в финале, быстрее PR улетает на тест. Да и разработчикам понравилось, что мелочи видны сразу, а не на этапе финального ревью или даже теста.
Экономика сходится и окупается многократно, если перевести расходы на токены в часы ревьюера. Аналогичные инструменты на рынке обходятся порядка $25/мес за 1 разработчика, получилось дешевле как минимум в 2 раза.
KISS - реализовали через n8n и пару скриптов, первую неделю дебажили, далее забыли - работает до сих пор безотказно и без излишеств архитектуры. Глядя на решение в статье понимаю масштабы, но все равно субъективно выглядит излишне сложно, даже для 300 PR/час.
Qwen довольно слаб для комплексного ревью. Последние облачные модели Claude/openai/Google кратно превосходят локальные. Тестировали различные варианты, остановились на opus 4.6 как наиболее эффективной. Второе место - gpt 5.4, третье - Gemini 2.5 pro (3 pro preview была нестабильна на тот момент). Разница в цене между gpt 5.4 и opus ощутимая, но и качество тоже на порядок выше. Безопасность - этот критерий надо было выносить на 1 место в статье, единственный жесткий аргумент. Но будем честны, разрешая использовать claude code/codex/cursor разработчикам локально мы делаем ровно то же самое, что и отправляя части кода на ревью в облако.
Fallback необходим - иногда "лежат" что Claude, что gpt.
Честный комментарий - читать ваш AI-слоп отвратительно. Даже если он на 80% написан человеком.
Такую воду даже гпт мне уже не выдает - вы постарались!
А кто-то называет это "маркетинг". Впрочем, нейронке виднее.
Не статья, а реклама. За что у нее такой рейтинг и топ-1 за сутки? Выглядит накрученным, если честно.
Уже есть такие устройства - с литием и DC-DC портами (type-c, usb-a, автомобильный разъем прикуривателя).
Например, зарядные станции от ecoflow - серия river из наиболее дешёвых (~ 250 USD). Либо bluetti, кто-то выше в комментах скидывал.
DC-DC порты на примере Delta 3 1500
Также используя брейкпоинты можно модифицировать переменные на лету в чужом коде у себя в браузере.
Был случай, когда нужно было истекший токен подменить на актуальный из другой вкладки, не теряя уже полученные данные - скачанные треки из я.музыки, их было много, ждать загрузки снова не хотелось. А токен на этом сайте хранился в переменной вместо local storage.
Выкрутился следующим образом: в сурсах фронта нашел эту переменную через поиск по Bearer префиксу, далее нашел обращение к ней, поставил на него conditional breakpoint, в условии прописал "token = 'actual token', break;" - и сработало.
Даже скриншот сохранился
Аналогичный прием изредка использую со сторонними java библиотеками в intelij idea, когда нужно оперативно проверить гипотезу (сработает ли X если в эту переменную подставить Y).
Скрытый текст
Который год смотрю на ХМ серию ушей от сони. С одной стороны уши хвалят, по обзорам они реально хороши, да и в работе каждый день их используешь. По сути это инструмент, на котором экономить не стоит. С другой стороны - стоят ли они своих денег?
Было бы очень интересно почитать опыт других людей с более дешёвыми моделями.
Пробовал marshall major 2 и 3 - сильно давят на уши, да и формат полностью охватывающих амбюшур все же приятнее и удобнее, чем накладные.
Пока использую Anker Soundcore life Q20 - куплены на алике по акции 4 года за 25$. Шумодав прекрасный, звук отличный.
За 4 года:
Потрескались внутренние боковины направляющих - на thingeverse есть модель для печати на 3d принтере и замены, одну уже заменил так. Также потрескались и внешние боковины, однако это последствия моей небрежной носки в рюкзаке без жёсткого кейса
Поменял амбюшуры - кожзам стёрся об щетину. Проблема любых накладных наушников, если не бриться :)
Дострою свое решение и через пару лет вероятно накатаю статью. И про камеры (которыми ловили и котов, и закладчиков), и про неправильное резервное питание с солнечными панелями, и про всю self-hosted инфраструктуру в целом, включая мониторинг, бэкапы и архитектуру в целом
Найти бы время на это лишь между работой на работе и работой дома)
Пролистал вниз, чтобы написать то же самое
UUID любой версии угадать сложнее, но всё ещё возможно - логи на прокси/утечки/брутфорс. Независимо от типа идентификатора безопасностью секьюрных данных пренебрегать не стоит.
Почему?
У каждого свои цели и соответствующий выбор. Я тоже изначально склонялся к SFF из-за цены и производительности. Однако, затем трезво проанализировал насколько часто мне эта мощность будет нужна, насколько часто бывают отключения электричества (вспоминаем про аккумулятор) - и решил не обманывать себя, взял проверенное комфортное решение. Да, ИБП можно засунуть и в SFF. Даже клавиатуру с мини-монитором можно прикрутить. Но в моем случае это был бы обман самого себя - а такого лучше избегать
Выбирал между компактным ПК на miniITX и ноутбуком недавно. И пришел к интересной мысли: если нужна портативность, то бери ноутбук. Если портативность не нужна - собирай полноценный ПК без компромиссов на полноразмерной ATX. Большее кол-во слотов никогда не было минусом.
SFF - это интересно, красиво, но непрактично.
Ниже пара тезисов, которые стали ключевыми в выборе.
В пользу ПК:
Лёгкий апгрейд/замена компонентов, возможность поставить более чем 64гб озу
Цена - в моем случае за одинаковое железо ПК получался дешевле на $1-1.5к, с учётом того что мне не нужна видеокарта, а в ноутбуке она есть по умолчанию (топовые модели без вк не встречал)
Лучше отвод тепла при установке хорошего радиатора (dark rock например), но он большой зачастую и рушится концепция SFF
Выше мощность как следствие, меньше троттлинг
В пользу ноутбука:
Меньше размеры, лучшая портативность
Встроенный экран + клавиатура + ИБП (он же аккумулятор)
По итогу остановился на ноутбуке (scar 18). Да, дороже. Но вспоминаем про цели - была важна хотя бы относительная портативность и удобство.
Если вам показалось, что статья ни о чем, то вам не показалось. На объективность не претендую, но все же:
Объем: не тянет на статью, ну совсем. Зато реклама в первом же абзаце, которая режет глаз.
Смысловая нагрузка/цель статьи: отсутствует. Озвучены лишь очевидные поинты, которые тянут на философский пост в тг, но никак не на статью.
Doom кто-либо наверняка запустит)
Жажду накатать аналогичный пост про Яндекс Музыку. С редизайном убили все что можно, начиная с паузы по нажатию на пробел (теперь он активирует последнюю нажатую мышью кнопку, если листал треки - пробел переключит трек вместо паузы), скрытием дизлайка под 3-dot-меню и заканчивая регулировкой громкости скроллом (в новой версии этого нет)
Возможно пригодится кому-либо: neko-box поддерживает авторизацию и через ssh-ключи: вместо "password" указываем "private_key" одной строкой в формате "-----BEGIN RSA PRIVATE KEY-----\r\n......\r\n....."
https://sing-box.sagernet.org/configuration/outbound/ssh/
Push модель у rabbitmq совсем не ложится на пример с картошкой. А pull у Kafka идеально подходит.
GUI для rclone заброшен и обновляться не будет. Об этом писали на форуме rclone, точную ссылку не найду. Пробовал месяц назад его ставить, половина функционала не работает. А через cmd работает прекрасно. Документация довольно подробная, что радует.
Для простой синхронизации файлов nextcloud оверкилл на мой взгляд, тоже рассматривал его. Остановился на cronicle - GUI для запуска скриптов по расписанию, через него запускаю rclone. Можно даже простым cron-ом обойтись, если UI не нужен.