Roman
дык у меня разделение ответственности есть
Romɑn
ф-ции высшего порядка через DI?
Roman
Вся бизнес логика на чистых функциях. На каждом слое есть свой композишн рут
Vasily
Vasily
У тебя реально может прилететь эксепшн и привет
Romɑn
Romɑn
я пока прост не понимаю, и мне правда хочется понять
Shub
Как спасет DI?
облегчит тебе тесты. т.к. это ничем, кроме тестов в нашей ситуации не решается
Vasily
Как спасет DI?
Делаешь набор операций, которые хочешь сделать, суешь в контекст исполнения
Vasily
Бинго
Shub
если были средства компилятора, позволяющие проверять на корректность с точки зрения исключений - тогда да
Vasily
Я вот начинаю с дедушкой соглашаться
Vasily
Надо разделять то, что может кинуть исключение, и что нет
Romɑn
так прилетело исключение
ф-ция не вызвалась
Romɑn
зачем DI?
Romɑn
или вы про тестирвоание контрол флоу которое создается exception?
Vasily
Он же про композицию
Romɑn
мы так придем к тмоу что надо только в раст где исключений нет, а только рельсы
Roman
Romɑn
и в целом я за это
Shub
DI позволит написать тест, подтверждающий, что ты корректно обрабатываешь эту ситуацию. других инструментов кроме теста у тебя нету
Romɑn
Vasily
Shub
код будет довольно замысловат
Romɑn
слова тоже
Shub
поэтому советую книжку Симана. она небольшая и хорошо это объясняет
Romɑn
ими донести мысль(до меня) не получается, я туп.
Симан ее же и в ху послал
Shub
затруднений понять, почему она релевантна в эфшарпе, у тебя не возникнет
Romɑn
Shub
Shub
но до того, как это случилось. он успел нас порадовать
Shub
простите, мне тут богу мерзкая винда вешает хост систему
Shub
и хотя у него были очень интересные приходы - любим мы его не за это
Romɑn
Shub
Romɑn
да синтетику
Romɑn
про ф-цию
Romɑn
про одну чтоб я хотф бы базху понялд что ты имеешь ввиду
Romɑn
ну не одну а смодулем
Romɑn
и ее флоу)
Romɑn
еслит надо
Romɑn
но я думаю двух ф-ций и теста должно хватить
Shub
двух не хватит
Romɑn
три?
Romɑn
и тест
Shub
ну точнее, хватит, но для одного или двух аспектов
Romɑn
давай тогда их мб этого хватит
Shub
если успею, то набросаю. т.к. мне как раз надо решить задачу отсутствия DI в эфшурупе
Romɑn
давай тестировать Seq.fold она уже есть и ее оба знаем)
Romɑn
Shub
ну почитай вводные на msdn. там неплохо описано
Romɑn
Shub
ща
Shub
https://msdn.microsoft.com/en-us/magazine/mt707534.aspx
Romɑn
Shub
я вообще понимаю скепсис, т.к. до недавних пор тоже считал DI лишней сущностью
Romɑn
Romɑn
Потому как простыни зависимостей у это просто ппц
Ayrat
я обновил гисты.
https://gist.github.com/Szer/0a7ce70eba2c41d553643dfc497fd58a
https://gist.github.com/Szer/883bb8c061b67dfba51238123a867a2d
Ayrat
Иногда с классами проще!
Romɑn
Romɑn
Просто контрпример.
Romɑn
Конкретно для этого случая
Ayrat
Ayrat
Кодкодкод
Romɑn
С телефона.
В первом гисте замени type ScheduledActionController =
На
let scheduledActionController =
{| field = fun HttpContext .. |}
Можно даже обжект эксррешн использовать для интерфейсов
Ayrat
Hog
Как это?! Дебаг отвалится!
Hog
фор фри!
Romɑn
Если есть волшебные обжект экспрешнс
Ayrat
Hog
больше ф# богу ф# :)))))