JavaRush /Java блог /Random UA /Топ-10 бібліотек Java, які допоможуть заощадити час

Топ-10 бібліотек Java, які допоможуть заощадити час

Стаття з групи Random UA
Для кого ця стаття: дещо буде цікаво новачкам, які вивчають квест Java Syntax, але переважно викладений матеріал краще зайде тим, хто вже перевалив за екватор курсу (розбирається з квестами Java Collections і Java Multithreading) і починає цікавитися технологіями, що виходять за рамки Java Core. За час свого існування Java неабияк обросла бібліотеками. Але як зрозуміти, які з них варто використати, а які ні? Відокремити зерна від полови вічно зайнятому розробнику вкрай непросто. У цій статті Мартін Пацов (Martin Patsov), Full Stack Developer компанії Dreamix, розповість про свою любов до бібліотек з відкритим вихідним кодом (open source), і запропонує вам ті з них, які вважає особливо корисними.Топ-10 бібліотек Java, які допоможуть зекономити час - 1Бути чи не бути, ось у чому питання: Порятунком обернеться чи провалом Та сама бібліотека Java… Сміливіше! «СіньйОри» вже були там І досвід їх тобі я передам. Нехай вас не вводить в оману мій поетичний відступ. Бібліотек Java дійсно дуже багато, і розбиратися з ними ох як непросто. Проте я їх дуже люблю. Мене навіть можна назвати «бібліотечним євангелістом» ( під «євангелістом» у сфері ІТ розуміють зовсім не укладача канонічний євангелій, а того, хто професійно пропагує ту чи іншу технологію. Не плутайте зі звичайними піарниками: найчастіше ІТ-євангеліст досконало розбирається в технології — прим.ред.). Бібліотеки є дуже важливою частиною екосистеми open source. Навколо них виростають великі спільноти, які їх розвивають та підтримують. І це чудово. Головна перевага бібліотек у тому, що вони дозволяють нам не винаходити велосипед щоразу, коли ми пишемо код. Використовуйте бібліотеки – вже написаний для певних завдань код – якнайчастіше! Ви заощадите час. Серйозно, краще витратити його на спілкування із сім'єю та друзями.

Топ-10

У цій нотатці я згадав ті Java-бібліотеки, які волію використовувати у своїй роботі. Всі вони відносяться до програмного забезпечення з відкритим вихідним кодом. Вибирав я за принципом корисності, наявності хорошої документації та підтримки, а також регулярної оновлюваності. Хочу ще раз поставити акцент на тому, що це мій особистий вибір, і він може істотно відрізнятися від вашого.

1. Стандартні бібліотеки Java

Так-так, вам не здалося! Дуже багато людей недооцінюють, більше того - не знають маси можливостей - стандартних бібліотек Java (Java Standard Libraries), і не в курсі, як розкрити їх потенціал у програмуванні ... а то й зовсім не використовують їх. Ось короткий опис деяких із них:
  • java.lang . Ця бібліотека завжди імпортується в будь-який Java-додаток, оскільки містить все те, без чого ви в принципі не зможете програмувати ( String , Double , Enum , Math і так далі).

  • У java.util можна знайти всі колекції та структури даних, доступні в Java.

  • Далі, ми маємо java.io для читання файлів, що працюють потоками, об'єктами класу Pipe і так далі.

  • Про перші три ви, швидше за все, вже чули. А ось з java.nio , альтернативою java.io , знають вже не всі. Ця бібліотека відповідає за неблокуючий введення-виведення, дозволяючи, як ви могли здогадатися, інтенсивно використовувати операції введення-виведення.

  • java.net використовується для роботи із сокетами, створення підключень або коротких мережних програм.

  • У Java у нас також є бібліотеки для роботи з GUI: javax.swing (досить застаріле розширення ще більш старого java.awt ).

  • Ми навіть можемо відтворювати музику та створювати MIDI-файли за допомогою java.sound .

2. JHipster

JHipster - це платформа для швидкого розгортання, розробки та створення масштабованих веб-серверів з високим навантаженням та використанням найсучасніших і модних технологій таких як Spring, Spring-MicroServices, Netflix, Docker, Kubernetes, AngularJs, Liquibase, MongoDB, Cassandra, ElasticSearch.
Топ-10 бібліотек Java, які допоможуть зекономити час - 2
Слово честі, цей «Java-хіпстер» безперечно врятував мені місяці життя. Я можу точно сказати, що саме JHipster - мій особистий фаворит у списку і він займає особливе місце у моєму серці. Цей інструмент практично незамінний для генерування ескізу проекту розподіленого веб-сервера. Він вміє генерувати pom-файл із залежностями, налаштовувати Elastic Search та Connection, вам залишається лише додати бізнес-логіку архітектури. Основними та найважливішими бібліотеками, включеними до згенерованого проекту, є:
  • Spring Boot - допомагає прискорити та полегшити розробку додатків
  • Angular / AngularJS - інфраструктура JavaScript
Тут ви можете знайти більше інформації про JHipster .

3. Maven

Maven - один із трьох найпопулярніших інструментів для складання проектів на Java. Він відповідає за компіляцію, створення jar-файлів (Java-архівів), створення дистрибутива програми, створення документації.
Топ-10 бібліотек Java, які допоможуть зекономити час - 3
Кожен сучасний проект складається із різних файлів, модулів, технологій. Говорячи дуже просто, складання проекту — підготовка його робочої версії, тобто тієї програми, яку можна запустити на виконання. Це можна робити «ручками» у командному рядку, а можна написати спеціальні скрипти. Однак набагато легше це робити за допомогою спеціальних додатків. Називаються вони "системи автоматичного складання". Maven – одна з трьох таких програм, дві інші – Gradle та Ant. На вхід такі системи одержують вихідники проекту, а на вихід видають програму, яку можна запустити.
Структура проекту (залежності, конфігурації, документація) описується у файлі pom.xml (POM – Project Object Model), який має знаходитись у кореневій папці проекту. Чесно, Maven - просто чудова штука, хоч спочатку і не дуже зрозуміла. Якщо ви ніколи не використовували Maven раніше, ви багато що втратабо. Відверто кажучи, я взагалі не розумію, як створювалися Enterprise-додатки до появи Maven. Почитати про Maven російською можна тут .

4. Apache Commons

Apache Commons — практично цілий проект, спрямований створення бібліотек Java. Або «великий набір маленьких Java-утиліт» різного призначення. До речі, утиліти Apache Commons лежать в основі кількох дуже відомих проектів, наприклад Tomcat, Hibernate та інших. Ось короткий список деяких бібліотек, що найчастіше використовуються Apache Commons:
Топ-10 бібліотек Java, які допоможуть зекономити час - 4
  • Common Math . Математична бібліотека Apache Commons, ім'я говорить саме за себе: вона містить компоненти для складних математичних та статистичних операцій та обчислень.

  • CLI . Надає API для аналізу аргументів командного рядка. Навряд чи варто навіть у думках допускати створення програми без можливості передавати параметри та контролювати його поведінку!

  • CSV . Незалежно від того, що ви розробляєте, в якийсь момент вам доведеться зіткнутися з необхідністю використання файлів csv. Тобто їх доведеться відкривати, читати, редагувати, зберігати та створювати. Я пропоную використовувати формат RFC 4180 із класу CSVFormat та кодування UTF-8 при збереженні/створенні файлів.

  • IO . Використовується для спрощення виконання операцій введення-виведення. Придивіться, принаймні, до ReversedLinesFileReader, він того вартий!
Почитати про Apache Commons (англійською) можна тут .

5. Guava

Guava – набір основних бібліотек Google для Java. Вони містять нові типи колекцій (наприклад, multimap та multiset), незмінні колекції, бібліотеку графів, функціональні типи? утиліти для паралелізму, введення/виводу, хешування, обробки рядків та багато іншого. Всі ці інструменти використовують спеціалісти Google у своїй роботі, а це вже гарна рекомендація.
Топ-10 бібліотек Java, які допоможуть зекономити час - 5
Якоюсь мірою Guava є альтернативою Apache Commons. Насправді про Guava можна говорити довго (обов'язково зверніть на неї увагу!), але тут я згадаю лише одну корисну штуку з цієї бібліотеки. Можливо, ви вже стикалися із завданнями упорядкування своїх колекцій чи порівняння вмісту в них? А що щодо розширеного сортування та порівняння за кількома стовпцями з кількома умовами? Компонент ComparisonChain використовується для реалізації розширеного та складного сортування для колекцій. Почитати про Guava (англійською) можна тут .

6. google-gson

Бібліотека google-gson корисна для перетворення об'єктів Java на JSON і навпаки. Вона особливо стане в нагоді при розробці мобільних додатків і створенні/використанні REST API, а також у будь-якому випадку, коли вам потрібно перетворити об'єкт Java на його подання JSON і навпаки.
Топ-10 бібліотек Java, які допоможуть зекономити час - 6
Про JSON (JavaScript Object Notation), Guava, Apache Commons та інші цікаві речі ви дізнаєтеся з квесту Java Collections .
Почитати про google-gson (англійською) можна тут .

7. Hibernate-ORM

Hibernate - бібліотека, призначена для вирішення задач об'єктно-реляційного відображення (ORM). Hibernate ORM використовується для зберігання даних у реляційних базах даних. Вона забезпечує більш простий та абстрактний спосіб зробити це для розробників. Він використовує JDBC у своїй реалізації. Hibernate також є реалізацією специфікації JPA.
Топ-10 бібліотек Java, які допоможуть зекономити час - 7
Почитати про Hibernate ORM (англійською) можна тут .

8. Mockito

Нехай назва Mockito не вводить вас в оману. Мова не про коктейль, а про бібліотеку для mock-об'єктів. Mock-об'єкти - це об'єкти, які імітують поведінку реального об'єкта за якоюсь заданою схемою. Наприклад, для модульного тестування такі «підроблені» об'єкти можуть симулювати поведінку бізнес-об'єктів. Ну а mock-бібліотека Mockito підвищує зручність створення та використання mock-об'єктів.
Топ-10 бібліотек Java, які допоможуть зекономити час - 8
Ви можете знайти інформацію про Mockito тут .

9. JUnit

JUnit – вільний Java-фреймворк для створення модульних тестів (вони ж – юніт-тести). Ця бібліотека - одна з найпопулярніших, її використовують майже всі. Рекомендуємо вам розібратися з нею якнайшвидше, оскільки дуже часто початківців Java-розробників і Java Trainee змушують «покривати код тестами». І, треба сказати, це далеко не найгірший початок кар'єри.
Топ-10 бібліотек Java, які допоможуть зекономити час - 9
Більше інформації про Junit тут .

10.Log4j та Slf4j

Ці два фреймворки створені для приховання реалізації рутинних операцій з журналу певних подій, які відбуваються під час роботи Java-додатків. Slf4j є абстракцією для інших фреймворків журналування (того ж Log4j).
Топ-10 бібліотек Java, які допоможуть зекономити час - 10
Більше інформації про Log4j та Slf4j .
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ