Когда начинающий программист начинает искать работу, он очень часто натыкается на глухую стену, на которой кто-то вывел уверенной рукой: “нужны специалисты с опытом”. И… что теперь? Попадаем в ситуацию “чтобы получить опыт, нам нужен опыт”? Оставь попытку всяк сюда входящий?...
На самом деле есть несколько выходов из этой рекурсии. Можно попробовать пойти на стажировку при компании (туда поступить зачастую сложнее, чем в университет), пройти стажировку за свои деньги (например, онлайн-стажировка 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.Что еще почитать: |
---|
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ