
Вячеслав
23.07.2018
16:29:37

Vasily
23.07.2018
16:31:27
Сервис локатор, вот это вот всё

Dmitry
23.07.2018
16:32:08
А видели (не то чтоб про F#, но про ФП) - там с конфы Curry On! видосы свежие подвезли https://www.youtube.com/channel/UC-WICcSW1k3HsScuXxDrp0w

Roman
23.07.2018
17:08:53

Google

Ayrat
23.07.2018
17:09:20

Bonart
23.07.2018
17:18:55

Ayrat
23.07.2018
17:22:18
я ходил на собес в одну компанию где меня пытались убедить что DI и IoC это одно и то же. А я топил, что первое - это лишь одна из реализаций второго. Мы чот не сошлись во взглядах и расстались на мнении что собеседник - идиот)))

Roman
23.07.2018
17:22:30

Igor
23.07.2018
18:23:40
Никто не хочет перевести ?
https://fsharp.org/specs/component-design-guidelines/

Ivan
23.07.2018
18:30:45

Roman
23.07.2018
18:32:52

Bonart
23.07.2018
19:12:08

Vasiliy
23.07.2018
19:16:02

Ayrat
23.07.2018
19:17:38
философски он непрост.

Google

Bonart
23.07.2018
19:18:15

Ayrat
23.07.2018
19:18:44

Bonart
23.07.2018
19:18:47
Фабрика сложнее, вдобавок полностью покрывается DI

Ayrat
23.07.2018
19:19:19
я вот пока на C# писал обожал SimpleInjector, который вовсе не Simple
он вообще руки по локоть отрывал если у тебя граф зависимостей не собирался

Bonart
23.07.2018
19:19:55

Ayrat
23.07.2018
19:26:26
А ещё SimpleInjector форсил правильный DI. Контейнер становился ридонли после первого ресолва (т.е. никакой магии с автосканированием типов чтобы в динамике отресолвить), запрещалось иметь более одного публичного конструктора, запрещалось иметь несобираемые типы (форсилось через проверку в композишн руте). Для IDisposable надо было или явно говорить контейнеру на регистрации - отвали, я сам его отдиспозю, или указывать в каком скоупе этот IDisposable существует (скоупы там есть на асинк операцию, на веб запрос и т.д.)
И при этом он чудовищно быстрый.

Pavel
23.07.2018
19:26:28

Ayrat
23.07.2018
19:26:53
у них там в джаве полный ад в DI, страшно смотреть

Bonart
23.07.2018
19:27:16

Pavel
23.07.2018
19:27:22

Ayrat
23.07.2018
19:27:27
это они придумали xml конфигурации для контейнера!
и метод инжекшны!
и проперти инжекшны!!
и вообще всё плохое придумали они)

Bonart
23.07.2018
19:27:53
В яве - ад и содом, в лучшем случае на аннотациях
А флюент-конфигурации кодом - нет
И это песец

Pavel
23.07.2018
19:28:25

Bonart
23.07.2018
19:29:05
Но умея в DI, говнистость фреймворка можно купировать

Ivan
23.07.2018
19:29:59
Вспомните коллеги, что все продвинутые DI умеют разрешать generics с интсанциацией типа. Если это просто, то я уже не знаю, что сложно ?

Vasiliy
23.07.2018
19:31:03
ауч, да что же привязался к нам этот господин (или бот)

Bonart
23.07.2018
19:31:28

Google

Ivan
23.07.2018
19:33:45
Паттерн - комбинация фабрики, синглтона, области видимости, метаинформации, адаптера, декоратора, перехвата типов. Совсем просто ?
Как раз всех паттернов, реализуемых в FP функциями кстати.
Ради представления о навороченном способе проетирования с испоьзованием DI можно например посмотреть на реализацию Microsoft.Extesions.Options. Вставляет солидно.
Почти функциональный код, несмотря на ООП.

Летучая
23.07.2018
19:55:20
Ещё можно почитать блог Марка Симана — он в последних постах натягивает ФП на ООП (Church Encoding) http://blog.ploeh.dk/

Anna
23.07.2018
19:57:07

Friedrich
23.07.2018
19:57:42
?

Anna
23.07.2018
20:02:52
на свет летят что ли

Oleg
24.07.2018
02:28:56
А я этого автора ботов недавно на местном канале видел, думал он здешний, а оказалось мимо шёл

Evgeniy
24.07.2018
05:34:08
https://twitter.com/zaid_ajaj/status/1021568445924683776

Andrey
24.07.2018
05:44:52
Одмены, добавьте бота, который трёт системные сообщения телеги.

Vlad
24.07.2018
05:45:20

Andrey
24.07.2018
05:45:26
xD

Vlad
24.07.2018
05:45:29
Этого ли мы добиваемся?...

Andrey
24.07.2018
05:45:44
Ну, его на f# можно написать.

Anatoly
24.07.2018
06:03:37

Andrey
24.07.2018
06:03:59

Vlad
24.07.2018
06:10:26

Vasily
24.07.2018
06:19:34

Pavel
24.07.2018
07:34:14
https://twitter.com/henrikfeldt/status/1021465478269632513?s=19

Google

Pavel
24.07.2018
07:34:29
Как-то не быстрый chiron

Vlad
24.07.2018
07:37:40
fsharplu же надстройка на json.net?

Ayrat
24.07.2018
07:51:48
Он ещё и неудобный жутко. Фп ради фп

Pavel
24.07.2018
07:52:34

Ayrat
24.07.2018
07:57:36
А вот что делать когда надо из гигантского полотна жсона вытащить значения 4го уровня вложенности?
В хироне - страдать и лепить модели на каждый чих с кучей методов.
В ньютонсофте selectTokens "abc.dfg[*].vvv.id" |> ofValues<Guid> и все!
Та же история с сериализацией. Я не хочу думать об инфраструктурном коде. Я вообще код не хочу писать, поэтому даже JsonConvert.SerializeObject для меня много, а хирон заставляет писать тонны бойлерплейта. Ради чего? Какие преимущества?
Он ещё и медленнее.
Если хочется безопасной десериализации, FSharp.Json ваш выбор.

Pavel
24.07.2018
08:09:10

Vasily
24.07.2018
08:09:52
Не совсем ясен смысл валидации при десериализации

Ayrat
24.07.2018
08:10:08

Vasily
24.07.2018
08:10:29
Учитывая, что owasp атак на insecure deserialize в дотнете не построить

Pavel
24.07.2018
08:10:44

Vasily
24.07.2018
08:11:06

Pavel
24.07.2018
08:11:06
обычно это в случае backword compatibility

Ayrat
24.07.2018
08:11:37
Ну в трай кетч заверни тот же ньютонсофт и вот фолбек)

Vasily
24.07.2018
08:11:41

Ayrat
24.07.2018
08:12:16
Лучший код = ненаписанный код

Pavel
24.07.2018
08:12:17

Vasily
24.07.2018
08:12:26
Просто выглядит как overengineered

Google

Pavel
24.07.2018
08:12:34

Vasily
24.07.2018
08:12:53
Какие атрибуты?

Ayrat
24.07.2018
08:12:55

Vasily
24.07.2018
08:13:04
Максимум climutable
На рекорд

Ayrat
24.07.2018
08:13:21
Да и без климутабл оно уже умеет

Vasily
24.07.2018
08:14:12
А, у меня акка.нет требует 9 версию

Pavel
24.07.2018
08:14:58
если у тебя json {'abc_uname': 'luke'} а ты хочешь десериализовать это в тип { UserName: string }
это можно как-то без аттрибутов или другого кода?

Ayrat
24.07.2018
08:15:58
Ну тут очевидно) ньютонсофт мысли читать не умеет
Но это редкость же, такие несовпаднния в именах

Pavel
24.07.2018
08:16:32
так в моем клиенте 99% таких json
все модели обвешены аттриубтами