Перейти к основному содержимому

· 3 мин. чтения

1. Введение

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

В этой статье мы рассмотрим различные способы преодоления таких проблем с помощью функциональной Java-библиотеки Vavr .

Чтобы получить больше информации о Vavr и о том, как его настроить, ознакомьтесь с этой статьей .

2. Использование проверенной функции

· 3 мин. чтения

1. Обзор

JHipster поставляется с двумя ролями по умолчанию — ПОЛЬЗОВАТЕЛЬ и АДМИНИСТР — но иногда нам нужно добавить свои собственные.

В этом руководстве мы создадим новую роль с именем МЕНЕДЖЕР, которую мы сможем использовать для предоставления дополнительных привилегий пользователю.

Обратите внимание, что JHipster использует термин « власти » как взаимозаменяемый с ролями . В любом случае, мы по сути имеем в виду одно и то же.

2. Изменения кода

· 3 мин. чтения

1. Обзор

Vavr — это мощная библиотека для Java 8+, построенная на основе лямбда-выражений Java. Вдохновленный языком Scala, Vavr добавляет к языку Java конструкции функционального программирования , такие как сопоставление с образцом, управляющие структуры, типы данных, постоянные и неизменяемые коллекции и многое другое.

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

2. Зависимость от Maven

Чтобы добавить библиотеку Vavr в свой проект Maven, отредактируйте файл pom.xml , включив в него следующую зависимость:

· 11 мин. чтения

1. Обзор

В этой статье мы сосредоточимся на сопоставлении шаблонов с помощью Vavr. Если вы не знаете, что такое Vavr, сначала прочитайте обзор Vavr . ``

Сопоставление с образцом — это функция, изначально недоступная в Java. Можно думать об этом как о расширенной форме оператора switch-case .

Преимущество сопоставления с образцом в Vavr заключается в том, что оно избавляет нас от написания множества вариантов switch или операторов if-then-else . Таким образом, он уменьшает объем кода и представляет условную логику в удобочитаемом виде.

Мы можем использовать API сопоставления с образцом, выполнив следующий импорт:

import static io.vavr.API.*;

· 6 мин. чтения

1. Обзор

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

Vavr (ранее известный как Javaslang) предоставляет полноценный API проверки . Это позволяет нам проверять данные простым способом, используя объектно-функциональный стиль программирования. Если вы хотите взглянуть на то, что эта библиотека предлагает из коробки, не стесняйтесь проверить эту статью .

В этом руководстве мы подробно рассмотрим API проверки библиотеки и узнаем, как использовать его наиболее подходящие методы.

2. Интерфейс проверки

· 3 мин. чтения

1. Введение

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

В этой быстрой статье мы рассмотрим пример, представляющий снятие средств в банкомате.

2. Зависимость от Maven

Для начала мы импортируем последнюю версию этой библиотеки с помощью Maven:

· 6 мин. чтения

1. Обзор

Библиотека Lombok предоставляет отличный способ упростить объекты данных. Одной из ключевых особенностей Project Lombok является аннотация @Builder , которая автоматически создает классы Builder для создания неизменяемых объектов. Однако заполнение коллекций в наших объектах может быть неуклюжим со стандартными классами Builder , сгенерированными Lombok.

В этом руководстве мы рассмотрим аннотацию @Singular , которая помогает нам работать с коллекциями в наших объектах данных. Как мы увидим, он также обеспечивает соблюдение передовой практики.

2. Строители и коллекции

Классы- строители упрощают создание неизменяемых объектов данных благодаря их простому и понятному синтаксису. Давайте посмотрим на пример классов, аннотированных аннотацией Lombok @Builder :

· 8 мин. чтения

1. Введение

NanoHTTPD — это легкий веб-сервер с открытым исходным кодом, написанный на Java.

В этом руководстве мы создадим несколько REST API, чтобы изучить его возможности.

2. Настройка проекта

Давайте добавим основную зависимость NanoHTTPD в наш pom.xml :

· 7 мин. чтения

1. Обзор

Velocity — это шаблонизатор на основе Java.

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

Velocity можно использовать для создания файлов XML, SQL, PostScript и большинства других текстовых форматов.

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

· 8 мин. чтения

1. Обзор

Java — один из столпов мира открытого исходного кода. Почти каждый проект Java использует другие проекты с открытым исходным кодом, поскольку никто не хочет изобретать велосипед. Однако часто случается так, что нам нужна библиотека для ее функциональности, но мы понятия не имеем, как ее использовать. Мы сталкиваемся с такими вещами, как:

  • Что не так со всеми этими классами «*Service»?
  • Как мне это создать, это требует слишком много зависимостей. Что такое « защелка »?
  • О, я собрал его, но теперь он начинает бросать IllegalStateException . Что я делаю не так?

Беда в том, что не все разработчики библиотек думают о своих пользователях. Большинство думает только о функциональности и функциях, но мало кто думает о том, как API будет использоваться на практике, как будет выглядеть и тестироваться пользовательский код.

В этой статье дается несколько советов о том, как избавить наших пользователей от некоторых проблем — и нет, это не с помощью написания документации. Конечно, на эту тему можно было бы написать целую книгу (и было сделано несколько); это некоторые из ключевых моментов, которые я усвоил, работая над несколькими библиотеками.

Я продемонстрирую идеи здесь, используя две библиотеки: charles и jcabi-github.