Найти тему
(java || kotlin) && devOps

Одна IDEA чтобы объединить всех

Всем привет!

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

Предположу, что у большинства Java разработчиков IDE - это IntelliJ IDEA. Бесплатная Community или платная Ultimate.

Да, конечно, существуют Netbeans и Eclipse. У первой сложная судьба - начинала как "придворная" IDE в Sun\Oracle, а заканчивает как open-source в Apache Foundation.

Вторая - изначально open-source, с акцентом на расширяемость плагинами, довольно активно развивается. Еще Eclipse - живой пример использования OSGi. Но есть нюанс. На мой взгляд любой успешный (!) коммерческий продукт, создатели которого не продали душу богу маркетинга (!) - т.е. не соблазнились свистелками, а вместо этого думают о пользователе - будет бить open-source за счет возможности координации усилий. Приведу примеры. Вышла новая версия Java - оперативно добавили поддержку. Популярен сейчас Kotlin или новый фреймворк - наняли людей, перебросили команду и добавили поддержку. Поняли, что можно упростить жизнь разработчику готовыми инструментами для рефакторинга - составили список и автоматизировали. Скоординировать сообщество разработчиков, для которых open-source - хобби, для быстрого решения подобных задач сложнее. Хотя наверное при определенном количестве commiters - возможно.

Но я отвлекся. Сегодня речь про IDEA. IDEA может многое. Перечисленные ниже фичи в разное время меня впечатлили, и я считаю на них стоит обратить внимание:

- автодополнение: по идущим не подряд символам из названия метода набранным в нужном порядке, по символам в неверной раскладке, с сортировкой исходя из машинного обучения. Да, да ИИ уже с нами)

https://www.jetbrains.com/help/idea/auto-completing-code.html

- автогенерация: тесты к классу, override, конструкторы, getter и setter https://www.jetbrains.com/help/idea/generating-code.html

- огромное число рефакторингов, причем достаточно умных. Пример умного рефакторинга: при переименовании IDEA отдельно спрашивает подтверждение на совпадения в комментариях. https://www.jetbrains.com/help/idea/refactoring-source-code.html

- всеобъемлющий поиск: по настройкам, по классам, файлам, действиям в IDE, и по всему сразу, поиск использования класса\метода, по коду проекта и поиск внутри файла, в т.ч с регуляркой, структурный поиск - найти все enum в проекте, поиск по методам класса.

Даже перечисление видов поиска заняло кучу места, а мой список не полон) А еще есть вкладки с предыдущими результатами поиска, самобновляющиеся после редактирования кода.

https://www.jetbrains.com/help/idea/finding-and-replacing-text-in-file.html

- отличная интеграция с Git. И скорее всего с другими VCS, но я тестировал только Git. Фичи: удобно выбирать файлы и даже строки для commit, на commit можно повесить проверки, простые Revert, Merge, Amend commit, сравнения файлов. В целом для 99% процентов задач можно забыть про сторонние клиенты Git.

https://www.jetbrains.com/help/idea/version-control-integration.html

- рендеринг кода в редакторе: отображение "лямбд" еще до их появления в Java 7))), упрощенное представление лямбд, компактный JavaDoc, работа с секциями

- подсказки по коду: краткая и полная информация о классе или методе, всплывающий JavaDoc, подкачивание исходников при их наличии. https://www.jetbrains.com/help/idea/viewing-reference-information.html

- анализ зависимостей между классами, в т.ч в виде матрицы. Позволяет распутывать клубки в больших проектах. https://www.jetbrains.com/help/idea/dependencies-analysis.html

- возможность скачивания JDK разных версий и вендоров прямо из IDE

- HTTP client

- Code with Me - возможность совместной работы, хотя я ее так и не оттестировал(

- анализ стектрейсов, полученных от тестировщиков или сопровождения, переход к коду из стэктрейса https://www.jetbrains.com/help/idea/analyzing-external-stacktraces.html

- быстрое получение ссылки на код: сopy path или сopy reference, а с внешними плагинами и Copy Bitbucket Link

- shortcuts практически для всего: https://www.jetbrains.com/help/idea/reference-keymap-win-default.html А для действий без стандартных shortcuts можно назначить свои, причем не только клавиатурные, но и "мышинные")

Рекомендую начинать учить, если еще не сделали.

Начать можно с https://blog.jetbrains.com/idea/2020/03/top-15-intellij-idea-shortcuts/

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

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

В общем IDEA - это целый мир, в который можно и нужно погрузится с головой.

Возможно я что-то упустил из крутых или важных фичей, напишите об этом.

#IDEA #IDE #tools #обучение