company_banner

GoLand 2019.1: анализ производительности кода, Smart Step Into, рефакторинг Extract Interface, Nilness Analyzer и другое

    Привет, Хабр!


    Две недели назад мы выпустили GoLand 2019.1 и спешим рассказать вам о новинках этого релиза.




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


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


    Это новое действие доступно в меню Run, на панели навигации и в контекстном меню иконок запуска тестов. Результаты профилирования кода смотрите в окне Profiler (View | Tool Windows | Profiler).


    Чтобы получить более четкую картину проблем производительности, используйте вкладки Flame Chart, Call Tree и Method List. Помимо этого, для каждого вида профилировщика мы добавили метрики, соответствующие его типу. Например, профилировщик Memory позволяет сортировать и исследовать результаты по метрикам Allocated objects, Allocated space, In-use objects и In-use space.


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


    Подробнее про профилирование приложений и тестов в GoLand читайте здесь (на английском).




    Отладка


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


    Новое действие Smart Step Into облегчает отладку цепочки вызовов и вызовов вложенных методов. Оно выполняет необходимый вызов в выражении, автоматически переступая через методы, которые вас не интересуют.


    Например, при отладке кода fmt.Printf(«My name is %s, I am %d!», me.FullName(), me.Age()) вы можете сразу перейти в вызов Age().


    Чтобы вызвать это действие, нажмите Shift+F7 или выберите Smart Step Into в меню Run.




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


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




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




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




    Run/Debug Configurations теперь можно запускать с sudo. Это позволяет отлаживать приложения, которые требуют привилегированных прав от пользователя.




    В предыдущем релизе мы добавили поддержку анализа дампов памяти. Теперь можно анализировать малые дампы памяти, создаваемые Windows. Чтобы начать, выберите Open Core Dump в меню Run.




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


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


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


    Чтобы вызвать рефакторинг, нажмите Ctrl+Alt+Shift+T на Windows / Linux или ^T на macOS и во всплывающем меню выберите Extract Interface.




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


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




    Проверка кода


    Nilness Analyzer — набор инспекций, которые определяют, могут ли переменные иметь значение nil или нет, и предупреждают вас о потенциально уязвимых местах и ошибках в коде, которые могут вызвать runtime panic. Например, использование полей структур через указатель nil, вызов методов на интерфейсе nil, доступ к nil-слайсам и так далее.








    Go Modules


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




    При создании проекта Go Module теперь можно выбрать Vendoring mode. Этот режим позволяет использовать библиотеки из папки vendor без каких-либо внешних зависимостей или подключения к Интернету. Эта опция есть и в настройках: Preferences | Go | Go Modules (vgo).




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


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


    Как только выбранная версия SDK будет установлена, GoLand сообщит об этом в окне Event Log.




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


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


    Полный список действий смотрите в настройках: Settings/Preferences | Editor | Intentions.




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




    Кастомные темы


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




    О том, как делать свои темы, читайте тут:



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


    Добавили в настройки раскладку клавиатуры Sublime Text: Preferences/Settings | Keymap. Раскладку для VS Code можно использовать с помощью этого плагина.




    Всплывающее окно Recent Location — новый центр поиска. Оно показывает список всех мест в коде проекта, где вы производили какие-то изменения или просто читали код. Сочетание клавиш по умолчанию: Shift+Ctrl+E на Win/Lin, ⇧⌘E на macOS.




    На начальный экран мы добавили шаблоны проектов для веб-разработки, такие как React App, React Native, HTML5 Boilerplate и Foundation.




    Теперь можно экспортировать настройки стиля кода в формат JSON. Это дополнение к уже имеющейся опции экспорта в XML: Preferences/Settings | Editor | Code Style.




    Вот и все! Читайте про изменения этого релиза подробнее или же смотрите короткое демо(на английском):



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


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


    Спасибо за внимание!

    • +28
    • 4,2k
    • 4
    JetBrains
    169,00
    Делаем эффективные инструменты для разработчиков
    Поделиться публикацией

    Похожие публикации

    Комментарии 4

      +1
      Спасибо за статью! Теперь стало еще более удобно работать с проектами.
        0
        Пожалуйста! Приятно слышать :)
        0
        Интеграция профилировщиков это здорово! За это отдельное спасибо.
        Подскажите, а планируется ли подобная интеграция с DataGrip?
        Например, есть строка с открытием БД, в которой есть все параметры доступа, чтобы по какой-либо команде открывался DataGrip с соответствующими подцепленными параметрами…
          +1
          БД можно открыть прямо в GoLand без дополнительного DataGrip, поскольку все возможности DataGrip по дефолту есть в GoLand.

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