Когда начинающий программист начинает искать работу, он очень часто натыкается на глухую стену, на которой кто-то вывел уверенной рукой: “нужны специалисты с опытом”. И… что теперь? Попадаем в ситуацию “чтобы получить опыт, нам нужен опыт”? Оставь попытку всяк сюда входящий?...
5 самых популярных Java-проектов на GitHub - 1
На самом деле есть несколько выходов из этой рекурсии. Можно попробовать пойти на стажировку при компании (туда поступить зачастую сложнее, чем в университет), пройти стажировку за свои деньги (например, онлайн-стажировка JavaRush) или найти подходящие open source проекты для начинающих. Точно так же, к слову, поступают и более опытные разработчики, которым рутинная работа на галерах уже набила оскомину. Они находят более серьезные GitHub-проекты на Java и работают над ними, дабы держать себя в тонусе. А ещё иногда очень полезно посмотреть, как устроены крупные Java open source проекты и покопаться в их коде. В этой статье Джейн Элизабет (помощник редактора сайта JAXenter.com) рассматривает 5 самых популярных Java-проектов на GitHub. На самом деле на этом ресурсе выложены Java-проекты в огромном количестве (744 тыс., если быть точными). Но какие из них больше всего интересуют профессиональных разработчиков?

1. Mockito

Это название легко запомнить, Mockito звучит как знаменитый мятно-лаймовый коктейль. Однако этот Java Open Source проект является популярнейшим имитационным фреймворком для Unit-тестов, написанных на Java. Mockito постоянно дорабатывается на основе библиотеки Shipkit. Mockito 2.0 предоставляет улучшенный API для расширенной интеграции фреймворка, рассчитанный не на пишущих Unit-тесты пользователей, а на другие тестовые утилиты и имитационные фреймворки, для которых требуется расширение или обертывание Mockito в пользовательскую логику.

2. java-design-patterns

Этот Java open source проект полностью соответствует своему названию: java-design-patterns предоставляет разработчикам возможности реализации паттернов проектирования на языке Java. В частности, паттерны проектирования представляют собой формализованные рекомендуемые практики, благодаря которым разработчики могут решать часто встречающиеся при проектировании приложения или системы задачи. За счет протестированных и проверенных парадигм программирования они ускоряют процесс разработки. Кроме того, повторное использование паттернов помогает в предотвращении мелких неточностей, грозящих впоследствии превратиться в большие проблемы.

3. RxJava

RxJava – один из самых популярных Java-репозиториев на GitHub и популярный фреймворк. Основанная на API ReactiveX, библиотека RxJava позволяет создавать асинхронные и событийно-управляемые программы при помощи наблюдаемых последовательностей для виртуальной машины Java. RxJava расширяет паттерн "Наблюдатель" на поддержку последовательностей данных и событий. Он также добавляет операторы, позволяющие разработчикам комбинировать последовательности на этапе описания и не волноваться при этом о таких вещах, как низкоуровневое распараллеливание обработка по нитям, синхронизация, нитебезопасность и параллельные структуры данных.

4. MpAndroidChart

MPAndroidChart — обладающая широкими возможностями и удобная в использовании библиотека для разработки под операционную систему Android, работающая на API level 8 и более новых версиях. При помощи MPAndroidChart можно рисовать различные диаграммы в приложениях Android. Её можно рассматривать как утилиту визуализации данных для разработчиков мобильных приложений. В MPAndroidChart есть множество различных графиков: линейный график, гистограмма (вертикальная, горизонтальная, с накоплением, сгруппированная), секторная диаграмма, диаграмма рассеяния, график типа "японские свечи" (для финансовых данных), лепестковая диаграмма (паутинная диаграмма), кружковая диаграмма а также различные их сочетания. (Само слово "диаграмма" в отдельности теряет всякий смысл).

5. Guava

Эта превосходная библиотека ядра Google для языка Java уже существует очень давно, однако остается исключительно удобной утилитой с открытым исходным кодом для всех видов разработчиков. Она экономит массу времени, включает простые утилиты, упрощающие использование языка Java, расширения экосистемы коллекций JDK, а также другие утилиты, например, кэши, идиомы функционального программирования и многое, многое другое. В частности, Google Guava прекрасно подходит для работы с упорядоченными коллекциями. Эта её возможность, позволяющая разработчикам сравнивать содержимое коллекций при помощи чрезвычайно продвинутой функции сортировки и сравнения – одна из лучше всего развитых и проработанных в Guava.
Что еще почитать:

12 потрясающих возможностей GitHub