4 бесплатных инструмента, чтобы лучше кодить на Java
На сайте Lightrun опубликовали список из бесплатных инструментов и платформ для разработки на Java с открытым исходным кодом. Их главная цель — помочь программистам в повседневной работе с такими задачами, как кодирование, тестирование и профилирование приложений на Java.
Вот они.
Mockito
Фреймворк с открытым исходным кодом для модульного тестирования Java с простым API и поддержкой большого сообщества. Помогает создавать, проверять и заглушать макеты — объекты, которые имитируют сложные производственные объекты, не создавая их полностью. Можно имитировать зависимости каждого модуля и сосредоточиться на поведении, которое нужно протестировать.
При работе с Mockito можно использовать методы API библиотеки вручную или с помощью аннотаций, которые предоставляет фреймворк. Последние сокращают значительный объем повторяющегося шаблонного кода.
Список аннотаций, которые наиболее часто использует автор подборки:
@spy
— позволяет «шпионить» за реальным объектом. Для разрешения зависимостей, специфичных для Spring, можно использовать@SpyBean
;@Mock
— создает и внедряет фиктивные экземпляры. В Spring соответствующая аннотация —@MockBean
;@InjectMocks
— автоматически вставляет экземпляры имитаторов и «шпионов» в аннотированный класс.
Больше аннотаций и примеров здесь.
Sonar
Один из ведущих автоматизированных сервисов для обнаружения ошибок, «кода с запашком» и уязвимостей безопасности в пул-реквестах перед развертыванием.
Инструмент интегрируется с GitHub, BitBucket, Azure и GitLab.
Так выглядит отчет в GitHub:
Из отчета следует, что:
- Sonar обнаружил 26 «кода с запашком»;
- 52,3% покрытия.
Проверку можно детализировать, щелкнув на один из тикетов.
SonarQube предназначен для интеграции с локальными решениями, такими как GitHub Enterprise или BitBucket Server. Бесплатная версия с открытым исходным кодом.
SonarCloud предназначен для облачных решений, таких как GitHub или BitBucketCloud. Бесплатная версия для общедоступных проектов.
Подходит не только для Java-разработчиков. Инструмент поддерживает C#, C/C++, Objective-C, TypeScript, Python, PLSQL
и множество других языков.
IntelliJ
Функциональная IDE. Анализирует в процессе разработки однотипные задачи, такие как написание кода, его рефакторинг и отладку, и автоматизирует их. Главная особенность по сравнению с другими IDE — интеллект. Инструмент понимает, что разработчик хочет сделать, и делает это.
Например, есть метод, который принимает User
и свойство User
, и нужно упростить его просто отправив User
.
Автоматизированные действия в IntelliJ
С помощью встроенного ярлыка (CTRL + ALT + N) для «активированного параметра IntelliJ понимает, что нужно использовать user.getActivated ()
, и удаляет параметр из метода. Вот что получается:
Автоматизированные действия в IntelliJ
Руководство по рефакторингу IntelliJ доступно по ссылке. Если хотите изучить приемы отладки с помощью инструмента, воспользуйтесь руководством.
VisualVM
Мощный инструмент для профилирования с открытым исходным кодом для приложений на Java. Поддерживает:
- локальное и удаленное профилирование;
- профилирование памяти и ЦП;
- мониторинг потоков;
- дампы памяти и дампы кучи.
Инструмент отображает запущенные приложения Java на левой панели:
После выбора приложения на вкладке можно будет увидеть информацию об использовании ЦП, пространство кучи и потоки.
Полученные данные позволяют понять, например, сколько приложение задействует ЦП и памяти. Также можно обнаружить утечки памяти с помощью дампа кучи — снимка текущих объектов и классов Java в куче. Посмотреть примеры использование инструмента можно здесь.
Читайте также материал от опытного Java-разработчика о Java Collections Framework.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: