Logpoints в IntelliJ IDEA: поиск ошибок в gRPC-сервисе без остановки
Logpoints выводят значения в консоль, не приостанавливая программу. Выражения для вывода можно менять без пересборки и повторного развёртывания приложения.
В руководстве по отладке Java-сервиса в Docker показаны подключение отладчика и поиск причины неверной скидки: имя клиента сравнивается без учёта регистра. Затем исправление проверяют без изменения кода сервера.
Обычная точка останова мешает разбору: пока сервер стоит на паузе, истекает срок выполнения gRPC-запроса, заданный клиентом, и сервер отменяет работу. Logpoints позволяют наблюдать за обработкой без такой паузы.
Но выражения выполняются в той же виртуальной машине: тяжёлые вычисления добавляют нагрузку, а побочные эффекты могут менять состояние программы.
#ide #инструменты
Logpoints выводят значения в консоль, не приостанавливая программу. Выражения для вывода можно менять без пересборки и повторного развёртывания приложения.
В руководстве по отладке Java-сервиса в Docker показаны подключение отладчика и поиск причины неверной скидки: имя клиента сравнивается без учёта регистра. Затем исправление проверяют без изменения кода сервера.
Обычная точка останова мешает разбору: пока сервер стоит на паузе, истекает срок выполнения gRPC-запроса, заданный клиентом, и сервер отменяет работу. Logpoints позволяют наблюдать за обработкой без такой паузы.
Но выражения выполняются в той же виртуальной машине: тяжёлые вычисления добавляют нагрузку, а побочные эффекты могут менять состояние программы.
#ide #инструменты
Forwarded from Типичный программист
Общая папка для работы Claude Code и Codex
Луи-Франсуа Бушар собрал заметки, инструкции-скиллы, скрипты и итоги встреч в Obsidian. Его связка устроена так:
Папка хранит исходные материалы и решения
↓
Индекс указывает, где искать данные для задачи
↓
Claude Code планирует работу
↓
Codex выполняет задачи по его вызову
В описании этого рабочего процесса Бушар объясняет, зачем даёт агенту сведения для конкретной задачи. Начать предлагает с общей папки, короткого индекса и одного повторно используемого скилла.
#ии #инструменты
Луи-Франсуа Бушар собрал заметки, инструкции-скиллы, скрипты и итоги встреч в Obsidian. Его связка устроена так:
Папка хранит исходные материалы и решения
↓
Индекс указывает, где искать данные для задачи
↓
Claude Code планирует работу
↓
Codex выполняет задачи по его вызову
В описании этого рабочего процесса Бушар объясняет, зачем даёт агенту сведения для конкретной задачи. Начать предлагает с общей папки, короткого индекса и одного повторно используемого скилла.
#ии #инструменты
❤1
Forwarded from Типичный программист
Типичный программист
Общая папка для работы Claude Code и Codex Луи-Франсуа Бушар собрал заметки, инструкции-скиллы, скрипты и итоги встреч в Obsidian. Его связка устроена так: Папка хранит исходные материалы и решения ↓ Индекс указывает, где искать данные для задачи ↓ Claude…
Приходится ли вам копипастить данные и какие именно, когда переходите из одной нейросети в другую?
Anonymous Poll
17%
Код
28%
Описание задачи
14%
Документацию
17%
Результаты работы
20%
Настройки и контекст: историю чатов, промпты, скиллы
50%
Ничего, использую один инструмент
curl: пароль для сервера и пароль для прокси — разные вещи
Получили
При
Если метод заранее неизвестен,
📎 Авторизация в руководстве everything curl
#cli #инструменты
Получили
401? Сервер запрашивает авторизацию через WWW-Authenticate. Для него предназначен --user, который задаёт заголовок Authorization.При
407 пароль нужен HTTP-прокси: ответ содержит Proxy-Authenticate. Здесь используйте --proxy-user, а не повторяйте пароль сервера. Учётные данные прокси передаются в Proxy-Authorization.Если метод заранее неизвестен,
--anyauth сначала проверяет ответ сервера. Для прокси есть отдельный --proxy-anyauth. Basic кодирует пароль в base64, а не шифрует его, поэтому для реальных паролей нужен защищённый транспорт.#cli #инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
Рецепты curl для авторизации и проверки доступа к серверу
curl позволяет воспроизводить запросы из терминала: передавать логин и пароль, сохранять cookies после входа через форму и использовать их в следующих запросах. В подборке команд для загрузки файлов, авторизации и проверки сервисов разобраны эти сценарии с примерами.
Для cookies показана пара параметров:
Отдельный пример посвящён
#инструменты #терминал
curl позволяет воспроизводить запросы из терминала: передавать логин и пароль, сохранять cookies после входа через форму и использовать их в следующих запросах. В подборке команд для загрузки файлов, авторизации и проверки сервисов разобраны эти сценарии с примерами.
Для cookies показана пара параметров:
--cookie-jar сохраняет их в файл, а --cookie читает оттуда. Так можно запросить защищённую страницу после входа.Отдельный пример посвящён
--connect-to: curl подключается к указанному серверу и порту, сохраняя имя исходного узла в заголовках запроса. Это позволяет проверить сервис напрямую, исключив балансировщик как возможную причину ошибки.#инструменты #терминал
GDB: breakpoint и watchpoint отвечают на разные вопросы
Breakpoint останавливает программу в заданном месте: на строке, при входе в функцию или по адресу. Он удобен, когда уже есть подозрительный участок кода. Условие позволяет пропускать остановки, которые не относятся к вашей ошибке.
Watchpoint следит за изменением значения переменной или выражения. Если данные портятся, а место записи неизвестно, он помогает поймать изменение без обхода всех возможных присваиваний.
У watchpoint есть ограничения: аппаратная поддержка зависит от системы, число точек и размер отслеживаемых данных ограничены. Программный вариант выполняет пошаговую проверку и может сильно замедлять приложение. Не считайте наблюдение за любым выражением бесплатным.
📎 Breakpoint и watchpoint в руководстве GDB
#инструменты
Breakpoint останавливает программу в заданном месте: на строке, при входе в функцию или по адресу. Он удобен, когда уже есть подозрительный участок кода. Условие позволяет пропускать остановки, которые не относятся к вашей ошибке.
Watchpoint следит за изменением значения переменной или выражения. Если данные портятся, а место записи неизвестно, он помогает поймать изменение без обхода всех возможных присваиваний.
У watchpoint есть ограничения: аппаратная поддержка зависит от системы, число точек и размер отслеживаемых данных ограничены. Программный вариант выполняет пошаговую проверку и может сильно замедлять приложение. Не считайте наблюдение за любым выражением бесплатным.
#инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
GDB: отладка программ на C на двух примерах
GDB позволяет остановить программу на нужной строке и посмотреть значения переменных, вместо того чтобы добавлять вызовы printf и пересобирать код после каждой правки. В практическом руководстве разобраны две ошибки с исходниками и командами отладчика.
В первом примере цикл выходит за границы массива и портит среднее значение. Условная точка останова останавливает выполнение при индексе 5, чтобы увидеть лишнее чтение. Во втором программа падает при передаче нулевого указателя в strlen. Стек вызовов показывает, откуда пришёл этот аргумент.
Разбор начинается со сборки с флагом
#инструменты #терминал
GDB позволяет остановить программу на нужной строке и посмотреть значения переменных, вместо того чтобы добавлять вызовы printf и пересобирать код после каждой правки. В практическом руководстве разобраны две ошибки с исходниками и командами отладчика.
В первом примере цикл выходит за границы массива и портит среднее значение. Условная точка останова останавливает выполнение при индексе 5, чтобы увидеть лишнее чтение. Во втором программа падает при передаче нулевого указателя в strlen. Стек вызовов показывает, откуда пришёл этот аргумент.
Разбор начинается со сборки с флагом
-g, который связывает машинный код со строками исходника. В конце есть шпаргалка команд и таблица решений проблем настройки, например когда отладчик не показывает переменные.#инструменты #терминал
Forwarded from Точка входа в программирование
Вебинар в прямом эфире уже идёт десять минут. Вы только открыли трансляцию. Что для вас важнее всего?
Anonymous Poll
13%
Минимальная задержка от живого момента.
10%
Стабильное разрешение картинки.
15%
Ровный звук.
62%
Возможность отмотать назад и вернуться в эфир.
git rerere: повторное использование решений конфликтов
Git rerere запоминает, как вы разрешили конфликт, и при повторении того же содержимого с обеих сторон подставляет сохранённое решение в файл. Включить его для текущего репозитория можно командой
В практикуме с командами и ожидаемым выводом конфликт в config.yml сначала решают при слиянии веток, затем отменяют слияние и выполняют rebase, перенос коммитов на другую основу. Git применяет записанное решение и останавливается для проверки.
По умолчанию файл не добавляется в индекс: нужно проверить изменения через
#git #инструменты
Git rerere запоминает, как вы разрешили конфликт, и при повторении того же содержимого с обеих сторон подставляет сохранённое решение в файл. Включить его для текущего репозитория можно командой
git config rerere.enabled true.В практикуме с командами и ожидаемым выводом конфликт в config.yml сначала решают при слиянии веток, затем отменяют слияние и выполняют rebase, перенос коммитов на другую основу. Git применяет записанное решение и останавливается для проверки.
По умолчанию файл не добавляется в индекс: нужно проверить изменения через
git diff, выполнить git add и продолжить операцию. Если окружающий код изменился, прежнее решение может оказаться неверным.#git #инструменты
❤1🔥1
Что проверить после переноса Postman-коллекции в Bruno
Bruno переводит знакомые вызовы
В руководстве по конвертации советуют найти оставшиеся обращения к Postman API, затем запустить коллекцию целиком. Импортированные тесты находятся в Post Response, а результаты отображаются в панели Tests.
Отдельно проверьте переменные: после импорта значения имеют строковый тип. Сравнение числа с такой переменной не сработает без настройки типа или преобразования.
Есть и разница в порядке скриптов: Bruno по умолчанию выполняет post-response от запроса к папке и коллекции. Если тесты зависят от обратного порядка, нужен sequential flow.
Перед коммитом коллекции проверьте токены. Запись через
#инструменты #api
Bruno переводит знакомые вызовы
pm.* в свой API при импорте. Но неподдерживаемые строки остаются в скрипте и могут упасть только при запуске запроса.В руководстве по конвертации советуют найти оставшиеся обращения к Postman API, затем запустить коллекцию целиком. Импортированные тесты находятся в Post Response, а результаты отображаются в панели Tests.
Отдельно проверьте переменные: после импорта значения имеют строковый тип. Сравнение числа с такой переменной не сработает без настройки типа или преобразования.
Есть и разница в порядке скриптов: Bruno по умолчанию выполняет post-response от запроса к папке и коллекции. Если тесты зависят от обратного порядка, нужен sequential flow.
Перед коммитом коллекции проверьте токены. Запись через
bru.setEnvVar() сохраняет значение в файл окружения; секреты нужно хранить отдельно.#инструменты #api
Zsh: как поставить файл 2 перед файлом 10
При раскрытии
Адам Джонсон показывает числовую сортировку через квалификатор n. Сначала проверьте порядок файлов, затем передайте их ImageMagick:
Теперь числовые части имён сравниваются как числа. Для обратного порядка используйте
Если такое поведение нужно для всех glob-шаблонов, в Zsh можно включить:
Глобальная настройка меняет порядок и в других командах, поэтому для разовой задачи удобен квалификатор в конкретном шаблоне. Этот синтаксис относится к Zsh; в Bash и PowerShell он не работает.
#терминал #zsh
При раскрытии
*.png оболочка сортирует имена посимвольно. Поэтому Page 10.png может оказаться перед Page 2.png. Это легко пропустить при сборке PDF из изображений.Адам Джонсон показывает числовую сортировку через квалификатор n. Сначала проверьте порядок файлов, затем передайте их ImageMagick:
print -l *.png(n)
magick *.png(n) document.pdf
Теперь числовые части имён сравниваются как числа. Для обратного порядка используйте
*.png(nOn).Если такое поведение нужно для всех glob-шаблонов, в Zsh можно включить:
setopt numeric_glob_sort
Глобальная настройка меняет порядок и в других командах, поэтому для разовой задачи удобен квалификатор в конкретном шаблоне. Этот синтаксис относится к Zsh; в Bash и PowerShell он не работает.
#терминал #zsh
❤1✍1
Delta: ревью с контекстом работы агента
Дифф показывает изменения, но не всегда объясняет, почему автор выбрал именно это решение. В публичной бете Delta коллегу можно пригласить в тред с агентом, чтобы он увидел обсуждение и продолжил работу с тем же контекстом.
Для ревью создаётся отдельный тред с изолированной копией рабочих деревьев. Ревьюер может исследовать код, пробовать исправления и обсуждать их с агентом, не меняя исходную рабочую копию. Правки затем можно перенести обратно.
В основе — DeltaDB: она сохраняет редактирования между коммитами вместе с сообщениями людей и агентов. Коммиты остаются точками, которые можно отправлять в обычный Git.
Переводить всю команду сразу не требуется: треды Delta можно прикладывать к привычным GitHub PR. В статье есть демонстрация пути от исправления до ревью и слияния. Часть возможностей ещё находится в планах развития.
#инструменты #codereview
Дифф показывает изменения, но не всегда объясняет, почему автор выбрал именно это решение. В публичной бете Delta коллегу можно пригласить в тред с агентом, чтобы он увидел обсуждение и продолжил работу с тем же контекстом.
Для ревью создаётся отдельный тред с изолированной копией рабочих деревьев. Ревьюер может исследовать код, пробовать исправления и обсуждать их с агентом, не меняя исходную рабочую копию. Правки затем можно перенести обратно.
В основе — DeltaDB: она сохраняет редактирования между коммитами вместе с сообщениями людей и агентов. Коммиты остаются точками, которые можно отправлять в обычный Git.
Переводить всю команду сразу не требуется: треды Delta можно прикладывать к привычным GitHub PR. В статье есть демонстрация пути от исправления до ревью и слияния. Часть возможностей ещё находится в планах развития.
#инструменты #codereview
Tokens Brücke: из Figma в npm через проверяемый PR
У GitButler дизайн-токены живут в отдельном npm-пакете: его используют приложение и сайт. Даже изменение одного цвета должно пройти экспорт, сборку CSS и выпуск версии.
В разборе этого процесса Павел Лаптев использует плагин Tokens Brücke. Кнопка Push to server отправляет JSON токенов в GitHub PR, а Actions собирают CSS и показывают изменения. После ревью и слияния другой workflow публикует пакет и тег.
У CLI появился и режим работы с готовым снимком переменных:
Он преобразует входные данные в формат DTCG. Сам снимок нужно получить отдельно.
Автор сначала запускал цепочку через двух ИИ-агентов, но для повторных выпусков выбрал кнопку и CI. Агенты помогли подготовить CLI и workflows; проверка диффа перед выпуском осталась за человеком.
#инструменты #автоматизация
У GitButler дизайн-токены живут в отдельном npm-пакете: его используют приложение и сайт. Даже изменение одного цвета должно пройти экспорт, сборку CSS и выпуск версии.
В разборе этого процесса Павел Лаптев использует плагин Tokens Brücke. Кнопка Push to server отправляет JSON токенов в GitHub PR, а Actions собирают CSS и показывают изменения. После ревью и слияния другой workflow публикует пакет и тег.
У CLI появился и режим работы с готовым снимком переменных:
npx tokens-bruecke --input snapshot.json --output tokens.json
Он преобразует входные данные в формат DTCG. Сам снимок нужно получить отдельно.
Автор сначала запускал цепочку через двух ИИ-агентов, но для повторных выпусков выбрал кнопку и CI. Агенты помогли подготовить CLI и workflows; проверка диффа перед выпуском осталась за человеком.
#инструменты #автоматизация
❤1
Bruno: локальный сервер API из примеров ответов
Бэкенд ещё не готов, а в интерфейсе уже нужно проверить список, пустое состояние и ошибку. В Bruno для этого можно сохранить примеры ответов и поднять локальный сервер, который их возвращает.
В руководстве команды Bruno показан путь от коллекции запросов до работающей заглушки. Для примера задаются статус, заголовки и тело. Его можно написать вручную или сохранить из настоящего ответа API.
Из примеров создаётся mock server. Для одного метода и пути можно подготовить несколько ответов и правила их выбора. Запросы видны в журнале, а определения хранятся на диске рядом с коллекцией — их удобно передавать через Git.
Mock Servers пока в бета-версии. Такой сервер возвращает заданные ответы, не хранит данные и не исполняет бизнес-логику. При закрытии Bruno он останавливается; после перезапуска приложения его нужно запустить снова.
#api #тестирование
Бэкенд ещё не готов, а в интерфейсе уже нужно проверить список, пустое состояние и ошибку. В Bruno для этого можно сохранить примеры ответов и поднять локальный сервер, который их возвращает.
В руководстве команды Bruno показан путь от коллекции запросов до работающей заглушки. Для примера задаются статус, заголовки и тело. Его можно написать вручную или сохранить из настоящего ответа API.
Из примеров создаётся mock server. Для одного метода и пути можно подготовить несколько ответов и правила их выбора. Запросы видны в журнале, а определения хранятся на диске рядом с коллекцией — их удобно передавать через Git.
Mock Servers пока в бета-версии. Такой сервер возвращает заданные ответы, не хранит данные и не исполняет бизнес-логику. При закрытии Bruno он останавливается; после перезапуска приложения его нужно запустить снова.
#api #тестирование
❤3👎1
Zsh: как отложить набранную команду
Набрали длинную команду запуска тестов и вспомнили, что сначала нужно переключить ветку? В Zsh можно временно убрать строку, выполнить другую команду и получить прежнюю обратно.
В раскладке Emacs нажмите Esc, отпустите, затем q. Виджет
В заметке Адама Джонсона есть настройка для многострочных команд:
Добавьте её в
Удобно, когда перед запуском нужно перейти в каталог, включить окружение или проверить имя файла. Сочетание относится к Zsh и зависит от настроек клавиш вашей оболочки.
#терминал #zsh
Набрали длинную команду запуска тестов и вспомнили, что сначала нужно переключить ветку? В Zsh можно временно убрать строку, выполнить другую команду и получить прежнюю обратно.
В раскладке Emacs нажмите Esc, отпустите, затем q. Виджет
push-line сохранит строку и очистит приглашение. После выполнения следующей команды сохранённый текст вернётся, но автоматически не запустится.В заметке Адама Джонсона есть настройка для многострочных команд:
bindkey '^[q' push-line-or-edit
Добавьте её в
~/.zshrc. Если команда вводится на нескольких строках, первое Esc → q соберёт её в единый редактируемый буфер. Повторное нажатие отложит уже весь буфер.Удобно, когда перед запуском нужно перейти в каталог, включить окружение или проверить имя файла. Сочетание относится к Zsh и зависит от настроек клавиш вашей оболочки.
#терминал #zsh
❤2👎1
VS Code: меньше ручной работы с Markdown
Скриншот для инструкции, ссылка на локальный файл, длинный README с десятком разделов — в VS Code 1.142 для этих задач обновили редактор Markdown.
В описании релиза перечислены несколько полезных изменений. Изображение можно вставить прямо из буфера обмена. Для файловых ссылок появился Rename Symbol по F2: переименование отражается по документу.
Редактор также подключили к Outline и навигационной цепочке над документом. По заголовкам проще переходить, не прокручивая весь файл. У блоков кода при наведении появляется кнопка копирования.
В режиме редактирования каждая исходная строка теперь занимает отдельную визуальную строку, чтобы структура Markdown читалась яснее. Режим просмотра сохраняет привычное отображение.
Пригодится тем, кто ведёт инструкции, заметки к релизам и документацию рядом с кодом. Эти изменения входят в стабильный выпуск от 14 октября.
#vscode #документация
Скриншот для инструкции, ссылка на локальный файл, длинный README с десятком разделов — в VS Code 1.142 для этих задач обновили редактор Markdown.
В описании релиза перечислены несколько полезных изменений. Изображение можно вставить прямо из буфера обмена. Для файловых ссылок появился Rename Symbol по F2: переименование отражается по документу.
Редактор также подключили к Outline и навигационной цепочке над документом. По заголовкам проще переходить, не прокручивая весь файл. У блоков кода при наведении появляется кнопка копирования.
В режиме редактирования каждая исходная строка теперь занимает отдельную визуальную строку, чтобы структура Markdown читалась яснее. Режим просмотра сохраняет привычное отображение.
Пригодится тем, кто ведёт инструкции, заметки к релизам и документацию рядом с кодом. Эти изменения входят в стабильный выпуск от 14 октября.
#vscode #документация
👍3
Tachyon: найти медленный участок Python-программы
В Python 3.15 появился статистический профилировщик Tachyon в модуле
В разборе Astral его запускают через uv и открывают диаграмму в браузере. Для своего файла команда выглядит так:
На диаграмме ищите широкие участки стека и проверяйте, какая работа за ними стоит. В примере статьи заметную долю выборок занимало объединение списков через
Доля выборок не равна числу вызовов функции. После изменения кода отдельно измерьте полное время программы на той же нагрузке. В примере используется Python 3.15; запуск через uv требует доступного интерпретатора и зависимостей проекта.
#python #профилирование
В Python 3.15 появился статистический профилировщик Tachyon в модуле
profiling.sampling. Он периодически снимает состояние стеков и помогает увидеть, где программа проводит время.В разборе Astral его запускают через uv и открывают диаграмму в браузере. Для своего файла команда выглядит так:
uv run --python=3.15 -m profiling.sampling run --flamegraph --browser app.py
На диаграмме ищите широкие участки стека и проверяйте, какая работа за ними стоит. В примере статьи заметную долю выборок занимало объединение списков через
sum(). Замена этого участка сократила время конкретного запуска примерно вдвое.Доля выборок не равна числу вызовов функции. После изменения кода отдельно измерьте полное время программы на той же нагрузке. В примере используется Python 3.15; запуск через uv требует доступного интерпретатора и зависимостей проекта.
#python #профилирование
✍2
Docker Compose: корректный YAML ещё не гарантирует поведение
Параметр может существовать в спецификации Compose и проходить проверку схемы, но не поддерживаться при обычном запуске через
В Compose 5.6.0 добавили предупреждения о неподдерживаемых атрибутах файла. Это помогает заметить ситуацию, когда настройка записана, а ожидаемого эффекта нет.
Например, параметры обновления сервисов для Swarm не превращают локальный Compose в оркестратор с таким же механизмом развёртывания. При переносе конфигурации между средами стоит проверять поддержку конкретных полей, а затем фактическое поведение контейнеров.
В том же выпуске появилась частичная поддержка jobs: пока доступны только задания с ручным запуском. Задания по расписанию ещё ждут соответствующей поддержки Docker Engine.
Полезная проверка после обновления: перечитать предупреждения запуска и сопоставить их с настройками, на которые рассчитывает ваш проект.
#docker #конфигурация
Параметр может существовать в спецификации Compose и проходить проверку схемы, но не поддерживаться при обычном запуске через
docker compose up.В Compose 5.6.0 добавили предупреждения о неподдерживаемых атрибутах файла. Это помогает заметить ситуацию, когда настройка записана, а ожидаемого эффекта нет.
Например, параметры обновления сервисов для Swarm не превращают локальный Compose в оркестратор с таким же механизмом развёртывания. При переносе конфигурации между средами стоит проверять поддержку конкретных полей, а затем фактическое поведение контейнеров.
В том же выпуске появилась частичная поддержка jobs: пока доступны только задания с ручным запуском. Задания по расписанию ещё ждут соответствующей поддержки Docker Engine.
Полезная проверка после обновления: перечитать предупреждения запуска и сопоставить их с настройками, на которые рассчитывает ваш проект.
#docker #конфигурация
IntelliJ IDEA: действия редактора через две точки
Нужная команда IDE часто существует, но её сочетание клавиш вспоминается дольше, чем занимает само действие. В IntelliJ IDEA можно начать с
Как показано в заметке JetBrains, command completion предлагает действия с учётом кода и положения курсора: навигацию, рефакторинг, генерацию и исправления.
В 2026.3 EAP этот механизм расширили. Появился более прямой доступ к logpoints, подсветка элемента, к которому применится действие, и общий интерфейс с postfix completion и живыми шаблонами. Поддержку также развивают для файлов настроек и декомпилированного кода.
Базовый вызов через две точки можно попробовать в Java-, Kotlin- или Scala-файле в IDEA 2026.2. Новые возможности из статьи относятся к предварительной 2026.3 EAP, поэтому набор действий зависит от версии и контекста.
#intellij #ide
Нужная команда IDE часто существует, но её сочетание клавиш вспоминается дольше, чем занимает само действие. В IntelliJ IDEA можно начать с
.. прямо в редакторе.Как показано в заметке JetBrains, command completion предлагает действия с учётом кода и положения курсора: навигацию, рефакторинг, генерацию и исправления.
В 2026.3 EAP этот механизм расширили. Появился более прямой доступ к logpoints, подсветка элемента, к которому применится действие, и общий интерфейс с postfix completion и живыми шаблонами. Поддержку также развивают для файлов настроек и декомпилированного кода.
Базовый вызов через две точки можно попробовать в Java-, Kotlin- или Scala-файле в IDEA 2026.2. Новые возможности из статьи относятся к предварительной 2026.3 EAP, поэтому набор действий зависит от версии и контекста.
#intellij #ide
Chrome DevTools: измерять переходы внутри SPA
В одностраничном приложении адрес и содержимое меняются без полной загрузки документа. Поэтому одной записи первоначального открытия страницы недостаточно, чтобы оценить следующие переходы.
В обзоре Chrome DevTools описана поддержка soft navigation в разделе Insights панели Performance. Она дополняет отображение таких переходов в Live Metrics и записи выполнения.
Для проверки откройте Performance, начните запись и выполните нужный переход в приложении. Если DevTools распознал его как soft navigation, можно рассмотреть соответствующий участок и связанные подсказки по производительности.
В том же обновлении поиск по Ctrl+F научился находить записи пользовательских дорожек, добавленных через Extensibility API, включая их свойства и текст подсказок.
Сценарии стоит записывать отдельно: открытие приложения, переход между экранами, повторное посещение уже загруженного раздела.
#devtools #производительность
В одностраничном приложении адрес и содержимое меняются без полной загрузки документа. Поэтому одной записи первоначального открытия страницы недостаточно, чтобы оценить следующие переходы.
В обзоре Chrome DevTools описана поддержка soft navigation в разделе Insights панели Performance. Она дополняет отображение таких переходов в Live Metrics и записи выполнения.
Для проверки откройте Performance, начните запись и выполните нужный переход в приложении. Если DevTools распознал его как soft navigation, можно рассмотреть соответствующий участок и связанные подсказки по производительности.
В том же обновлении поиск по Ctrl+F научился находить записи пользовательских дорожек, добавленных через Extensibility API, включая их свойства и текст подсказок.
Сценарии стоит записывать отдельно: открытие приложения, переход между экранами, повторное посещение уже загруженного раздела.
#devtools #производительность