ТОП-20 популярных Java-репозиториев на Github

Мы заглянули на 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-приложения с грамотно выстроенной чистой архитектурой. Как оно создавалось, вы можете узнать из серии статей владельца репозитория:

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.

Поиск поддерживает многопоточность, несколько индексов, горизонтально масштабируется.

Продукт находится в свободном доступе (есть также платная подписка) и используется крупнейшими веб-сайтами.

Надеемся, вы нашли интересные проекты. А ТОП-ами ваших любимых Java-репозиториев делитесь в комментариях. :)

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

Библиотека программиста
18 октября 2017

Шпаргалка по Git, в которой представлены основные команды

Git сегодня - это очень популярная система контроля версий. Поэтому шпаргал...
admin
05 апреля 2017

6 книг по Java для программистов любого уровня

Подборка материалов по Java. Если вы изучаете его, то обязательно найдете д...
admin
23 февраля 2017

Git за полчаса: руководство для начинающих

В последние годы популярность git демонстрирует взрывной рост. Эта система ...