@Fsharp_chat

Страница 647 из 772
Вячеслав
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
Сервис локатор, вот это вот всё
Сервис локатор - это не di

это вообще ад в неумелых руках :(
Дай в неумелые руки стеклянный.... F#

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

Roman
23.07.2018
17:22:30
не спорю, но кто то же должен быть тем героем)
Мы для этого и создали сообщество, людей приростпет и приростает. Это хорошо, значит басфактор снижается

у меня правда есть подозрение что средний уровень F#ера и C#ера разный, поэтому они могли выиграть не только за счёт языка
Это всегда так. Обычно те кто юзает f# неспроста его бзают, да уровень разный. Команду когда набирали обязательно спрашивал какие языки смотрел, и любой фп ориентированный язык был плюсиком, т.к. это показатель заинтересованности, а значит интереса к своему делу. Фп может и не понравиться, что норма, но то что есть интерес к другим способам - это очень важный показатель.

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

Ivan
23.07.2018
18:30:45
В с# почти все проблемы решаются с помощью di
Без тайп классов и F# DI требует:-). А то, что DI крайне сложный концепт, как то никто и не обращает внимания.

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
я вот пока на C# писал обожал SimpleInjector, который вовсе не Simple
Самое лживое слово в нашей отрасли - "просто"

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, страшно смотреть

Pavel
23.07.2018
19:27:22
у них там в джаве полный ад в DI, страшно смотреть
В джаве ещё более менее. В андроид ад

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

Bonart
23.07.2018
19:27:53
В яве - ад и содом, в лучшем случае на аннотациях

А флюент-конфигурации кодом - нет

И это песец

Pavel
23.07.2018
19:28:25
Это проблема не в DI, а в говенных фреймворках
Так да, никто и не говорит что во фреймворках проблема. Просто из такого говна как андроид приходится воротить всякие даггеры

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/

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
тогда бот должен ещё говорить: привет
Ну нельзя настолько жестоко)

Vasily
24.07.2018
06:19:34
Ну, его на f# можно написать.
@gsomix 'а даже на f# тяжело написать

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 ваш выбор.

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

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

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
обычно это в случае backword compatibility
Не проще n сериализаторов?

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

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

Google
Pavel
24.07.2018
08:12:34
Лучший код = ненаписанный код
так всеравно писать надо, аттрибуты Newtonsofts тоже код

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

все модели обвешены аттриубтами

Страница 647 из 772