Прагматичное функциональное программирование в Java при помощи монады XResult<T>
, которая сочетает в себе свойства Optional<T>
, Result<T>
и Either<L,R>
Java разработчик
Обработка исключений в Java с использованием сопоставления с образцом (pattern matching)
Обработка исключений в Java с использованием сопоставления с образцом (pattern matching).
Данная статья является логическим продолжением статей
- Обработка исключений в Java в функциональном стиле и
- Обработка исключений в Java в функциональном стиле. Часть 2.
В данной статье рассмотрим способы обработки исключений Java при помощи pattern-matching, как это делается в других FP языках.
Пример на других языках
В функциональных языках программирования существуют удобные средства для работы с исключениями. В Kotlin и Rust это класс Result, в Scala и Haskell — Try. Обработка успешного результата или ошибки может производится при помощи pattern-matching как на примерах ниже.
Scala
val result = divideWithTry(10, 0) match {
case Success(i) => i
case Failure(DivideByZero()) => None
}
Rust
let greeting_file_result = File::open("hello.txt");
let greeting_file = match greeting_file_result {
Ok(file) => file,
Err(error) => panic!("Problem opening the file: {:?}", error),
};
Использование pattern-matching является естественным (idiomatic) в функциональных языках. А как дело обстоит в Java?
Неблокирующий повтор (retry) в Java и проект Loom
Неблокирующий повтор (retry) в Java и проект Loom
Введение
Повтор (retry) операции является старейшим механизмом обеспечения надежности программного обеспечения. Мы используем повторы при выполнении HTTP запросов, запросов к базам данных, отсылке электронной почты и проч. и проч.
Ускоряем Groovy скрипты
AST (Abstract Syntax Tree) преобразование для исполнения Groovy скриптов с @CompileStatic
Введение
Предположим у Вас есть некоторый скрипт который работает с некоторым бизнес объектом, скажем Person.
Groovy script
person.name = 'Peter'
У Groovy есть замечательная фича @CompileStatic, которая заставляет компилятор Groovy компилировать скриптовый код статически (как это делает компилятор Java), что значительно ускоряет исполнение скрипта, но к сожалению в нашем случае простого (plain) скрипта у нас просто нет места где мы можем применить эту аннотацию. Вы знаете что @CompileStatic применяется либо к методу или классу. Давай сначала попробуем решить эту проблему вручную.
Обработка исключений в Java в функциональном стиле. Часть 2
Обработка исключений в Java в функциональном стиле. Часть 2.
В предыдущей статье была рассмотрена функциональная обработка исключений с помощью интерфейса Try<T>
. Статья вызвала определенный интерес читателей и была отмечена в "Сезоне Java".
В данной статье автор продолжит тему и рассмотрит простую и "грамотную" (literate) обработку исключений при помощи функций высшего порядка без использования каких либо внешних зависимостей и сторонних библиотек.
Обработка исключений в Java в функциональном стиле
В данной статье автор предоставит информацию о собственной библиотеке для обработки исключений (Exception) в функциональном стиле.
Предпосылки
В Java начиная с версии 8 появились новые возможности в виде функциональных интерфейсов и потоков (Stream API). Эти возможности позволяют писать код в новом функциональном стиле без явных циклов, временных переменных, условий ветвления и проч. Я уверен что этот стиль программирования станет со временем основным для большинства Java программистов.
Информация
- В рейтинге
- 860-й
- Откуда
- Москва, Москва и Московская обл., Россия
- Зарегистрирован
- Активность