Size: a a a

2020 September 04

PP

Piu Piu in rust_offtopic
polunin.ai
Don’t make things generic until you have at least two use cases that need it.
да даже для двух не надо
источник

PP

Piu Piu in rust_offtopic
вот с трех уже можно
источник

DS

Doge Shibu in rust_offtopic
Hirrolot
часто generic things банально проще писать
И о них легче думать, см. parametricity
источник

DS

Doge Shibu in rust_offtopic
К тому же если речь про раст, то там дин трейты настолько сильно ограничены, что с ними очень не удобно на практике дизайнить
источник

A

Aleksandr Khristenko in rust_offtopic
Doge Shibu
И о них легче думать, см. parametricity
Чо-то вспомнился недавний тред в твиттере. Где люди предалагли использовать show @Type mytype в хаскеле
источник

DS

Doge Shibu in rust_offtopic
Aleksandr Khristenko
Чо-то вспомнился недавний тред в твиттере. Где люди предалагли использовать show @Type mytype в хаскеле
В хаскеле как раз есть иногда толк в том, чтобы ограничить его вывод типов с этой стороны, чтобы не описывать больше типов где-то выше по коду, например.

Или там в треде это для других целей использовали?
источник

A

Aleksandr Khristenko in rust_offtopic
Doge Shibu
В хаскеле как раз есть иногда толк в том, чтобы ограничить его вывод типов с этой стороны, чтобы не описывать больше типов где-то выше по коду, например.

Или там в треде это для других целей использовали?
Для других. Типа неприкольно обнаруживать текст Just 1 после рефакторинга.
источник

A

Aleksandr Khristenko in rust_offtopic
Защитное программирование.
источник

CD

Constantine Drozdov in rust_offtopic
polunin.ai
И чтобы если сровает какой-то другой эксепшен то не компилировалось
Там так и есть, только типов нет для этого, потому что с ними не поработаешь - вариадиков нет
источник

DS

Doge Shibu in rust_offtopic
Aleksandr Khristenko
Для других. Типа неприкольно обнаруживать текст Just 1 после рефакторинга.
Ну это, кстати, как раз не ограничение параметричности, т.к. функция show сама по себе остаётся полностью обобщенной
источник

VV

Victor Victorov in rust_offtopic
polunin.ai
catch (Exception ex) {
 return ex switch {
   First e => 0,
   Another b => 1,
 }
}
Lоl, У эксепшенов вообще и так свой switch встроенный. catch(First e){ return 0; } catch(Another e){ return 1;}
источник

H

Hirrolot in rust_offtopic
Victor Victorov
Lоl, У эксепшенов вообще и так свой switch встроенный. catch(First e){ return 0; } catch(Another e){ return 1;}
лмао на этом же можно PM делать на иерархии
источник

H

Hirrolot in rust_offtopic
если я захочу поиздеваться над джавой я знаю чем займусь
источник

VV

Victor Victorov in rust_offtopic
Hirrolot
если я захочу поиздеваться над джавой я знаю чем займусь
try
{
Execute();
}
catch(FileNotFoundException e)
{
return 0;
}
catch(UserNotFoundException e)
{
return 1;
}

хуже чем
Exectute() switch
{
FileNotFoundException fne => 0,
UserNotFoundException unfe =>1
}
хотя все это проигрывает конечно монадическим ошибкам с  
res <- Execute
источник

O

Oleksii R in rust_offtopic
Я пробовал в c# использовать Result, отсюда: https://github.com/vkhorikov/CSharpFunctionalExtensions
источник

O

Oleksii R in rust_offtopic
В прод пошло, но не всем понравилось. Все равно приходится ексепшены обрабатывать
источник

O

Oleksii R in rust_offtopic
И еще неудобно что там нельзя сделать Result<(), E>
источник

CD

Constantine Drozdov in rust_offtopic
Victor Victorov
try
{
Execute();
}
catch(FileNotFoundException e)
{
return 0;
}
catch(UserNotFoundException e)
{
return 1;
}

хуже чем
Exectute() switch
{
FileNotFoundException fne => 0,
UserNotFoundException unfe =>1
}
хотя все это проигрывает конечно монадическим ошибкам с  
res <- Execute
а пробрасывать лучше
источник

CD

Constantine Drozdov in rust_offtopic
обычно от точки исключения до обработчика call stack в 30
источник

VV

Victor Victorov in rust_offtopic
@OleksiiRo @webreh Эээ, так и там где есть монадический Result  его тоже в 99 процентов случаев так же просто пробрасывают дальше. Потом какой нибудь единый большой хандлер уже там в конце выбирает показать Юзеру HTTP 400 или 500 и с каким текстом.
источник