plugins intellij idea для проверки кода
Проверка проекта CDK с помощью статического анализатора IntelliJ IDEA
Я решил потестировать статический анализатор Java-кода IntelliJ IDEA и с его помощью проверил проект The Chemistry Development Kit. Здесь я приведу некоторые ошибки, которые я нашёл. Думаю, что часть из них характерна для Java-программ в целом, поэтому могут быть интересны.
The Chemistry Development Kit — это Java-библиотека с открытыми исходниками для решения задач хемоинформатики и биоинформатики. Когда я занимался биоинформатикой, мы активно её использовали. Проект разрабатывается уже более 20 лет, у него десятки авторов, и качество кода там очень неровное. Тем не менее, в проекте имеются юнит-тесты, а в pom.xml прописана интеграция с анализатором покрытия JaCoCo. Вдобавок там настроены плагины целых трёх статических анализаторов: FindBugs, PMD, Checkstyle. Тем интереснее проверить, какие же предупреждения остаются.
Статический анализатор Java-кода, встроенный в IntelliJ IDEA, не уступает специализированным инструментам статического анализа, а в чём-то и превосходит их. Кроме того, практически все возможности статического анализа доступны в Community Edition — бесплатной версии IDE с открытым исходным кодом. В частности, бесплатная версия выдаёт все предупреждения, описанные в этой статье.
По умолчанию статический анализ проводится постоянно в режиме редактирования кода, поэтому если вы пишете код в IntelliJ IDEA, то множество ошибок вы исправите буквально за секунды после того как их допустили, даже перед запуском тестов. Можно проверить и весь проект или его часть в пакетном режиме с помощью меню Analyze | Inspect Code либо запустить отдельную инспекцию с помощью Analyze | Run Inspection by Name. В этом случае становятся доступны некоторые инспекции, которые из-за трудоёмкости не работают в режиме редактирования. Впрочем, таких инспекций немного.
Множество инспекций IntelliJ IDEA сообщают не о баге, а скорее о неаккуратности в коде или предлагают более идиоматичную, красивую или быструю альтернативу. Это полезно, когда вы постоянно работаете в IDE. Однако в моём случае лучше начать с тех сообщений, которые предупреждают о реальных багах. В основном, интересна категория Java | Probable Bugs, хотя есть и другие категории, в которых стоит порыться, например, Numeric Issues.
Я расскажу только о некоторых интересных предупреждениях.
1. Унарный плюс
Унарных плюсов набралось аж 66 в проекте. Писать +1 вместо просто 1 иногда хочется для красоты. Однако в некоторых случаях унарный плюс вылезает, если вместо += написали =+ :
Очевидная опечатка, в результате которой игнорируются все итерации цикла кроме последней. Может показаться странным, что написано не «пробел равно плюс пробел», а «пробел равно пробел плюс». Однако странность исчезает, если покопаться в истории. Изначально «равно» и «плюс» действительно были рядом, но в 2008 году прошлись автоматическим форматтером, и код изменился. Тут, кстати, мораль для статических анализаторов: выдавать предупреждения на основании странного форматирования разумно, но если код подвергается автоматическому форматированию, предупреждения исчезнут, а баги останутся.
2. Целочисленное деление с приведением к дробному
Довольно обидная ошибка, но статические анализаторы её хорошо находят. Вот пример:
К сожалению, угол получился вовсе не один градус, а ноль. Похожая ошибка:
Похоже, оба числа c1 и c2 неотрицательные, а, значит, модуль разности никогда не превысит сумму. Поэтому результат будет 0, если оба числа ненулевые, либо 1, если одно из них 0.
3. Вызов Class.getClass()
Если случится исключение, сообщение о нём будет абсолютно бесполезно. Кстати, ошибки в процедуре обработки ошибок часто находятся статическим анализом в старых проектах: как правило, процедуры обработки ошибок тестируются хуже всего.
4. Вызов toString() на массиве
Это классика жанра: toString() для массивов не переопределён, и его результат довольно бесполезен. Обычно такое можно встретить в диагностических сообщениях.
5. Коллекция читается, но не заполняется
Такое тоже нередко встречается в кодовой базе, не проходящей постоянную проверку статическим анализатором. Вот простой пример:
Очевидно, заполнение просто пропустили. В статических анализаторах имеются более простые проверки, которые говорят о неиспользуемой переменной, но здесь переменная используется, поэтому они молчат. Нужна более умная инспекция, которая знает про коллекции.
6. Наоборот: заполняем, но не читаем
Обратные случаи тоже возможны. Здесь пример с массивом:
7. Сравнение Integer по ==
Это коварный баг, потому что малые значения объектов Integer кэшируются, и всё может неплохо работать, пока в один прекрасный день число не превысит 127. Такая проблема может совсем не бросаться в глаза:
Ну, казалось бы, сравниваются какие-то объекты в каких-то списках, может, всё нормально. Надо быть внимательным, чтобы увидеть, что в этих списках лежат объекты типа Integer.
8. Дубликат в Map
В этой инспекции картинка стоит тысячи слов. Видите ошибку?
9. Не используется результат метода
Результат некоторых методов глупо не использовать, о чём IDEA с готовностью сообщает:
Кстати, это довольно сложная инспекция. Помимо заранее подготовленного списка методов мы иногда пытаемся автоматически определять методы, результат которых использовать стоит. Тут требуется межпроцедурный анализ, причём как по исходному тексту, так и по байткоду библиотек. И всё это делается на лету в процессе редактирования кода!
10. Недостижимые ветки switch
Так как мы исключили символы с кодом больше 128, ветки \u2012-\u2212 недостижимы. Кажется, исключать не стоило.
11. Недостижимое условие
Совершенно чудесная проблема в цепочке условий:
12. Пишем в массив нулевой длины
Иногда IntelliJ IDEA заметит, если вы пишете в массив за пределами его размера:
13. Проверка длины после обращения по индексу
Ещё одна частая проблема с порядком действий и опять во время обработки ошибок:
В случае пустого массива автор кода хотел выйти тихо, но из-за проверки выйдет, громко бахнув ArrayIndexOutOfBoundsException. Очевидно, порядок проверок нарушен.
14. Проверка на null после обращения
И опять нарушен порядок действий, на этот раз с null’ом:
15. Дизъюнкция вместо конъюнкции
Люди часто путают логические операторы И и ИЛИ. Проект CDK — не исключение:
16. И снова дизъюнкция вместо конъюнкции
Похожая ошибка, но ловится другим сообщением:
17. Иерархия интерфейсов и instanceof
Когда проверяете объект на принадлежность какому-либо интерфейсу, не забывайте, что интерфейсы могут наследовать друг друга:
18. Обход пустого списка
Вероятно, автор этого кода не очень знаком с языком Java:
Параметр size в ArrayList указывает изначальный размер внутреннего массива. Это используется для оптимизации, чтобы уменьшить число аллокаций, если вы знаете заранее, сколько туда сложить элементов. При этом фактически элементы в списке не появляются, и метод size() возвращает 0. Поэтому следующий цикл с попыткой инициализировать элементы списка нулями совершенно бесполезен.
19. Не забываем инициализировать поля
Анализатор особым образом проверяет конструкторы, учитывая инициализаторы полей. Благодаря этому нашлась такая ошибка:
Несмотря на то что поля публичные, здесь точно никто не мог вклиниться и инициализировать их перед конструктором. Поэтому IDEA смело выдаёт предупреждение, что обращение к элементу массива вызовет NullPointerException.
20. По два раза не повторять
Повторные условия тоже случаются нередко. Вот пример:
Такие баги коварны, потому что никогда не знаешь, второе условие просто лишнее или автор хотел проверить что-то другое. Если это не исправить сразу, потом может быть тяжело разобраться. Это ещё одна причина, почему статический анализ надо использовать постоянно.
Я сообщил о некоторых из этих багов в баг-трекер проекта. Любопытно, что когда авторы проекта исправили часть, они сами воспользовались анализатором IntelliJ IDEA, нашли другие проблемы, о которых я не писал, и тоже стали их исправлять. Я считаю это хорошим знаком: авторы осознали важность статического анализа.
Как сделать мир прекрасней с помощью Intellij IDEA и дополнениями к CheckStyle
Многие в курсе, что Intellij IDEA на то и Intellij чтобы предугадывать наши мысли. Во многом это благодаря встроенным проверкам (инспекциям). Инспекции — это средства для статического анализа кода, которые помогают найти слабые места нашего кода и улучшить его структуру. А как на счет читаемости кода для дальнейшей его поддержки? В этом нам поможет CheckStyle-IDEA plugin.
Данная статья содержит размышления об автоматической проверке кода и описание процесса подключения кастомных (non-standard) чеков для плагина Checkstyle-IDEA в Intellij IDEA. Всех тех, кому это может быть интересно, прошу под кат.
Многие знают, что выражать свои мысли на бумаге нужно грамотно и понятно. Нужно соблюдать правила пунктуации и грамматики, владеть языком, на котором ты общаешься с читателем. Все знают, но мало кто умеет это делать на практике. Зачастую только потому, что некому проверить. Ошибки, опечатки случайным образом появляются и внимание на них не заостряется, когда идет благословенный поток мыслей. Грамматику и орфографию еще можно проверить машинным способом — например словарем, а стиль повествования или структуру текста, понятность, доходчивость, простоту излагаемой мысли — самому проверить трудно, а зачастую и невозможно. И не потому, что ты невнимательный или глупый, не потому что ты уже три ночи пишешь и пишешь. И не потому, что твой начальник дурак, а в стране беспорядок … нет, просто твой взгляд замылен.
Все эти проблемы я встретил при написании кода. Компилятор проверял мои “орфографические ошибки”, а хорошим наставником для проверки моего стиля программирования стал Checkstyle. По мере изучения правил чистого стиля, я писал новые проверки для Checkstyle в рамках проекта Sevntu-Checkstyle, которыe работали в Eclipse и во время сборки использовались Maven-ом. Но, так как на моей работе рекомендовано работать на IDEA, я решил адаптировать мной написанные проверки для этой замечательной среды разработки и начинать внедрять свои наработки в рабочий процесс.
Данная адаптация будет интересна тем, кто работает под IDEA, пишет на Java и хочет контролировать качество кода с помощью Checkstyle плагина. Также вы увидите на примере, как расширять возможности плагина с помощью самописных правил специфичных для ваших проектов и командных требований.
Собственные проверки я написал при участии в проекте под названием «SevNTU-Checkstyle». (для справки: СевНТУ — Севастопольский Национальный Технический Университет).
Установка CheckStyle-IDEA.
1. Открываем file>Settings>IDE Settings>plugins.
Жмем кнопку Browse repositories…
Ищем «Checkstyle-idea» и устанавливаем плагин.
Конфигурация CheckStyle-IDEA. Добавление новых проверок.
1. Качаем sevntu-checkstyle-idea-extension-X.XX.X.jar из репозитория. Файл содержит дополнительные проверки от проекта «SevNTU-Checkstyle».
2. Качаем стандартную конфигурацию этих проверок checkstyle-default-configuration.xml
3. Открываем file>Settings>IDE Settings>CheckStyle
4. Добавляем сторонние проверки(Third-Party checks), скачанные ранее.
5. Добавляем файл конфигурации для third-party Cheks.
Конфигурируем инспектор(Inspection).
По умолчанию IDEA проверяет код множеством встроенных проверок. Для того чтобы настроить IDE под свои потребности, нужно создать и настроить новый профиль. В данном случае, для демонстрации, мы оставляем включенный только Checkstyle.
1. Открываем: Analyze > Inspect Code…
2. Добавляем новый профиль.
3. Выбираем все интересующие нас инспекторы, или как в нашем случае, только Checkstyle.
4. Жмем «Apply» и «ok».
Активизируем CheckStyle-IDEA
1. Открываем Analyze>Inspect code…
2. Выбираем нужный профиль, область анализа и жмем «ok».
3. Как результат, получаем анализ нашего кода
Заключение
SevNTU Checkstyle проект может служить примером того, как внедрять в CheckStyle-IDEA плагин самостоятельно написанные проверки или использовать наши.
На данном этапе идет активная работа в области интегрирования кастомных чеков в IDEA. Наше решение предоставляет возможность использовать единый стандарт, вне зависимости от используемой среды разработки (Eclipse или IDEA) и является шагом в сторону создания универсального решения.
Надеемся, наши наработки будут вам полезны и помогут в написании чистого и легко читаемого кода. А возможно мы смогли вас вдохновить на написание собственных проверок, которые сделают этот мир прекраснее!
Более подробная инструкция: How to use SevNTU Checkstyle in Intellij IDEA.
Google группа для разработчиков: sevntu-checkstyle
Проект на GitHub: SevNTU-Checkstyle содержит 25 дополнительных проверок
CheckStyle-IDEA плагин: checkstyle-idea
10 топовых плагинов для IntelliJ IDEA, которые ты не должен пропустить
Хотя IntelliJ IDEA является полноценной IDE (Интегрированная среда разработки), вы наверняка захотите ее персонализировать. В JetBrains Marketplace есть множество плагинов с полезными функциями, которые могут удовлетворить ваши личные или деловые потребности.
Библиотека огромна, и в ней легко заблудиться. В этой статье мы поделимся недавно появившимися и всеми любимыми плагинами. Нам также интересно узнать, какие плагины любите вы, поэтому, пожалуйста, расскажите о них в комментариях.
Напоминаем, что все плагины можно установить через Настройки/Параметры | Плагины или на вкладке Плагины на экране приветствия.
Многие навигационные действия в дебаггере IntelliJ IDEA позволяют установить точку останова в нужном месте, но иногда необходимо достичь строки одним щелчком мыши. Здесь на помощь приходит плагин Jump To Line. Он позволяет добраться до любой строки и установить там точку выполнения, не выполняя предыдущий код.
Узнайте больше об этом плагине в нашем блоге.
Не секрет, что кодинг без использования мыши быстрее и эффективнее, но как стать ориентированным на клавиатуру, когда в IntelliJ IDEA так много сочетаний клавиш, которые нужно запомнить? Key Promoter X научит вас пользоваться ими. Как настойчивый и дотошный тренер, он отобразит всплывающую подсказку с соответствующим сочетанием клавиш при нажатии на элемент внутри IDE. Более того, для кнопок, не имеющих шортката, Key Promoter X предложит вам создать его.
Практика доведет все до идеала! Через некоторое время вы заметите, что подсознательно экономите время и используете нужный шорткат.
Если вы ищете дополнительные возможности для работы с проектами Maven, этот плагин вам просто необходим. Он позволяет просматривать, анализировать и исключать конфликтующие зависимости. Также можно запускать и отлаживать цели Maven и многое другое. Попробуйте этот 5-звездочный плагин!
Это отличное расширение для часто используемого диалогового окна Search Everywhere. Этот плагин добавляет справочные статьи в список результатов поиска. Просто нажмите на ту, которая кажется подходящей, и она появится в вашем веб-браузере по умолчанию. Это действительно помогает сэкономить кучу времени, поскольку вам больше не придется вручную открывать справку по продукту в браузере и искать статью самостоятельно.
Если вас когда-нибудь раздражали многочисленные повторяющиеся скобки с вложенными элементами, этот плагин станет вашим спасением. Он присваивает каждому набору открывающих и закрывающих скобок свой собственный цвет, облегчая отслеживание того, где начинается и заканчивается блок кода. Поверьте, как только вы попробуете его, вы поймете, что вам все время не хватало именно этого.
Этот плагин полезен как для учащихся, так и для преподавателей. Он позволяет изучать и преподавать языки программирования, такие как Kotlin, Java, Python, JavaScript, Rust, Scala, C/C++ и Go, прямо из IDE. Если вы изучаете программирование, мы призываем вас учиться на практике. Установите плагин, чтобы присоединиться к публичному курсу программирования, доступному в системе. Также вы можете записаться на индивидуальный курс вашего учителя или коллеги по работе. Да, вы не ослышались, плагин Edu Tools позволяет создавать упражнения и делиться ими со своими коллегами.
Установите этот плагин, чтобы присоединиться к более чем полумиллиону людей, которые используют его для оптимизации ежедневного рабочего процесса Git.
Это как фитнес-трекер, но для мониторинга вашей активности в написании кода. Плагин WakaTime предоставляет услугу отслеживания времени, автоматически генерируя изящные метрики и аналитические данные. Используйте его для анализа производительности команды или для поиска путей повышения скорости разработки программ.
Плагин Extra Icons предназначен для тех, кто хочет приукрасить вид проекта. Он добавляет набор значков, которые не поддерживаются IntelliJ IDEA по умолчанию. Они выглядят потрясающе и упрощают навигацию между файлами, поскольку вы можете визуально определить их тип. Кроме того, значки очень легко настраиваются. Вы можете настроить их в Preferences| Settings / Appearance & Behavior/ Appearance/ Extra Icons.
Бонус
В качестве дополнения установите Nyan Progress Bar, чтобы сделать индексирование более спокойным занятием. Если вам не нравится кот Nyan, попробуйте других персонажей, например, Mario или случайного покемона.
Мы надеемся, что эти плагины помогут вам настроить вашу IDE и буду делать вас немного счастливее каждый день. Оставайтесь продуктивными и получайте удовольствие от работы с IntelliJ IDEA!
В преддверии старта курса «Java Developer. Basic» приглашаем всех желающих на бесплатный двухдневный интенсив по теме «Хороший код».
Полезные плагины для IDE — подборки от экспертов
Полезные плагины для IDE — подборки от экспертов
Современные IDE ушли далеко от обычного блокнота и предоставляют столько возможностей, что про все невозможно знать. Тем не менее, даже с таким букетом фич разработчикам порой не хватает какой-то функциональности, поэтому приходится использовать разные плагины. Спросили у экспертов, какие плагины и расширения они используют в своих IDE
руководитель практики Java центра разработки компании «Рексофт» в Воронеже
В данной подборке я не буду рассматривать плагины и расширения для работы с какими-либо конкретными фрейворками и библиотеками, например, Spring, а постараюсь рассказать о тех, которые помогают работать независимо от используемых технологий.
Так как я часто провожу презентации и курсы, на первом месте по полезности для меня идут два плагина: Presentation Assistant и Key Promoter X.
Presentation Assistant помогает делать демонстрацию процесса разработки более прозрачной. Каждый раз, когда спикер нажимает горячие клавиши или делает какие-то манипуляции в IDE, на экране появляется маленькая подсказка, содержащая короткое название действия и соответствующее ему сочетание клавиш для Windows и Mac.
Key Promoter X работает в этом же русле, но с обратной стороны. Он полезен для тех, кто только начинает работать с Intellij IDEA или планирует ускорить свою работу в ней. Каждый раз, когда действие выполняется с помощью мыши или трекпада, плагин показывает горячие клавиши для этого действия и считает количество «неоптимальной работы» для каждого действия отдельно. В отличие от Presentation Assistant, он полезен не только во время демонстраций, но и в обычной работе.
Вторая группа — плагины для работы со строками и помогающие в момент написания кода.
Один из моих любимых — String Manipulation. Он добавляет большое количество дополнительных действий при работе со строками, такие как: энкодинг/декодинг, изменение кейса написанного текста (например, с CamelCase на SCREAMING_SNAKE_CASE), сортировки, фильтрацию и многие другие.
Dummy Text Generator — плагин, который генерирует строки на всякий вкус и цвет. Он очень помогает в разработке, когда нужно работать с тестовыми строками. Обычно приходиться добавлять в код всякую белиберду, случайно стуча по клавиатуре. Плагин же формирует хоть и случайный, но больше похожий на правду, текст.
Rainbow Brackets раскрашивает все скобки в коде в различные цвета радуги так, чтобы открывающая и соответствующая ей закрывающая скобки были одного цвета, это делает чтение и написание кода намного удобнее.
И, наконец, третья группа плагинов — помогающие в работе в целом.
Grep Console — мощный инструмент для обработки текста, который выводится в консоль. Его можно раскрашивать в зависимости от установленных правил или вообще скрывать лишнюю информацию. Больше никаких портянок однообразного текста, только визуализированный и полезный лог.
Еще один простой, но очень полезный плагин SideNotes позволяет добавлять в IDE окно для ввода заметок. Это бывает полезно не только во время написания кода, но и на митингах или при код-ревью.
Для любителей контролировать свое рабочее время и приверженцев практики Pomodoro я рекомендую плагин Pomodoro-tm. C его помощью можно разделять время на работу и отдых, настраивать интервалы под себя и даже блокировать среду разработки на время отдыха.
В качестве бонуса расскажу о плагине Power Mode II. Установите его и процесс написания кода получит +87 к эпичности и +46 к зрелищности. Не буду раскрывать, что именно он делает, чтобы не портить впечатление — просто попробуйте сами.
руководитель группы Java-разработчиков ИТ-компании КРОК
Мы пользуемся разными IDE, самой популярной в мире Java-разработки на текущий момент является IntelliJ IDEA. Большую часть возможностей мы получаем из коробки, но плагины, конечно, тоже нужны. Ниже ТОП из тех, которые в повседневной работе Java разработчика используем мы, что называется must have:
CheckStyle-IDEA – удобно иметь единые правила оформления кода для всей команды и в любой момент времени можно проверить, правильно ли расставлены комментарии, нет ли проблем с названием классов и методов, не закрался ли куда-то tab для отступа в начале строки и т.п. Особенно этот полезно для новичков. И даже, когда все эти правила знаешь наизусть, приятно знать, что кто-то следит за тобой и сразу поправит. Код, который оформлен единым образом приятно ревьюить и проще поддерживать.
AsciiDoc — уже достаточно давно документацию мы тоже пишем, как код, мы выбрали для этого AsciiDoc и, конечно, нам нужен плагин, чтобы все делать, не выходя из любимой IDE. Тут есть и возможность набрать текст и сразу увидеть, как это будет выглядеть после рендеринга. В последнее время проведена работа над тем, чтобы плагин нормально работал с JCEF, как и вся IDEA. Теперь он будет и более отзывчивым и памяти меньше будет потреблять.
String Manipulation — со строками работать надо постоянно, и этот плагин многое позволяет сделать в пару кликов, например: сгенерировать последовательность от 1 до 20, декодировать или проставить эскейп-символы для JSON.
Xtend Support Plugin — ссылки нет, потому что мы его сделали для себя, разместили в собственном репозитории и используем для поддержки DSL для описания доменной модели в IDEA. Возможно, когда-то дозреем, чтобы поделиться со всеми, но я это к тому, что лучший плагин – тот который эффективно решает ваши собственные задачи и разработать такой не так уж и сложно (сложнее поддерживать совместимость с новыми версиями IDEA), благо и туториалы и доклады на тему в доступности.
Если дочитали до сюда — вот вам еще один симпатичный плагин, который поможет скрасить время ожидания и нарисует симпатичный Progress Bar.
генеральный директор компании «Инфомаксимум»
Сейчас существует огромное количество различных IDE, главное назначение которых — сделать работу разработчика как можно более простой и удобной. Наша frontend команда использует VSCode, поскольку он кроссплатформенный и с открытым кодом (open source), что обеспечивает гибкий подход к разработке собственных программных продуктов, например, системы класса process mining Proceset. Редактор не только поддерживает много языков программирования (среди которых наши основные — Java, C++ и JavaScript), но и обеспечивает удобство работы с системами контроля версий. И, конечно, одно из главных преимуществ — большая база плагинов. С их помощью можно решить практически любые возникающие задачи, будь то стилизация или отладка кода.
Среди них наиболее интересные:
Version Lens. Один из самых полезных плагинов, который позволяет контролировать версии установленных зависимостей и оперативно узнавать о выходе новых для их обновления.
Change-case. При помощи этого плагина можно быстро изменить регистр текущего выделения или слова. Доступны все популярные «кейсы»: camel, constant, kebab, snake и др.
Bracket Pair Colorizer. Подсвечивает парные скобки, что здорово помогает при большой вложенности условий.
Prettier — Code formatter. Крутой, очень крутой плагин. Его особенность в содержании кодовой базы в едином стиле. Форматирование кода осуществляется в автоматическом режиме без споров по поводу стиля.
ESLint. Плагин для установки правил написания кода для проекта. В подавляющем большинстве случаев над разработкой продукта работает целая команда, где у каждого свое написание кода, свои «почерк» и стиль. Часто в результате код получается сложным, что не есть хорошо. Использование связки ESLint+Prettier позволяет добиться написания кода в единой стилистике. Отдельно отмечу, что ESLint подойдет и для проектов на TypeScript, становясь отличной альтернативой использованию TSLint, разработка которого прекращена.
ведущий Frontend-разработчик IT-компании MediaSoft
Плагины – удобное решение, помогающее гибко подстраивать работу IDE под свои нужды. Если в редакторе отсутствует поддержка какого-либо фреймворка или языка, то это можно исправить установкой необходимых сниппетов и плагинов для поддержки синтаксиса. Если не нравится, как автоматически форматируется твой код и ты уже исчерпал возможности настроек своей IDE, то можно задействовать десятки различных плагинов, реализующих альтернативу встроенному форматированию.
Когда я работал на Visual Studio Code, мне часто требовались плагины для работы с мало распространенными форматами/фреймворками, не имеющими поддержки по умолчанию. Но с переходом на WebStorm я об этом забыл, так как его базовой функциональности вполне достаточно.
Вот несколько плагинов, которыми я сам пользуюсь и могу порекомендовать другим разработчикам:
разработчик программного обеспечения Технологического центра Accenture в Ростове-на-Дону
Сам я работаю на IntelliJ IDEA с Java. На самом деле на данный момент любая IDE или редактор требует порядка 10-20 плагинов для удобной работы. Не буду объяснять, почему нужен, например, плагин для Git. Постараюсь также не трогать специфичные для узкого круга специалистов IdeaVim или нужный только Java-разработчику Lombok Plugin. А вот следующие плагины будут полезны любому разработчику.
String Manipulation. Самый настоящий must-have для программиста. Изначально я на него наткнулся, когда искал инструмент для автоматической смены регистра слов (так называемый case-switch), например из camelCase в kebab-case и обратно. Плагин выполнил поставленную задачу идеально, предоставив около 14 разных форматов написания слов, что очень помогло при рутинной работе в стилизации кода. Но кроме этой уже довольно полезной фичи, плагин может также выполнять сортировку строк, их фильтрацию, чистку дублей, а также ряд операций с числами, например, инкремент или автоматическое создание последовательностей (что очень удобно при составлении нумерованных списков). Также он почти без ошибок работает с мультикурсором, что позволяет в течении пары минут обрабатывать сотни строк кода или любого другого текста.
У каждого разработчика должен быть такой инструмент в копилке. Для себя заметил, что теперь могу сконцентрироваться на решении задач, а не на том, как написана вот эта переменная. Ну а для тех, кто работает не с IDEA, могу сказать, что аналоги этого плагина есть и для других IDE, например за пару минут поиска я нашёл AnyEdit плагин для Eclipse.
Markdown. Конечно, каждый разработчик хотя раз писал README.md в своём GitHub-репозитории. Да, редактор там очень удобный, но мне всегда нравилось делать абсолютно все, что связано с разработкой, в IDE.
Данный плагин дает возможность в реальном времени видеть изменения в редактируемом Markdown документе. Кроме того, при написании блоков кода начинают работать все функции IDE, как если бы код писался в отдельном файле (даже можно запустить!). Если к этому добавить прелести предыдущего плагина, получается отличный редактор для программной документации или просто удобный редактор текста.
И да, есть языковые пакеты с проверкой орфографии и грамматики, это превратит IDE в полноценного конкурента MS Word.
старший программист «Аэроклуб ИТ»
ReSharper от JetBrains – добавляет массу возможностей в IDE. Например, зачастую избежать ошибок помогает контроль naming convention, причем он может подстраиваться под принятые в проекте соглашения автоматически. Исправление опечаток в ключевых словах: если даже написать какое-либо из них транслитом, например, зкшмфеу вместо private, оно будет заменено на английский. Также он показывает опечатки как в английских, так и русских словах. Кроме того, плагин экономит время тем, что может быстро обернуть целый кусок кода в фигурные скобки, try, foreach и тому подобное, достаточно выделить код, начать вводить название нужного оператора и нажать Enter. При рефакторинге с помощью этого инструмента удобно менять сигнатуру метода: можно изменить не только параметры, но и возвращаемый тип.
CodeMaid – предназначен для «наведения красоты» в коде: очистка от лишних пробелов, форматирование и мое любимое – подсчет цикломатической сложности методов. Именно этой функцией пользуюсь чаще всего, чтобы стараться поддерживать код читабельным и понятным.
WakaTime – нужен для контроля времени работы: пока пишу код, он шлет в одноименный сервис информацию о том, как долго я работаю, с каким проектом, в каком файле и даже в какой ветке. Благодаря этому можно увидеть, сколько часов в день уходит непосредственно на код, что поможет посчитать реальный объем трудозатрат на ту или иную задачу.
Productivity Power Tools – плагин, который используют некоторые коллеги. Его особенности – предупреждение о смешивании «табов» и «пробелов»; «подсветка» выделенной переменной во всем файле с добавлением маркеров на scrollbar, чтобы ориентироваться, где еще в коде она используется; отображение наличия ошибок в файлах прямо в Solution Explorer; «раскраска» открытых вкладок в зависимости от проекта и еще множество полезных функций.
Со временем многие из нас отказываются от тех или иных расширений IDE, поскольку каждое из них добавляет нагрузку на среду разработки, из-за чего появляются задержки в обработке проектов, особенно больших, и, как следствие, теряется их цель – увеличение продуктивности разработчика. Кроме того, по мере обновления IDE часто появляются новые функции, которыми можно пользоваться и без плагинов. Об этих двух факторах следует помнить, прежде чем расширять свою среду разработки, и не «накидывать» в нее все подряд.