Aleksei
язык классный
Aleksei
эльм классный
Aleksei (astynax)
Ну так то и про хаскелекод нельзя сказать, что он ссостоит строго из обобщённых решений.
Aleksei
смотри
Aleksei (astynax)
Elm - полярно инаков
Aleksei
простой вопрос
Aleksei
надо ли
Aleksei
думать
Aleksei
над дженерик решением
Aleksei
если есть тупое?
Aleksei (astynax)
В Elm все программисты - тупые. За них надо решить всё и упаковать в "Архитектуру". А самим возможности выходить за рамки не давать. Решение сугубо политическое
Дмитрий
надо ли
Тут как с рефакторингом, делаешь один раз, нафг не нужно, два - задумываешься. Три - ищещь обобщение.
Дмитрий
Но это моё мнение.
Aleksei (astynax)
Если есть тупое решение в приложении - используют тупое. Если есть возможность+необходимость обобщить в либу - обобщают. Всё как у всех
Aleksei (astynax)
Бывает, что тупое потом генерализуют. Половина (больше?) либ так и родилась
Aleksei
ну вот смотри, я уже лет 15 в программировании
Aleksei (astynax)
И генерализуют то потому, что не уверены, что в следующий раз напишут правильно
Aleksei
не помню чтобы мне надо было переделывать
Aleksei
суппортить сложно - да
Aleksei (astynax)
Я 20+ лет в программировании :)
Aleksei (astynax)
Бывало, переделывал
Aleksei
ну охуеть теперь -)
Aleksei (astynax)
Меряемся дальше!
Aleksei
да нет цели такой
Aleksei
я же сказал
Aleksei
я просто в поисках
Aleksei
более высоких абстракций
Aleksei (astynax)
Я понимаю, что излишняя забота о том, чтобы "было максимально абстрактно" - не слишком продуктивна порой
Aleksei
но блин хаскел разочаровал
Aleksei
но другого ничего нет
Дмитрий
Aleksei
хотя
Aleksei
нене
Aleksei
Dotty
Aleksei
выглядит прикольно
Дмитрий
А у нас пока дже зависимых типов нет, года до 20-го где-то.
Дмитрий
Как мы только без них живём?
Aleksei
Не не смотри
Aleksei
Мне очень нравится идея групп
Aleksei
Ну типа там теория категрий и все такое
Aleksei
и вот эти штуки типа
Aleksei
Int | Double
Aleksei
классно же? -)
Aleksei (astynax)
Нет
Aleksei
Почему?
Aleksei (astynax)
Either Int Double - у нас так пишут :)
Aleksei
Изер - костыль
Aleksei (astynax)
Это явная сумма. А Int | Double - первый шаг к Any
Aleksei
хоспадя я и без хаскеля это напишу
Aleksei
хаскель это вообще абстракция
Aleksei
идельный язык
Aleksei (astynax)
Aleksei
обработка ошибок просто частный случай
Aleksei
надо же думать об типах как об математических типах
Aleksei
ну хотя бы приучить себя уже -)))
Aleksei
`
Дмитрий
И шаблонами генирю класы и инстанцы для работы с ними, чтобы не видить тот ужас, что нагенирился под копотом.
Aleksei
public class Either<X, Y> {
private final Optional<X> x;
private final Optional<Y> y;
public Either(X x, Y y) {
this.x = Optional.ofNullable(x);
this.y = Optional.ofNullable(y);
}
public static <X, Y> Either<X, Y> of(X x, Y y) {
return new Either<>(x, y);
}
public void apply(Consumer<? super X> xFn, Consumer<? super Y> yFn) {
x.ifPresent(xFn);
y.ifPresent(yFn);
}
public <T> T map(Function<? super X, ? extends T> xFn,
Function<? super Y, ? extends T> yFn) {
final Optional<T> t1 = x.map(xFn);
final Optional<T> t2 = y.map(yFn);
return t1.orElseGet(t2::get);
}
}
Aleksei
ну вот так хотя бы
Aleksei
уже както себе лучше жить
Aleksei (astynax)
Вот! Смотришь на такое и понимаешь, Haskell гораздо приятнее даже тупо синтаксически
Aleksei (astynax)
Пойду спать на этой радостной ноте
Aleksei
!
Aleksei
снов хороших тебе
Aleksei
без джавы -)
Aleksei (astynax)
Спасибо :)
Aleksei (astynax)
Java тоже к лучшему стремится. Я даже рад за неё
Дмитрий
И то верно :)
Дмитрий
А какой пакет из недавнего вас приятнее удивил?
Aleksei
Я переписывать ее вот на проекте стал потихноьку -)
Дмитрий
Вот по принципу, а вот прикольная фича, надо бы куда-то впихнуть.
Дмитрий
Или почему я раньше такое не использовал!!!
Aleksei
не пизди
Aleksei
ща юзкейз найду
Aleksei
final CompletableFuture<Either<Throwable, CurrentlyConsumption>> response = client.request();
final Either<Throwable, CurrentlyConsumption> either = response.get();
either.apply(
error -> assertTrue(true),
success -> assertTrue(false)
);
Aleksei
во