Статьи

Руководство автостопом по GitHub: 13 Java-проектов, которые вы должны попробовать

Мы собрали несколько практичных и просто классных Java-репозиториев на GitHub.

На GitHub есть много репозиториев. Некоторые из них вы хотите раскошелиться, некоторые могут помочь вам с вашим собственным кодом, а некоторые были сделаны, чтобы помочь вам узнать немного больше о программировании. В любом случае, есть что посмотреть и не хватает времени, чтобы все это использовать.

В следующем посте мы собрали некоторые из самых интересных и полезных репозиториев Java, которые привлекли наше внимание в последние пару месяцев. Да пребудет с тобой вилка.

В поисках иглы в репо

GitHub, служба хостинга репозитория git, обслуживает 15 миллионов разработчиков со всего мира, сотрудничая в 38 миллионах репозиториев. 330 550 репозиториев являются Java. Проще говоря, GitHub располагает кучей информации от легионов разработчиков.

Они могут включать в себя код, соответствующий вашему текущему проекту, или простую игру, созданную, чтобы помочь вам с другими языками программирования. Неважно, что вы ищете, вы, вероятно, найдете сотни из них, и это реальная проблема.

Вот почему мы решили помочь вам в поиске репозиториев, чтобы вы по крайней мере знали, с чего начать.

1. Минимальная простота Java

Bootique — это минимально продуманная технология для создания Java-приложений без контейнеров. Этот проект позволяет создавать службы REST, веб-приложения, задания, задачи переноса БД и многое другое на основе модулей. Таким образом, вы сможете запускать их как простые команды.

Цель этого проекта — освободить приложения из контейнера Java и позволить разработчикам использовать метод main (). Есть бонус — есть несколько встроенных команд, поэтому, если у вас не так много кода или вы не импортируете какие-либо модули в свое приложение, вы все равно можете использовать Bootique для их выполнения.

2. Элегантное решение проблем

Название говорит само за себя: 99 проблем . Как вы можете догадаться, это набор задач, созданных, чтобы помочь вам практиковать свои навыки в логическом программировании. Вы можете решить проблемы, используя Java 8, Scala или Haskell, и ваша конечная цель — найти наиболее элегантное из возможных решений.

Если вы мастер головоломки — не волнуйтесь. Существуют разные уровни сложности, каждый из которых имеет временной интервал от 15 минут до нескольких часов. Никто не проверит, сколько времени на самом деле вам понадобилось, чтобы решить каждую проблему, но это дает вам базовое представление о том, сколько времени вы должны потратить на это.

Если вам удалось решить эти 99 проблем, возможно, вас ждет еще один вызов. Вы должны проверить нашу мини-игру головоломки для разработчиков: Java Deathmatch . В случае, если вы застряли, решения здесь , но эй! Не подглядывать.

3. Манипулирование строками

Репозиторий Strman-java — это библиотека Java 8, созданная для работы со String. Как вы понимаете, это довольно просто. Так как он доступен в Maven, все, что вам нужно сделать, это добавить зависимость к выбранному вами средству сборки.

Если вы использовали Kik (расширение для Node.js) и слышали о кризисе leftPad, когда он был снят, вам бы хотелось, чтобы опция Strman возвращала новую строку заданной длины, так что начало строки дополняется ,

1
2
3
import static strman.Strman.leftPad
leftPad("1", "0", 5)
    // result => "00001"

Помимо этого, вы найдете список функций, которые включают добавление строк к значениям, получение символа по определенному индексу и возвращение массива со строками от начала до конца и многое другое.

4. Проводник данных

Если вы хотите классный способ взаимодействия с вашими данными, вы должны проверить Dex . С его помощью вы можете извлекать, преобразовывать и визуализировать ваши данные, а также получать возможности прогнозирования. Вы можете опубликовать свои визуализации в 3D или любой другой HTML-переменной, которая вам нужна.

Dex позволяет вам создавать более 50 различных шаблонов визуализации, которые включают в себя карты мира, график участия, использование сети и многое другое. Вы можете интегрировать его с работающим экземпляром R и использовать сложный статистический анализ и прогнозную аналитику.

аккорд

Демократическая или республиканская? Показать отношения с диаграммой аккордов

5. Маленькие большие данные

Tablesaw — это таблица данных в памяти, которая включает инструменты данных и ориентированный на столбцы формат хранения. Он основан на идее, что никому не нужна распределенная аналитика для небольших задач, и вы можете интерактивно работать с таблицей строк 2M на одном сервере.

Вы можете использовать Tablesaw для применения правил, чтобы определить макет представления отображения, приоритет данных или добавить ряд расширений, чтобы дать пользователям контроль над отображением данных и их взаимодействием. С его помощью вы можете импортировать данные из файлов RDBMS и CSV, добавлять и удалять столбцы, выполнять сопоставление и сокращать операции или сохранять таблицы в сжатом формате столбчатых хранилищ.

6. Key Value Store

Chronicle Map — это хранилище ключей в памяти. Он предназначен для приложений с малой задержкой и / или многопроцессорных приложений, таких как приложения для торговли и финансового рынка. Этот репозиторий нацелен на среднюю задержку запросов на чтение и запись и позволяет вам писать запросы, которые масштабируются до количества аппаратных потоков выполнения на сервере.

Основными вариантами использования здесь являются замена более медленных хранилищ значений ключей при использовании на одном сервере (например, Redis) или замена аналогичных JVM-ориентированных решений для их ускорения. Вы также можете перемещать части состояния своего приложения из кучи Java и уменьшать размер кучи и давление GC.

7. Инспектор нагрузки

Gumshoe позволяет вам отслеживать статистику производительности вашего приложения. С его помощью вы можете точно определить строки кода и получить статистику, связанную со стеком вызовов и отдельными кадрами стека. Это означает, что вы сможете анализировать использование ваших ресурсов (TCP, UDP, файловая система или загрузка процессора).

Этот репозиторий позволяет собирать, фильтровать и визуализировать статистику по мере ее создания, а также дает интуитивно понятные представления пламени и корневых графиков. Если вы ищете что-то более конкретное в своем приложении, вы также можете фильтровать кадры стека при захвате и / или во время визуализации и изменять их во время работы.

8. Java музыка

SoundSea позволяет искать и загружать песни со встроенными метаданными и обложками альбомов. При поиске определенной песни SoundSea ищет соответствующие метаданные и обложки альбомов в iTunes и представляет их вам. Если доступно более одной песни, вы можете найти нужную.

Сама песня загружается с Pleer.com, и вы можете фильтровать по высокой, низкой или VBR-скорости. Если вам повезет, вы даже можете настроить его так, чтобы мгновенно загрузить первый результат поиска. Это также мини-плеер, так что вы можете просто слушать песню, не перегружая свою музыкальную библиотеку.

soundsea

Поиск и загрузка

9. Определите ваши утечки

LeakCanary — это библиотека с открытым исходным кодом, созданная, чтобы помочь вам предотвратить утечки памяти. Вы можете использовать его для обнаружения утечек памяти в Java (и Android) в ваших отладочных сборках. Как написано на их странице GitHub: «Небольшая утечка потопит большой корабль». (-Бенджамин Франклин).

После настройки LeakCanary вы можете настроить его на автоматическое отображение уведомления при обнаружении утечки активной памяти. Другое возможное использование — установка интеллектуальных выводов, чтобы определить, были ли некоторые предметы коллекционирования собраны мусором или нет.

10. Многомерные массивы

ND4J — это библиотека с открытым исходным кодом, которая приносит интуитивно понятные инструменты для научных вычислений из сообщества Python в JVM. Он предназначен для производственных сред, поэтому он работает быстро, но с минимальными требованиями к оперативной памяти. С его помощью инженеры получают простой способ перенести алгоритмы и интерфейсы в другие библиотеки Java и Scala.

Основными функциями этой библиотеки являются универсальный объект n-мерного массива, мультиплатформенные функциональные возможности, включая графические процессоры и функции линейной алгебры и обработки сигналов. Он интегрируется с Hadoop и Spark, а его API имитирует семантику Numpy , популярной математической библиотеки Python.

11. Контролировать Java

Неважно, какой инструмент мониторинга вы используете, Automon сочетает его мощь с AOP (AspectJ) для декларативного мониторинга вашего кода Java, JDK и зависимых библиотек. Он работает с известными инструментами мониторинга, такими как JAMon, JavaSimon, Yammer Metrics, StatsD, а также библиотеками журналирования, в том числе perf4j, log4j, sl4j и другими.

Automon обычно используется для отслеживания времени вызова метода и количества исключений, а также для хранения и отображения данных в выбранном вами инструменте. Вы должны знать, что он не осуществляет какой-либо мониторинг сам по себе, но служит посредником между «что я должен контролировать» и «как я это контролирую», но он все еще может быть вам полезен.

Еще один крутой инструмент, который вы можете попробовать для мониторинга производства, — Takipi С его помощью вы сможете узнать, когда и почему ваш код ломается, увидеть все ваши исключения и получить полный стек, источник и состояние для них.

12. Береги свою Java

Jvm-tools , или SJK, представляет собой набор инструментов для устранения неполадок, мониторинга и профилирования JVM. Это инструмент командной строки, который использует стандартные диагностические интерфейсы JVM (такие как JMX, JVM attach и счетчики perf), добавляя при этом еще немного логики, чтобы быть полезным для общих случаев устранения неполадок.

Эта библиотека позволяет объединять потоки использования ЦП целевой JVM и периодически отчитываться на консоли, сообщать информацию о GC в режиме реального времени и получать базовые возможности профилировщика образцов. В нем вы также найдете инструменты для выполнения базовых операций с MBean из командной строки и выгрузите все MBean целевого Java-процесса в JSON.

13. Лучшая Java когда-либо

Познакомьтесь с Awesome-Java . Это список удивительных фреймворков Java, библиотек и программного обеспечения. Если вы не уверены, что выбрать, это список, который вы должны проверить. Он даже отфильтрован по разным категориям, так что вы будете знать, на чем сосредоточиться.

Вы можете найти древние инструменты, которые все еще используются, фреймворки, упрощающие отображение бинов, инструменты, которые обрабатывают цикл сборки и зависимости приложения, и библиотеки для программного манипулирования байт-кодом.

Последние мысли

Это только верхушка айсберга GitHub, и мы уверены, что есть еще много проектов, которые могут помочь скоротать время или улучшить ваш код. Если мы что-то упустили и вам кажется, что это должно быть в списке, напишите нам строку ниже.