Мы заглянули на GitHub и отобрали двадцатку популярных Java-репозиториев: от книг по Java до инструментов разработчика – на любой вкус.
В этой подборке только самые звездные и востребованные проекты на языке программирования Java. Чтобы вам было удобнее, мы разбили их на несколько групп. Посмотрим, что сейчас популярно в Java-мире.
☕ Подтянуть свои знания по Java вы можете на нашем телеграм-канале «Библиотека Java для собеса»
Концепции и сниппеты
Обучающие и справочные проекты всегда востребованы: джунам нужно постигать основы, миддлам – разбираться в сложных концепциях, сеньорам – освежать знания. Разумеется, эта подборка не могла обойтись без подобных Java-репозиториев.
iluwatar/java-design-patterns
⭐️41.9k
Самый популярный Java-репозиторий на GitHub – коллекция паттернов проектирования всех видов и мастей.
Паттерны – это лучшие практики организации проектов, которые упрощают и ускоряют процесс разработки. Они представляют собой хорошо продуманные и протестированные решения самых распространенных задач программирования. Паттерны учитывают много мелочей, о которых вы легко можете забыть, и спасают от распространенных и глупых ошибок.
Каждый паттерн в репозитории, будь он моно или нет, содержит подробное описание и примеры реализации на Java.
kdn251/interviews
⭐️30.5k
Здесь собраны популярные вопросы с технических интервью и, разумеется, ответы на них. Темы затронуты самые разные:
- структуры данных;
- популярные алгоритмы и их эффективность;
- общие концепции программирования.
В репозитории много ссылок на полезные текстовые материалы и видеолекции.
winterbe/java8-tutorial
⭐️10.5k
Подробное руководство по Java 8, шаг за шагом описывающее все возможности и особенности языка. Короткие демонстрационные примеры отлично показывают основные концепции. Минимум текста, максимум наглядности. Репозиторий может служить и учебником, и справочником.
TheAlgorithms/Java
⭐️8.7k
Коллекция популярных и не очень алгоритмов, реализованных на Java. Тут можно найти решение для любой задачи программирования: сортировки, поиска, сжатия, конвертации и т. д.
Не все из этих алгоритмов удобны и оптимальны, иногда можно найти в стандартной библиотеке Java примеры получше. Однако для демонстрационных и образовательных целей этот репозиторий подходит замечательно.
🧩☕ Интересные задачи по Java для практики можно найти на нашем телеграм-канале «Библиотека задач по Java»
Фреймворки и библиотеки
Иногда желание создать собственный велосипед невозможно побороть, для остальных случаев существуют готовые решения. Вот 9 самых популярных Java-репозиториев с фреймворками и библиотеками.
ReactiveX/RxJava
⭐️36.6k
Второй по звездности на GitHub Java-репозиторий – библиотека RxJava, основанная на API ReactiveX. Она позволяет писать асинхронные событийно-управляемые программы для виртуальной Java машины, поддерживает последовательности событий и их комбинации. В основе работы лежит классический паттерн Наблюдатель, только вместо одного объекта используется целый поток данных.
C RxJava можно больше не беспокоиться о низкоуровневом распараллеливании, синхронизации, потокобезопасности и обработке ошибок.
spring-projects/spring-boot
⭐️31.5k
Spring Boot – это замечательный инструмент, который облегчает создание Spring-приложений и в целом работу с платформой Spring. Его основная задача – отвлечь вас от формирования инфраструктуры приложения и дать возможность сконцентрироваться на бизнес-логике. А инфраструктуру он построит за вас.
Spring Boot не изменяет ваш код и не создает новый. Он лишь динамически применяет все необходимые для приложения настройки.
google/guava
⭐️28.4k
Проверенная временем библиотека ядра от Google, включающая в себя массу полезных инструментов и утилит для всех задач программирования. Особенно хороша Guava в работе с упорядоченными коллекциями. Функции сравнения и сортировки в библиотеке проработаны замечательно.
spring-projects/spring-framework
⭐️25k
Один из самых популярных Java-фреймворков. Spring предоставляет разработчику огромные возможности и большую свободу действий, поддерживает самые разные сценарии и архитектуры приложений. Подробное описание проекта, его возможности и Java примеры использования вы можете найти в официальной документации.
apache/incubator-dubbo
⭐️22.8k
Высокопроизводительная распределенная RPC-платформа с открытым исходным кодом и прозрачным интерфейсом. Три составляющие Dubbo:
- удаленное взаимодействие и синхронизация обмена сообщениями;
- кластеризация и интеллектуальная балансировка нагрузки;
- реестр каталогов для автоматической регистрации служб и публикации подписки на события.
alibaba/fastjson
⭐️15.7k
Библиотека для быстрого преобразования любых произвольных Java-объектов в JSON-представление и обратно. Поддерживает даже объекты со сложной структурой (глубокими иерархиями наследования и использованием универсальных типов).
FastJson улучшает производительность сервера и клиента и позволяет использовать для объектов любые пользовательские представления.
libgdx/libgdx
⭐️14.7k
Полноценный фреймворк для гейм-девелопмента, написанный в основном на Java (некоторые компоненты на C и C++). Работа основана на платформонезависимом OpenGL, поэтому libgdx поддерживает практически все существующие платформы и позволяет легко переносить проект между ними.
mybatis/mybatis-3
⭐️9.1k
MyBatis SQL mapper упрощает использование реляционной базы данных с объектно-ориентированными приложениями. MyBatis связывает объекты с помощью хранимых процедур или SQL-выражений используя XML-дескриптор или аннотации.
Самое большое преимущество MyBatis data mapper перед другими инструментами объектно-реляционного сопоставления – это простота.
Java примеры кода использования фреймворка ищите в его официальной документации.
eclipse-vertx/vert.x
⭐️8.8k
Набор инструментов для создания реактивных приложений для виртуальной Java машины. Vert.x имеет очень простую модель параллелизма, высокую производительность, модульную структуру и легко масштабируется между ядрами системы.
Фреймворк решает такие низкоуровневые задачи, как поддержка протоколов HTTP, TCP и доступ к файловой системе.
Android
Мобильная разработка – одно из самых перспективных направлений IT, и развивается она стремительными темпами. Поэтому на GitHub очень много Java-репозиториев с Android-проектами.
PhilJay/MPAndroidChart
⭐️25k
Мощная, производительная и удобная в использовании Android-библиотека для визуализации данных. Позволяет создавать диаграммы и графики всех сортов на любой вкус:
- гистограммы (вертикальные, горизонтальные, с накоплением, сгруппированные),
- секторные,
- линейные,
- лепестковые,
- кружковые,
- диаграммы рассеяния,
- японские свечи и др.
zxing/zxing
⭐️20.8k
Android-библиотека с открытым исходным кодом для сканирования штрихкодов.
В настоящее время проект находится в режиме поддержки и не принимает новых дополнений и изменений.
ZXing ("zebra crossing") умеет работать с самыми разными 1D и 2D кодами: Codabar, QR, EAN, Aztec, PDF 417 и др.
skylot/jadx
⭐️16.6k
Декомпилятор Android-приложений в Java-код, способный обрабатывать DEX-, APK-, JAR- и CLASS-файлы. Инструмент имеет версию для командной строки, а также GUI-интерфейс. В репозитории подробно описан процесс установки утилиты и Java приемы работы с ней.
android10/Android-CleanArchitecture
⭐️12.8k
Демонстрационный образец Android-приложения с грамотно выстроенной чистой архитектурой. Как оно создавалось, вы можете узнать из серии статей владельца репозитория:
- Android-архитектура... Чистый путь?;
- Android-архитектура… Эволюция;
- Пробуем на вкус Dagger 2 на Android;
- Чистая архитектура… Динамические параметры.
google/ExoPlayer
⭐️11.8k
Медиа-плеер для Android-приложений, способный воспроизводить видео- и аудиофайлы локально и через Интернет. Отличная альтернатива от Google для Android MediaPlayer API с дополнительными возможностями.
ExoPlayer легко настраивается и расширяется с помощью дополнений из Play Store.
realm/realm-java
⭐️10.1k
База данных, созданная специально для работы непосредственно внутри телефонов, планшетов и других мобильных устройств на Android.
Простой и интуитивно понятный API позволяет очень быстро начать работу с базой. Благодаря своей простоте Realm не требует ORM-решений: данные предоставляются в виде объектов и запрашиваются кодом.
Это современный, надежный и высокопроизводительный продукт, он определенно заслуживает вашего внимания.
mikepenz/MaterialDrawer
⭐️9.9k
Простая в использовании и гибкая дизайн-библиотека для выдвигающихся панелей в стиле Material Design в Android-приложениях.
MaterialDrawer интегрируется в ваш проект за 5 минут, имеет интуитивно понятный API и обеспечивает большое количество настроек и вариантов оформления. Умеет работать с векторными иконками и шрифтами, динамически изменять цвета, поддерживает RTL.
Инструменты разработки
SeleniumHQ/selenium
⭐️12.7k
Selenium – проект, объединяющий множество инструментов для автоматизации браузеров. Он совместим со всеми основными веб-обозревателями.
Основное применение Selenium – тестирование веб-приложений. Кроме того он может использоваться для парсинга страниц.
jenkinsci/jenkins
⭐️11.7k
Jenkins – самый популярный сервис автоматизации процесса разработки ПО. Более 1000 плагинов могут автоматизировать практически все, что вы способны придумать:
- сборку проекта;
- запуск тестов и формирование отчетов;
- статический анализ кодовой базы;
- развертывание проекта.
Jenkins берет на себя рутинные повторяющиеся задачи, а вы получаете много освободившегося времени для решения действительно важных задач.
orhanobut/logger
⭐️10.3k
Простой, красивый и мощный логгер для Android-проектов. Такой инструмент всегда пригодится.
mockito/mockito
⭐️7.9k
Этот имитационный фреймворк для модульного тестирования основан на библиотеке Shipkit и постоянно дорабатывается. Он позволяет создавать заглушки для реальных классов и интерфейсов и даже подключать к реальным классам "шпионов".
Великолепный API Mockito позволяет работать в сотрудничестве с другими утилитами тестирования, расширять их и оборачивать в пользовательскую логику.
Поисковый движок
elastic/elasticsearch
⭐️36.4k
Elasticsearch – это распределенная поисковая система c огромными возможностями и третий по звездности среди Java-репозиториев на GitHub.
Поиск поддерживает многопоточность, несколько индексов, горизонтально масштабируется.
Продукт находится в свободном доступе (есть также платная подписка) и используется крупнейшими веб-сайтами.
Комментарии