Intellij idea как сделать код красивым

Добавил пользователь Алексей Ф.
Обновлено: 18.09.2024

При командной разработке очень важно соблюдать единый стиль оформления кода. Часто споры о том, что следует применять для форматирования кода, пробелы или табуляцию, превращаются в холивар. Спорить об этом можно бесконечно, да это и бессмысленно.

Мне же больше нравится отступы делать табуляцией. Для настройки отступов выберите Project Settings - Code Style - Java. Затем на вкладке Tabs and Indents выберите Use tab character. Таким образом, при форматировании кода Idea автоматически будет делать отступы при помощи символа табуляции, а не пробелами.

Для написания Java-программы по большому счету достаточно обыкновенного текстового редактора, но, конечно же, такой вариант просто несопоставим с использованием профессиональных сред разработки приложений, так называемых IDE (Integrated Development Environment).

IntelliJ IDEA – это интегрированная среда разработки программного обеспечения на Java от компании JetBrains. Кстати, не только на Java. Среда с успехом используется и для других языков программирования, например, Scala. Первая версия программы появилась в 2001 г. и с тех пор программа неуклонно повышает свой рейтинг популярности. IntelliJ IDEA выпускается в двух редакциях: Community Edition и Ultimate Edition. Первая версия является полностью бесплатной. Вторая версия распространяется под различными лицензиями и, как декларируется, может использоваться бесплатно для разработки проектов с открытым программным кодом. Впрочем, и даже без этого по окончанию использования мною версии Ultimate Edition, я получил просто уведомление, что могу работать с ней непрерывно на протяжении только получаса.

Версии отличаются также поддерживаемыми технологиями.

  1. Ultimate Edition:
    • полнофункциональная среда разработки под JVM и разработке на различных языках: Java, PHP, JavaScript, HTML, CSS, SQL, Ruby, Python;
    • поддержка технологий Java EE, Spring/Hibernate и других;
    • внедрение и отладка с большинством серверов приложений.
  2. Community Edition:
    • полнофункциональная среда разработки для Java SE, Groovy и Scala;
    • мощная среда для разработки под Google Android.

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

Естественно, IntelliJ IDEA – не единственная среда создания приложений для Java, достаточно припомнить популярную Eclipse или NetBeans, так что разработчику есть из чего выбирать, а его предпочтения зачастую обусловлены субъективными факторами, например, он – начиная программировать на Java – прочитал статью про конкретную среду, что и обусловило его последующий выбор. Вполне возможно, что и данный цикл статей послужит для кого-то началом работы с IntelliJ IDEA, тем более что система, на мой взгляд, более чем удобная.

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

Инсталляция системы

Справочная система

Для IntelliJ IDEA имеется документация достаточно большого объема на английском языке. Поэтому при щелчке пункта Help в главном меню открывается не встроенная, а on-line справка на сайте компании JetBrains.

Имеется также возможность получить документацию по конкретному элементу кода, для чего нужно установить на нем курсор и нажать комбинацию + .


Более того, вообще можно закрепить окно с документацией на боковой панели (по умолчанию – на правой), сделав его инструментальным, щелкнув кнопку прикрепления на заголовке окна документации. Правда, на мой взгляд, это мало что дает, поскольку при открытии этого окна оно будет отображать только последнюю выведенную документацию.

Интерфейс программы

Стартовое окно


После работы с определенным проектом, он запоминается, и при последующем запуске программы происходит загрузка последнего открытого проекта. Впрочем, это происходит при настройках программы по умолчанию, когда в группе Appearance & Behavior (Внешний вид и поведение), System Setting (Настройки программы) установлен флажок для поля-метки “Reopen last project on startup” (Открывать последний проект при загрузке).

Основное окно

Основное окно программы в общем виде состоит из трех областей, называемых также инструментальными окнами и окна редактора. Инструментальные окна располагаются по периметру окна редактора, то есть слева, справа и внизу от него на полях главного окна, которые в дальнейшем будем называть боковыми панелями (sidebar в терминологии программы). Поскольку инструментальные окна отображают разноплановую информацию, то каждая боковая панель содержит ряд вкладок, которые открываются при выполнении определенной команды. Переход к нужной вкладке (инструментальному окну) осуществляется щелчком на ее названии, которые располагаются на боковых панелях главного окна. Названию некоторых вкладок инструментальных окон предваряет цифра. Используя клавишу совместно с этой цифрой, можно быстро перейти к этой вкладке, попутно открыв ее, если она находится в свернутом положении, либо, наоборот, свернуть ее. Кроме того, любое инструментальное окно можно отобразить в основном окне командой View Tool Windows либо воспользовавшись ее комбинацией клавиш быстрого вызова.

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


Окно редактора


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


Программа содержит внушительный инструментарий управления вкладками окна. Так, расположение вкладок можно произвольно изменять, располагая их, например, горизонтально, перебрасывая файлы из одной группы вкладок в другую, что достигается при помощи группы команд WindowsEditor Tabs либо из контекстного меню, вызываемого на вкладке окна редактирования. При необходимости конкретную вкладку можно закрепить, что бывает полезным при большом количестве вкладок, когда все они не помещаются в окне редактирования, для чего используем команду Pin Tab, о чем речь пойдет ниже.

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

По левому краю окна редактирования расположены метки блоков кода, при помощи которых можно быстро свернуть блок за ненадобностью либо вновь его развернуть. С этой же стороны окна располагаются точки останова (при их наличии), советы по модификации кода и некоторая другая информация.


Сам программный код (подсветка текста, шрифты) оформляются в соответствии с настройками программы, о чем речь пойдет позже.

Инструментальные окна

Инструментальное окно проекта

На левой боковой панели отображается инструментальное окно проекта. Оно содержит вкладку иерархической структуры проекта (Project) и вкладку структуры (списка метода) класса (Structure).



Такой вариант полезен, если в окне редактора открыто две вкладки и более (а это, конечно, практически всегда имеет место). В этом случае переход в окне проекта с одного объекта на другой приводит к отображению в окне редактора кода выбранного объекта. И, наоборот, при переходе с одной вкладки на другую в окне редактирования курсор в окне проекта переходит на имя класса, код которого отображается во вкладке окна редактора.

Инструментальное окно с инструментами сборки проектов

Данное окно располагается на правой боковой панели. Оно изначально содержит две вкладки для двух наиболее распространенных инструментов сборки проектов Java – Maven и Ant.

Инструментальное окно вывода

Управление инструментальными окнами

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

Кнопка настройки содержит меню, в котором содержатся команды управления окном.

Окно может содержать собственную панель инструментов. Для ее отображения или, наоборот, удаления, следует раскрыть меню кнопки настройки и установить/снять флажок возле пункта меню Show Toolbar (Отображать панель).


Инструментальные окна могут отображаться как в фиксированном режиме, в определенных местах основного окна, так и в плавающем режиме, то есть в произвольном месте основного окна. Для переключения между режимами следует раскрыть меню кнопки настройки и установить/снять флажок возле пункта меню Floating Mode (Плавающий режим).

Если окно отображается в фиксированном режиме, то возможны два его состояния, устанавливаемые в пункте меню Docked Mode (Режим способа стыковки). При наличии флажка возле этого пункта окно находится в состоянии смешения, сдвигая окно редактора. Если же снять флажок, то окно переходит в состояние перекрытия, при котором окно перекрывает окно редактора.

И, наконец, если окно отображается в фиксированном режиме в состоянии смешения, то становится доступным режим (пункт меню) Pinned Mode (Закрепленный режим). При наличии флажка возле этого пункта окно постоянно отображается в основном окне. Если же снять флажок, то окно будет автоматически убираться с экрана при потере фокуса.

Выше было отмечено, что инструментальные окна можно расположить на разных боковых панелях главного окна. Но и местонахождение конкретного окна можно также изменить, включив его в состав другой боковой панели. Для этого следует вызвать контекстное меню на названии инструментального окна на боковой панели, выбрать из него пункт Move (Переместить), а затем направление перемещения. На приведенном ниже screenshot видим, например, что инструментальное окно с правой боковой панели можно переместить на нижнюю (Top), левую (Left) и верхнюю (Bottom) боковую панель.


Инструментальное окно может быть и вовсе удалено, для чего также следует вызвать контекстное меню на названии инструментального окна на боковой панели и выбрать из него пункт Remove from Sidebar (Удалить с боковой панели).

В главном меню основного окна имеется также пункт меню Windows, содержащий команды для управления ее окнами.

Панели


На мой взгляд, целесообразно оставить на экране все основные панели программы (при отсутствии какой-то из них выполните команду Viewназвание панели):

Отключение / включение панелей производится также в меню команды View.

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

Настройки

Обращение к настройкам программы осуществляется командой FileSetting или щелчком кнопки на главной панели инструментов.


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

Пока же ограничусь буквально несколькими общими настройками.

У меня сложилось очень высокое мнение о IntelliJ IDEA, однако возможности ее совершенствования практически безграничны. И немалый вклад в этот процесс могут внести и сами пользователи, что, например, может осуществляться на основе собираемой о работе программы статистики. Для этого нужно позволить программе осуществлять такой сбор. С этой целью в настройках следует последовательно раскрыть пункты Appearance & Behavior, System Setting, выбрать пункт Usage Statistics (Статистика использования), установить флажок для поля-метки “Allow sending usage statistics to JetBrains s.r.o.” (Позволить собирать пользовательскую статистику JetBrains), а затем установить флажок возле периодичности отправки такой информации (день, неделя, месяц).



И последнее. В IntelliJ IDEA предусмотрена возможность сохранения настроек (File Export Setting) и их восстановления (FileImport Setting).

Расширение системы


На просторах Интернета периодически возникают одни и те же вопросы. Формы Swing, созданные в IntelliJ IDEA не отображаются или не отображаются элементы интерфейса на них.

Как решить эту проблему?

Шаг 1. Правильно настроить IDE

Настройки GUI Designer

После этого для исходного кода форм IntelliJ IDEA будет генерировать соответствующие java классы.

Шаг 2. Собрать проект

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

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

Шаг 3. Доработать класс формы

Для того чтобы форма и элементы интерфейса на ней могли корректно отобразиться на экране необходимо доработать сгенерированный класс формы.

    Сделать класс формы наследником класса

Метод лучше сделать статическим в виде обычного метода main.

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

Шаг 4. Вызвать форму в главном классе приложения

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

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

В противном случае предварительно создаём объект формы.

Все вышеописанные нюансы – следствие издержек стандартного плагина UI Designer, который входит в дистрибутив.

Другие плагины для создания графического интерфейса лишены этих недостатков. Например, JFormDesigner. Но, к сожалению, многие из них платные. На данный момент, стоимость некоммерческой лицензии на тот же JFormDesigner составляет от 79$, коммерческой от 159$ в расчёте на одного пользователя.

Поэтому, если нет возможности или желания покупать дополнительные плагины, скорее всего, придётся:




Первая часть тут

Переход к связанному модульному тесту

С каким еще общим шаблоном навигации мы сталкиваемся при написании кода (особенно, когда мы хотим убедиться, что код работает должным образом)? Мы перемещаемся между классами и соответствующими юнит-тестами. IntelliJ IDEA может распознавать тесты, относящиеся к определенному классу, и предлагает команду под названием Go to a test (Перейти к тесту), назначенную на Ctrl + Shift + T (Cmd + Shift + T для OS X), которая позволяет вам переходить из любого класса к его тестам и наоборот:


Если у класса еще нет тестов, команда поможет вам создать их.

Перемещение вверх по иерархии

Другой распространенный случай — когда вам нужно перейти вверх по иерархии классов для текущего метода (или для всего класса). В большинстве IDE вы можете увидеть специальный значок рядом с определениями методов. Нажав на такой значок, вы можете перейти к соответствующему определению метода в суперклассе (или интерфейсе). В дополнение к этому IntelliJ IDEA имеет специальную команду, которая называется Super Method (Супер метод), доступная через Ctrl + U (Cmd + U для OS X). Эта команда позволяет вам перемещаться одним движением, так что вам даже не придется касаться мышки.

Перемещение вниз по иерархии

Если вы можете перейти вверх по иерархии ваших классов, почему тогда нельзя перейти вниз? Только несколько IDE предоставляют такую возможность, и IntelliJ IDEA является одной из них. В дополнение к иконкам, которые ведут вас в суперкласс, IntelliJ IDEA предоставляет иконки для перехода к соответствующему определению метода в производном классе, поэтому вы можете перемещаться в обоих направлениях: вверх и вниз.


Если вы хотите перемещаться по иерархии еще быстрее, можете использовать команду Implementations (Реализации), назначенную на Ctrl + Alt + B (Cmd + Alt + B для OS X). Эта команда позволяет вам выбрать из всего списка производных классов одну из реализаций, к которой вы хотите перейти:


Иерархия методов

А что если вам нужно увидеть всю иерархию классов, которые реализуют или переопределяют текущий метод? В IntelliJ IDEA вы можете сделать это, вызвав команду Method Hierarchy (Иерархия методов), доступную через Ctrl + Shift + H (Cmd + Shift + H для OS X). Эта команда может помочь вам выяснить, к какому классу вы хотите перейти.


Всплывающая диаграмма

Мы только что узнали, как перемещаться по иерархии определений ваших методов. Иногда нам также может понадобиться перемещаться по иерархии текущего класса (или класса, на котором находится курсор, независимо от каких-либо методов). Для этого в большинстве IDE вы можете использовать команду, которая показывает иерархию данного класса (или интерфейса). В IntelliJ IDEA такая команда называется Type Hierarchy (Иерархия типов) и ее можно вызвать, нажав Ctrl + H.


Как видите, результатом этой команды является дерево. Для некоторых людей такой формат может быть сложен для восприятия. Поэтому IntelliJ IDEA также есть другая команда с названием Diagram popup (Всплывающая диаграмма), назначенная на Ctrl + Alt + U (Cmd + Alt + U для OS X). Вместо того, чтобы показывать скучное дерево, эта команда визуализирует иерархию данного класса на диаграмме:


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

Иерархия вызовов методов

Говоря о навигации по иерархиям, классам и определениям методов, мы рассмотрели практически все, кроме одного: навигации по иерархии вызовов методов. Каждый метод вызывает другие методы, которые вызывают другие методы и т. д. Поэтому иногда вам может потребоваться перейти к одному из методов, которые вызываются из текущего или вызывают текущий метод. В IntelliJ IDEA вы можете быстро получить всплывающее окно с иерархией вызовов методов с помощью команды Call Hierarchy (иерархия вызовов), назначенного на Ctrl + Alt + H:


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

Еще один распространенный шаблон — это переход в одно из мест, где используется символ (константа, поле, переменная, метод, класс или интерфейс), на котором стоит курсор. Для этого в любых IDE вы можете использовать команду Find usages (Найти использования символа). Одним из недостатков этой команды, как правило, является ее большой вес: он запускает длительный процесс поиска и открывает окно инструментов с результатами. Поэтому IntelliJ IDEA также предлагает облегченную версию этой команды под названием Show usages (Показать использование символа), доступную через Alt + Ctrl + F7 (Cmd + Alt + F7 для OS X):

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

Последние отредактированные файлы

Первый шаблон в этой статье был о навигации по последним файлам. Что если мы хотим сузить этот список до файлов, которые были недавно отредактированы? Это легко сделать в IntelliJ IDEA с командой Recently Edited Files (Последние отредактированные файлы), назначенной на Ctrl + Shift + E (Cmd + Shift + E для OS X):


Навигация между представлениями и контроллерами

Как вы думаете, ваша IDE должна распознавать только общие отношения (такие как иерархия классов, тестовое покрытие, использования и т. д.) в файлах вашего проекта? Как насчет чего-то более конкретного? Для навигации, основанной на особых отношениях, IntelliJ IDEA предоставляет команду Related symbol (Связанный символ), назначенную на Ctrl + Alt + Home (Cmd + Alt + Home для OS X). С помощью этой команды, например, вы можете легко перемещаться между вашими представлениями и контроллерами в Spring MVC, Grails или даже JavaFX-приложении:


Навигация к контроллеру представления

Поскольку IntellIJ IDEA также может распознавать особые отношения в вашем проекте, то какие другие конкретные шаблоны навигации в ней есть? Если вы разработчик веб-приложения, вы можете вызвать команду Go to a symbol (Перейти к символу), чтобы перейти к контроллеру представления, введя URL-адрес, на который он назначен:


Шаблоны навигации по базе данных

Инструменты базы данных в IntelliJ IDEA также имеют свои специфические шаблоны навигации. Вы можете быстро перейти к таблице в окне инструментов базы данных, введя ее имя с помощью команды Go to a symbol (Перейти к символу):


Если вы вызовете команду Find usages (Найти использования символа) для таблицы или столбца, IntelliJ IDEA покажет вам все другие таблицы, которые ссылаются на них:


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


Закладки

Последний, но не менее важный шаблон, на который мы обратим внимание, — это навигация по интересующим вас местам в рамках вашего проекта с помощью закладок. IntellIJ IDEA предоставляет для этого очень удобные инструменты. Чтобы добавить (или удалить) текущее место в/из ваших закладок, нажмите F11. Как только вы это сделаете, вы сразу увидите соответствующий значок слева. После этого, когда вы захотите вернуться к сохраненной закладке, нажмите Shift + F11 и выберите ее из списка:


Выводы

Я надеюсь, что эта статья дала вам некоторое представление о том, как IntelliJ IDEA помогает перемещаться по проекту, не отвлекаясь от кода. Навигация определяет насколько быстро вы переключаетесь между фрагментами кода, над которым работаете. Чем быстрее вы переключаетесь, тем вы продуктивнее.

И помните: чем лучше вы знаете свою IDE, тем больше времени вы тратите на то, что вам действительно нравится.

Читайте также: