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