суббота, 23 февраля 2019 г.

А что использовать, чтобы xxx на Java??

Salvete, amici!
В жизни каждого начинающего разработчика на Java наступает момент, когда складывать буквы в слова, а слова в предложения он уже может, но еще недостаточно погрузился в бесконечный мир Java, чтобы с легкостью писать приложения, не задумываясь о том, какую библиотеку использовать.
Поэтому вопрос, вынесенный в заголовок статьи, мне приходится слышать намного чаще, чем можно подумать: "что мне использовать, чтобы послать почту на Java?", "что мне использовать, чтобы распарсить XML на Java?" и т.д. и т.п. и пр.

А между тем, экосистема Java для множества задач имеет готовые инструменты, многие из которых даже считаются стандартами де-факто при разработке на Java.
Поэтому я просто перечислю эти задачи - и их типовые решения, чтобы поколения идущих следом не тратили свое время на поиски, а сразу использовали знания и опыт своих предшественников.

Итак, что мне использовать, чтобы ...
Отослать/прочитать Email
Java Mail

Иметь полезные утилиты
Commons Lang или Guava

Работать с HTTP
Использовать встроенный класс java.net.URL

Работать с HTTP(S), FTP(S) и другими сетевыми протоколами
Commons Net

Написать веб-сервисы
JAX-WS

Написать REST-сервисы
Jersey

Вызывать REST-сервисы
Retrofit

Работать с криптографией
Bouncy Castl

Записать/прочитать файлы/потоки
Commons IO

Работать с xml
jdom

Биндить XML на Java-объекты
JAXB

Работать с json
Gson или Jackson

Написать модульные тесты

Создавать mock-объекты в тестах
Mockito

Создать ZIP-архив
Использовать стандартный класс java.util.zip.ZipOutputStream

Писать логи
log4j

Сделать запрос в СУБД
Использовать JDBC

Написать Rich Web-приложение, не погружаясь сильно в Javascript
Vaadin

Вызывать функции нативных библиотек, не используя JNI
JNA

Биндить таблицы СУБД на Java-объекты (ORM)
Hibernate
iBatis
EclipseLink

Работать с dependency injection
Guice
Spring

Использовать бизнес-процессы
Activiti
jBPM

Использовать полнотекстовый поиск
Elastic Search

Использовать статический анализ кода
PMD
CheckStyle

Работать с JMS
ActiveMQ

Запустить Embedded Http Server
Jetty

Работать с MS Office
Aspose

Извлекать текст из документов различных форматов
Apache Tika

Написать нагрузочный тест
JMeter

Написать бенчмарк
JMH

Продолжение обязательно следует...

Комментариев нет:

Отправить комментарий