Goland 2019.1: Анализ Производительности Кода, Smart Step Into, Рефакторинг Извлечения Интерфейса, Анализатор Nilness И Многое Другое

Привет, Хабр! Две недели назад мы выпустили GoLand 2019.1 и спешим рассказать вам о новых возможностях этого релиза.



GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг извлечения интерфейса, анализатор Nilness и многое другое



Анализ производительности кода

Мы добавили интеграцию с профилировщиками памяти, процессора, мьютекса и блоков! Теперь вы можете запустить любой из них одним нажатием кнопки и проанализировать результаты профилирования, не выходя из IDE. Это новое действие доступно в меню.

Бегать , на панели навигации и в контекстном меню значков запуска теста.

Результаты профилирования кода можно увидеть в окне Профилировщика ( Посмотреть | Инструментальные окна | Профайлер ).

Чтобы получить более четкое представление о проблемах с производительностью, используйте вкладки Таблица пламени , Дерево вызовов И Список методов.

Кроме , Для каждого типа профайлера мы добавили метрики, соответствующие его типу.

Например, профилировщик памяти позволяет сортировать и исследовать результаты по метрикам.

Выделенные объекты , Выделенное пространство , Используемые объекты И Используемое пространство .

Кроме того, из окна Профилировщика можно перейти к исходному коду за один шаг, нажав клавишу F4 .

Узнайте больше о профилировании приложений и тестах в GoLand. Здесь (по-английски).



GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг извлечения интерфейса, анализатор Nilness и многое другое



Отладка

Эта версия добавляет в отладчик множество новых функций.

Новое действие Умный шаг в упрощает отладку цепочек вызовов и вызовов вложенных методов.

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

Например, при отладке fmt.Printf("Меня зовут %s, я %d!", me.FullName(), me.Age()) вы можете сразу перейти к вызову Age().

Чтобы запустить это действие, нажмите Shift+F7 или выберите Умный шаг в в меню Бегать .



GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг извлечения интерфейса, анализатор Nilness и многое другое

Отладчик теперь по умолчанию отображает горутины вместо потоков.

Однако при необходимости вы можете быстро переключаться между ними.

Использовать действие Копировать стек щелкните правой кнопкой мыши горутину, чтобы скопировать весь стек в буфер обмена.



GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг извлечения интерфейса, анализатор Nilness и многое другое

Щелчок правой кнопкой мыши по переменной int преобразует ее значение в двоичное, десятичное или шестнадцатеричное.



GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг извлечения интерфейса, анализатор Nilness и многое другое

Бежать к курсору теперь активируется нажатием на номер строки во время отладки.

Наведите указатель мыши на строку, чтобы выделить ее, и щелкните ее номер, чтобы запустить.

Бежать к курсору .



GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг извлечения интерфейса, анализатор Nilness и многое другое

Конфигурации запуска/отладки Теперь вы можете запустить его с помощью sudo. Это позволяет отлаживать приложения, требующие от пользователя привилегированных прав.



GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг извлечения интерфейса, анализатор Nilness и многое другое

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

Теперь вы можете анализировать небольшие дампы памяти, созданные Windows. Чтобы начать, выберите Открыть дамп ядра в меню Бегать .



GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг извлечения интерфейса, анализатор Nilness и многое другое



Рефакторинг кода

Рефакторинг Извлечь интерфейс поможет быстро создать новый интерфейс на основе выбранного типа, извлекая из него необходимые определения методов.

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

Там же вы можете указать его имя и выбрать файл, папку и пакет, в котором будет находиться этот интерфейс.

Чтобы запустить рефакторинг, нажмите Ctrl+Alt+Shift+T на Windows/Линукс или в macOS и во всплывающем меню выберите Извлечь интерфейс .



GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг извлечения интерфейса, анализатор Nilness и многое другое

Переименовать теперь можно переименовывать методы, объявленные в интерфейсах.

При переименовании таких методов GoLand также предложит вам переименовать их реализации.

Прежде чем применить рефакторинг, посмотрите, что вы увидите на панели предварительного просмотра.



GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг извлечения интерфейса, анализатор Nilness и многое другое



Обзор кода

Анализатор Нильнесса — набор проверок, которые определяют, могут ли переменные быть нулевыми или нет, и предупреждают вас о потенциальных уязвимостях и ошибках в коде, которые могут вызвать панику во время выполнения.

Например, использование полей структуры через нулевой указатель, вызов методов в нулевом интерфейсе, доступ к нулевым срезам и т. д.

GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг извлечения интерфейса, анализатор Nilness и многое другое



GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг извлечения интерфейса, анализатор Nilness и многое другое



GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг извлечения интерфейса, анализатор Nilness и многое другое



Модули Go

GoLand предлагает варианты завершения кода для всех модулей, находящихся в кеше.

Другими словами, если модуль никогда не импортировался и не использовался в этом проекте, но вы уже использовали его ранее в другом, GoLand запомнит это и предложит вам это сделать.



GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг извлечения интерфейса, анализатор Nilness и многое другое

При создании проекта модуля Go теперь вы можете выбрать Режим торговли .

Этот режим позволяет использовать библиотеки из папки поставщика без каких-либо внешних зависимостей или подключения к Интернету.

Эта опция также доступна в настройках: Предпочтения | Перейти | Модули Go (vgo) .



GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг извлечения интерфейса, анализатор Nilness и многое другое



Установите любую версию GO SDK прямо с GoLand.

При создании нового проекта в GoLand вы можете скачать и установить любую версию SDK, включая Beta и RC-версии, не выходя из IDE. После установки выбранной версии SDK GoLand уведомит вас об этом в окне.

Журнал событий .



GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг извлечения интерфейса, анализатор Nilness и многое другое



Работа с кодом

Мы добавили набор действий, чтобы упростить работу с объявлениями переменных, констант и типов.

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

Полный список действий смотрите в настройках: Настройки/Настройки | Редактор | Намерения .



GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг извлечения интерфейса, анализатор Nilness и многое другое

Новое действие Экспорт экспортирует функцию, тип, переменную или константу из другого пакета прямо там, где она используется, без необходимости перехода к объявлению.



GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг извлечения интерфейса, анализатор Nilness и многое другое



Пользовательские темы

Начиная с версии 2019.1, вы можете создавать любую цветовую схему для всех наших IDE на базе IntelliJ IDEA. Новая схема используется в качестве плагина, поэтому ею можно легко поделиться с другими.

Мы не удержались и сделали несколько своих вариантов: Темно фиолетовый , Голубой свет И Серый .



GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг извлечения интерфейса, анализатор Nilness и многое другое

О том, как создавать свои собственные темы, читайте здесь:



Общие изменения

В настройки добавлена раскладка клавиатуры Sublime Text: Предпочтения/Настройки | Раскладка клавиатуры .

Макет для VS Code можно использовать с помощью этого плагин .



GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг извлечения интерфейса, анализатор Nilness и многое другое

Всплывающее окно Недавнее местоположение - новый поисковый центр.

Он показывает список всех мест в коде проекта, где вы внесли какие-то изменения или просто прочитали код. Сочетание клавиш по умолчанию: Shift+Ctrl+Е на Вин/Лин, ⇧⌘? на MacOS.

GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг извлечения интерфейса, анализатор Nilness и многое другое

Мы добавили на главный экран шаблоны проектов веб-разработки, такие как React App, React Native, HTML5 Boilerplate и Foundation.

GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг извлечения интерфейса, анализатор Nilness и многое другое

Теперь вы можете экспортировать настройки стиля кода в формат JSON. Это в дополнение к существующей опции экспорта XML: Предпочтения/Настройки | Редактор | Стиль кода .



GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг извлечения интерфейса, анализатор Nilness и многое другое

Вот и все! Читать об изменениях в этом выпуске подробнее или посмотрите короткую демонстрацию (на английском языке): Кстати, идеи по улучшению мы часто берем из ваших отзывов и предложений.

Напишите нам здесь в комментариях, в нашем баг-трекере или Твиттер .

И на всякий случай напоминаю, что если вы уже используете IntelliJ IDEA Ultimate, то все возможности GoLand доступны тут же, вам нужно просто установить это плагин .

Спасибо за внимание! Теги: #программирование #Go #golang #jetbrains #goland #goland

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.