jvmchat | Unsorted

Telegram-канал jvmchat - pro.jvm

5916

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш канал: @proJVM Вакансии: @jvmjobs @jvmjobschat ⚠️ Оффтоп -> @flood ❌Переход на личности ❌Троллинг ❌Реклама ❌HH (вакансии) ❌Варез

Subscribe to a channel

pro.jvm

Ну тут от онтико зависит, думаю выложат через n недель

Читать полностью…

pro.jvm

@ivandasch успехов

Читать полностью…

pro.jvm

Visitor, если я не ошибаюсь.

Читать полностью…

pro.jvm

все паттерны на лямбдах можно

Читать полностью…

pro.jvm

Было бы странно, если новые языки не исправлял косяки старых людей, не думаешь 🌚?

Читать полностью…

pro.jvm

А у тебя всегда выходит аргумент в стиле

А вот в котлине и в скале лучше 🌚🌚🌚

Читать полностью…

pro.jvm

Тоже кстати про паттерны хотел сказать. А как тогда без наследование реализовывать. Хз, ну странно, что это живёт 50 лет, и потом все такие. Это ужас, это плохо 🤯

Читать полностью…

pro.jvm

это первый вариант по сути

Читать полностью…

pro.jvm

и первые и второй варианты уродливы

Читать полностью…

pro.jvm

а зачем это все, когда у нас теперь есть sealed interfaces&classes с первоклассной поддержкой паттерн матчинга?

Читать полностью…

pro.jvm

После нескольких лет общения в ФП сообществе, где ООП в принципе считается злом, я наоборот привык доказывать, что наследование и в JVM и как фича отдельных его языков в общем-то имеет несколько приятных паттернов применения, поэтому странно избегать его вовсе

Читать полностью…

pro.jvm

Ну Алексей Шипелев правильно сказал, что после такого дизайна деду только и книги и писать 🌚

Читать полностью…

pro.jvm

после UncheckedIOException я не могу сказать, что жаба не ужасно сделана

Читать полностью…

pro.jvm

Ваще не понял, что ты хотел сказать этим

Читать полностью…

pro.jvm

Ну и выходит жаба апи сделано ужасно, ведь везде наследование или это другое 🤯

Читать полностью…

pro.jvm

Спасибо, отстрелялся :) вроде норм прошло

Читать полностью…

pro.jvm

Привет, всем. Подскажите, есть ли кто-то кто использовал flowable, и реализовывал процесс в котором нужно совершить действие, если "просрочилась" user task (due date)?
(например, зарегистрировать слушатель и послать сигнал). Бегло посмотрел апи, ощущение, что due date это просто свой-сво таски, которое нужно использовать на свое усмотрение. Есть слушатели вокруг апи таски, но они больше про измение состояния.
В проекте используем quartz, думал еще как вариант опрашивать таски процессов с каким-то интервалом времени. Буду признателен, если поделитесь опытом и свои варианты подскажите.
P.S. Надеюсь в этом чате не покусают, что вопрос больше касается bpm 🙂

Читать полностью…

pro.jvm

Правда в некоторых паттернах их изначальная цель теряется, но это дело десятое)

Читать полностью…

pro.jvm

Все паттерны из refactoring guru можно переписать с наследования конкретных или абстрактных классов с реализованым поведением внутри на 0 боилерплетные композицию + делегацию + реализацию интерфейсов https://kotlinlang.org/docs/delegation.html. Получить гибкость без боилерплейта. Что может быть лучше? То что язык определенный криво позволяет делать делегацию боилерплейтную так что теперь?
Если посмотреть издалека, оба подхода об одном и том же, но второй подход просто не имеет недостатков первого если взять норм язык

Читать полностью…

pro.jvm

я стараюсь писать факты. что поделаешь

Читать полностью…

pro.jvm

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

Читать полностью…

pro.jvm

pattern matching поможет для обработки обоих сценариев

Читать полностью…

pro.jvm

в изначальной проблеме с mapstruct первый сценарий остается проблемным, так как полиморфизм, а вот второй - нет

Читать полностью…

pro.jvm

вот тут по кайфу наследоваться

Читать полностью…

pro.jvm

а мы про наследование или про полиморфизм?
просто полиморфизм в данных можно заменить на специфическую композицию

условно у вас есть сценарий

@JsonSubTypes...
interface SomeData {
String type();
}

record DataType1 implements SomeData {
public String type() {
return "type1";
}
}

record DataType2 implements SomeData {
public String type() {
return "type2";
}
}


и вторая реализация

record Data(
DataType1 dataType1,
DataType2 dataType2
) {}


и дальше if (data.dataType1 != null) ...

вот второй вариант можно назвать композицией, но нет полифорфизма

Читать полностью…

pro.jvm

Наверное, сделали на наследовании классов вынуждено потому, что если бы на композиции было все, то было например такое:

var set = new HashSet(new ValuesTheSameHashMap());

Тогда бы от джавы плевались еще больше новички.

Еще поинт по другой теме: на котлине и скале делегирование можно делать с 0 боилерплейт кодом

Читать полностью…

pro.jvm

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

Читать полностью…

pro.jvm

Дмитрий, выше правильно сказал, как и любой инструмент его можно использовать неправильно. И стрельнуть наследованием, просто легче, чем композицией имо

Читать полностью…

pro.jvm

Я вот только-только искал как засунуть в дискуссию "почему вы тогда просто не пишете functions.php со всем необходимым и не копируете в каждый новый проект"

Читать полностью…

pro.jvm

Так литералли на работе ласт кейс. Написано 1 раз и не меняется, причём забавно, что именно эта часть не падала 8 лет. В целом, странный кейс, мне кажется композиция это не убийца наследование. Это скорее про разные подходы, и что иногда наследование подходит. Как я и сказал, Машина всегда Vehicle, но вот двигатель в машине может меняться

Читать полностью…
Subscribe to a channel