Size: a a a

F# Flood: ПДД made functional, making illegal state INGIBDDdale

2020 May 06

R

Roman in F# Flood: ПДД made functional, making illegal state INGIBDDdale
я до сих пор не определился для себя, как там лучше — городить честные резалты или исключениями обмазываться. Потому собсно и сбежал в фшарп, чтоб не искать ответ на этот вопрос)
источник

SN

Shub Niggurath in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Roman
я не знаю, что такое православный контроль эффектов. Я всего лишь утверждаю, что когда в сигнатуре есть асинк — это удобно, чтоб понять, что функция делает ИО со всеми вытекающими. И если в сигнатуре резалт с нормально описанными доменными ошибками — с этим тоже проще жить, чем выискивать по коду `BusinessLogicException`ы.
я с этим совершенно согласен, но речь шла про контроль эффектов, который мы даже определить не можем
источник

R

Roman in F# Flood: ПДД made functional, making illegal state INGIBDDdale
полагаю, что дальше речь там идет о том, чтобы написать универсальные обвязки, чтоб в будущем экономить кол-во кода
источник

SN

Shub Niggurath in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Roman
я до сих пор не определился для себя, как там лучше — городить честные резалты или исключениями обмазываться. Потому собсно и сбежал в фшарп, чтоб не искать ответ на этот вопрос)
по свидетельствам преподобного Сайма, исключения используются в нижних слоях. в горнем мире - result. на нижнем уровне у тебя с вероятностью 99% интероп с .net и там будут исключения. зато домен - это почти всегда чистый код и там вполне можно выразить через резалты все
источник

R

Roman in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Но иногда эти обвязки как и очень многие "универсальные фреймворки" получаются слишком многословными и неповоротливыми
источник

R

Roman in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Shub Niggurath
по свидетельствам преподобного Сайма, исключения используются в нижних слоях. в горнем мире - result. на нижнем уровне у тебя с вероятностью 99% интероп с .net и там будут исключения. зато домен - это почти всегда чистый код и там вполне можно выразить через резалты все
это ты про фшарп наверное
источник

SN

Shub Niggurath in F# Flood: ПДД made functional, making illegal state INGIBDDdale
я например позволяю клиентам (космос, кафка и т.п.) кидать исключения, но перехватываю их почти по месту, т.к. крашить сервис из-за ошибки как-то... мелочно, что ли?
источник

DS

Doge Shibu in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Roman
это ты про фшарп наверное
Ну это везде верно, где можно резалты нормально выразить.
источник

R

Roman in F# Flood: ПДД made functional, making illegal state INGIBDDdale
да, там где можно нормально резалт выразить — этот вопрос не стоит
источник

SN

Shub Niggurath in F# Flood: ПДД made functional, making illegal state INGIBDDdale
космос клиент например использует исключения как штатный механизм сообщения о... обо всем. причем очень энтерпрайзно так: выкидывает system.agreggate exception, в который завернуто еще один exception и у этого внутреннего есть некий числовой статус, подозрительно похожий на http status code
источник

R

Roman in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Shub Niggurath
космос клиент например использует исключения как штатный механизм сообщения о... обо всем. причем очень энтерпрайзно так: выкидывает system.agreggate exception, в который завернуто еще один exception и у этого внутреннего есть некий числовой статус, подозрительно похожий на http status code
ой блять, этот космос. Худший официальный апи, который я видел, если не считать совсем местечковые поделки
источник

R

Roman in F# Flood: ПДД made functional, making illegal state INGIBDDdale
мы вроде уже решили от него отказаться
источник

M

Mikhail in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Ayrat Hudaygulov
типа if (money > moneyLimit) throw new NotEnoughMoneyException(…)
Обожаю
источник

M

Mikhail in F# Flood: ПДД made functional, making illegal state INGIBDDdale
И потом ещё огромный трай кетч
источник

M

Mikhail in F# Flood: ПДД made functional, making illegal state INGIBDDdale
И про бизнес и про другие ошибки
источник

M

Mikhail in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Мммм
источник

R

Roman in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Ayrat Hudaygulov
типа if (money > moneyLimit) throw new NotEnoughMoneyException(…)
а какие варианты у бедных джавистов/сишарпистов?
источник

AH

Ayrat Hudaygulov in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Roman
а какие варианты у бедных джавистов/сишарпистов?
в проститутки?
источник

SN

Shub Niggurath in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Roman
мы вроде уже решили от него отказаться
он двоякое впечатление производит. с одной стороны крутой дизайн и обещания. с другой стороны на практике он настолько гибок, что по виду напоминает диарею
источник

R

Roman in F# Flood: ПДД made functional, making illegal state INGIBDDdale
согласен
источник