Size: a a a

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

2020 May 07

K

Kir in F# Flood: ПДД made functional, making illegal state INGIBDDdale
А, результата операции же не нет
источник

IC

Iλyα Che in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Ой, пофиг.
источник

M

Mikhail in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Mikhail
Я делал резалт со значением в поле Data или ошибкой в поле Error где Error это бизнес ошибка в виде du

И собирал паттерн матчингом

Но там два уровня матчинга получились
Лучше в шарпе не накостылил
источник

K

Kir in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Unauthorised/HttpError - и то и другое является ошибками
источник

IC

Iλyα Che in F# Flood: ПДД made functional, making illegal state INGIBDDdale
А три кейса, как я понимаю, потому что первые 2 -- это типа бизнес-штуки, а 3 уже что-то непонятное.
источник

A

Anatoly in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Kir
Unauthorised/HttpError - и то и другое является ошибками
только исходы разные
источник

A

Anatoly in F# Flood: ПДД made functional, making illegal state INGIBDDdale
401 - у тебя токен говно
источник

A

Anatoly in F# Flood: ПДД made functional, making illegal state INGIBDDdale
всё остальное - не пойми что, сеть плохая, сервер умер, етс, можно ретрайнуть
источник

IC

Iλyα Che in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Ну это всё равно можно неплохо записать, типа
match response with
Ok ->
Error(code, reason) when code = 401 ->
_ ->
источник

M

Mikhail in F# Flood: ПДД made functional, making illegal state INGIBDDdale
А чо мешает сделать du из класса ок, анавторайзд и статускод?
источник

M

Mikhail in F# Flood: ПДД made functional, making illegal state INGIBDDdale
И в ок заворачивать данные если надо
источник

IC

Iλyα Che in F# Flood: ПДД made functional, making illegal state INGIBDDdale
На сишарпе это не очень, но такой вариант я с самого начала предложил)
источник

M

Mikhail in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Если очень хочется разделить на три типа
источник

K

Kir in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Тип-то один
источник

IC

Iλyα Che in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Хотя райдер тот же справляется с генерацией вариантов во время паттер матчинга.
источник

I

Igor in F# Flood: ПДД made functional, making illegal state INGIBDDdale
нафига 401 отделять от остальных кодов?
источник

M

Mikhail in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Kir
Тип-то один
Ещё раз - почему не сделать базовый тип резалт и от него отнаследовать три кейса которые описал Анатолий и обрабатывать паттерн мэтчингом. Не оч понимаю
источник

E

Elizabeth in F# Flood: ПДД made functional, making illegal state INGIBDDdale
как вы справляетесь с желанием отрефакторить свои старые петы?
источник

AH

Ayrat Hudaygulov in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Anatoly
есть три кейса:
1. Ok (access_token, refresh_token)
2. Unauthorized
3. HttpError (status_code, reason_phrase)
я тут не вижу монаду, т.к. не могу придумать операции над типами, котоыре монада в себе держит
источник

M

Mikhail in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Mikhail
Ещё раз - почему не сделать базовый тип резалт и от него отнаследовать три кейса которые описал Анатолий и обрабатывать паттерн мэтчингом. Не оч понимаю
(у меня это сделано не так но я и не разделяю 401 и остальные)
источник