Список полезных ресурсов для Java-разработчиков 2023.
https://t.me/javatgПриветствую всех читателей!
В данной статье я хочу поделиться различными полезными библиотеками и инструментами для Java-разработчиков. Для удобства восприятия информации, я разделил все инструменты на несколько групп. Надеюсь, что вы сможете найти что-то полезное в этой статье!
javatg – Java в телеграме.
Полезные ресурсы Java для повышения производительности приложений
Любой разработчик может создать приложение, но для создания приложения, которое хорошо работает, требуется набор знаний, взвешенный и тщательный подход к разработке.
Мы собрали для вас полезные статьи о повышение производительности Java приложений.
Статьи о производительности Java
- Повышаем производительность в Java
- How to Find Microservices Performance Issues — Изучите способы, с помощью которых разработчики могут находить проблемы с производительностью микросервисов на всех этапах разработки.
- Java 18. Что нового добавили, и почему вам это пригодится
- Common Performance Problems With Microservices — Смотрите общие проблемы с производительностью, лежащие в основе низкой производительности микросервисов в Java.
- Solving the N+1 Problem in Java — Работаете с СУБД? Лучше держите эту статью поблизости для решения проблемы N + 1.
- How to Improve JPA Performance — Работаете с JPA? Это руководство может показать вам, как повысить производительность разработки на JPA.
- Four Best Practices for JPA Performance — В этой статье показано, как проводить активную разработку для улучшения приложений на JPA.
- Performance Tuning Garbage Collection — В этой статье показано, как настроить сборщики мусора Java для оптимальной производительности.
Технические документы по производительности Java
- Developer’s Guide to Microservices Performance – Если вы переходите на микросервисное приложение или создаёте его, важно учитывать фактор производительности. В этом руководстве даются ключевые рекомендации разработчикам, делающим решительный шаг в данную сферу.
- Top 5 Best Practices for Streamlining Java Development – Написание производительного кода – это одно, но принимаете ли вы во внимание производительность разработчика? В этом техническом документе показаны пять способов улучшения процессов разработки на Java.
Вебинары и видеоролики по производительности Java
- Improving Performance in Java Microservices — Смотрите способы повышения производительности в микросервисах Java на этом вебинаре от наших специалистов по Java.
- Eight Ways to Improve Java Microservices Performance — В дополнение к предыдущему вебинару, в этом источнике показаны дополнительные способы повышения производительности микросервисов Java.
- JRebel and XRebel With Microservices and Docker — В этом видео показано, как JRebel и XRebel работают в тандеме, чтобы быстро устранить проблему с производительностью в приложении микросервисов на базе контейнера Docker.
Шпаргалки по технологиям Java
Работаете с Docker, Spring или SQL? Эти шпаргалки по технологиям Java помогут вам запомнить различные команды и аннотации, необходимые для взаимодействия с ними.
- Git Cheat Sheet — Пользуетесь Git? Эта шпаргалка содержит все полезные команды, которые вам нужны, в одном одностраничном pdf-файле.
- Docker Commands Cheat Sheet — Получите полезные команды и составьте синтаксис для Docker с помощью этой одностраничной шпаргалки.
- JUnit Cheat Sheet— Получите полезную информация, а также аннотации и фрагменты кода для работы с Junit.
- Огромный список шпаргалок Data science на все случаи жизни.
- SQL Cheat Sheet — От базовых запросов до служебных функций, наша шпаргалка по SQL содержит полезную информацию, облегчающую использование SQL.
- Maven Options Cheat Sheet — Пользуетесь Maven? В этой шпаргалке рассматриваются полезные параметры командной строки, основные плагины и многое другое.
- Spring Annotations Cheat Sheet — Если вы работаете в Spring Boot, Spring Cloud или Spring Framework, эта шпаргалка по аннотациям облегчит вам жизнь.
- RxJava Cheat Sheet — Ознакомьтесь с основами RxJava, включая классы, наблюдаемые объекты, RxBindings и функции обработки данных, в этой одностраничной шпаргалке.
Библиотеки для модульного и интеграционного тестирования
JUnit поставляется со своим собственным набором функций (. assertEquals), которые работают для простых сценариев тестирования, но довольно громоздки для работы в более серьезных проектах. AssertJ – это небольшая библиотека, предоставляющая вам отличный набор ассертов, которые вы можете использовать, для эффективного и качественного тестирования. Вы также можете использовать их для написания тестов для файлов XML или JSON, а также таблиц базы данных!
Тестирование асинхронных рабочих процессов – это всегда сложно. Как только вы захотите убедиться, что, например, сервер получил или отправил определённое сообщение, вы столкнётесь с проблемами, потому что ваш локальный тестовый код выполняется быстрее, чем выполняется любой асинхронный код. Библиотека Awaitility – это инструмент, который позволяет вам писать утверждения синхронным образом!
// basic assertions assertThat(frodo.getName()).isEqualTo("Frodo"); assertThat(frodo).isNotEqualTo(sauron); // chaining string specific assertions assertThat(frodo.getName()).startsWith("Fro") .endsWith("do") .isEqualToIgnoringCase("frodo");
В модульном тестировании наступает момент, когда вы хотите убедиться, что части вашей программы заменены некоторыми шаблонами, а не настоящимим кусками кодам. Mockito – это проверенная в боях библиотека, предназначенная именно для этого. Вы можете создавать макеты и настраивать их так, как вам будет удобно. В довершение всего, Mockito также прекрасно интегрируется с огромным количеством сторонних библиотек, от JUnit до Spring Boot.
@Test public void updatesCustomerStatus() { // Publish an asynchronous message to a broker (e.g. RabbitMQ): messageBroker.publishMessage(updateCustomerStatusMessage); // Awaitility lets you wait until the asynchronous operation completes: await().atMost(5, SECONDS).until(customerStatusIsUpdated()); ... }
Wiser
Небольшой встроенный Java SMTP-сервер под названием Wiser. Удобен для отправки сообщений и тестирования веб- сервисов.
// mock creation List mockedList = mock(List.class); // or even simpler with Mockito 4.10.0+ // List mockedList = mock(); // using mock object - it does not throw any "unexpected interaction" exception mockedList.add("one"); mockedList.clear(); // selective, explicit, highly readable verification verify(mockedList).add("one"); verify(mockedList).clear();
Memoryfilesystem позволяет вам писать тесты для файловой системы, которая полностью хранится в памяти, но при этом может имитировать семантику, специфичную для конкретной ОС, от Windows до macOS и Linux.
Wiser wiser = new Wiser(); wiser.setPort(2500); // Default is 25 wiser.start();
Как обрабатывать ненадёжные сторонние REST-сервисы или API-интерфейсы в ваших тестах? Легко! Используйте WireMock. Эта библиотека позволяет вам создавать полномасштабные макеты любого стороннего API с очень простым DSL. Вы можете не только указать конкретные ответы, которые будет возвращать ваш API, но даже зайти так далеко, чтобы внедрить случайные задержки и другое неопределённое поведение на свой сервер.
for (WiserMessage message : wiser.getMessages()) { String envelopeSender = message.getEnvelopeSender(); String envelopeReceiver = message.getEnvelopeReceiver(); MimeMessage mess = message.getMimeMessage(); // now do something fun! }
Использование макетов или встроенных замен для баз данных, почтовых серверов или очередей сообщений – это хорошо, но ничто не сравнится с использованием “реальных вещей”. Например, Testcontainers: небольшая библиотека, которая позволяет вам загружать и отключать любой контейнер Docker (и, следовательно, программное обеспечение), который вам нужен для ваших тестов. Это означает, что ваша тестовая среда может быть максимально приближена к производственной.
try (FileSystem fileSystem = MemoryFileSystemBuilder.newEmpty().build()) { Path p = fileSystem.getPath("p"); System.out.println(Files.exists(p)); }
Ресурсы по устранению неполадок JRebel
Возникли проблемы с JRebel? У нас есть множество инструментов по устранению неполадок JRebel! Вот некоторые из них:
- Server or Application Won’t Start – Попробуйте эти советы по устранению неполадок приложения или сервера, которые не запускаются во время настройки JRebel.
- JRebel Won’t Start – Если JRebel не запускается, эти ресурсы могут помочь вам устранить проблему.
- JRebel License Expired – Если вы получаете сообщение об ошибке, показывающее, что срок действия JRebel истёк, эта документация может помочь.
- Classes or Resources Not Reloading – Если у вас возникли проблемы с тем, что классы и ресурсы не перезагружаются при использовании JRebel, это руководство может помочь.
Полезные шпаргалки по Java
Наша коллекция шпаргалок по Java упрощает использование Java и Java-технологий. Наши эксперты по Java собрали подборку бесплатных одностраничных шпаргалок, которые вы можете использовать, чтобы держать под рукой часто используемые сочетания клавиш и приёмы.
Шпаргалки по языку Java
Если вы работаете с Java 8, Java 9 или одной из этих популярных версий, эти шпаргалки помогут вам разобраться с синтаксисом и базовыми понятиями:
- Java 8 Cheat Sheet — Эта шпаргалка Java версии 8 включает разделы о методах, лямбдах и многом другом.
- Java 9 Modules Cheat Sheet — Смотрите, как управлять модулями, а также различными параметрами командной строки, необходимыми для работы с ними, в этой шпаргалке.
- Java Collections Cheat Sheet — Эта шпаргалка Java collections даёт простой обзор возможностей Java collection и библиотек.
- JVM Options Cheat Sheet — Эта шпаргалка содержит одностраничное руководство по стандартным, нестандартным и расширенным опциям в JVM.
- Java Streams Cheat Sheet — В этой шпаргалке рассматриваются потоки, параллельные потоки и полезные операции для работы с потоками Java.
- Java Regex Cheat Sheet — От классов символов до шаблонов. Эта шпаргалка охватывает все необходимое для работы с регулярными выражениями Java.
- Java Generics Cheat Sheet — Это руководство с основами, подстановочными знаками, PEC, а также визуализациями ковариации и контравариантности помогает разработчикам работать с Java generics.
Шпаргалки для Java IDE
Независимо от того, работаете ли вы с IntelliJ IDEA, Eclipse или NetBeans, шпаргалки ниже помогут вам выучить все сочетания клавиш, необходимые для быстрой навигации по всем Java IDE.
Не уверены, какую среду разработки использовать? Узнайте об этом в нашем руководстве по лучшим Java IDE.
- NetBeans Shortcuts Cheat Sheet— Эта одностраничная шпаргалка NetBeans shortcuts в формате PDF упрощает начало работы с NetBeans.
- IntelliJ Shortcuts Cheat Sheet — один из многих разработчиков, использующих IntelliJ? Эта шпаргалка может помочь вам сэкономить некоторое время.
- Eclipse Shortcuts Cheat Sheet — Используете Eclipse IDE? Эта ссылка спасёт вам жизнь, если вы только начинаете.