
Ayrat
27.06.2018
09:25:57
ну и логика разная. слева ретрай повешан только на отсылку смс, справа для простоты на всю функцию с повторной авторизацией.
Короче нечестно с C# обошлись

Mariia
27.06.2018
09:30:54
https://github.com/App-vNext/Polly
Подключаем и 0 разницы

Google

Ayrat
27.06.2018
09:33:41
ну тут скорее про разницу поддержки дурабельных функций из коробки в C# и F#. Для F# там типа есть comp expression
НО. Даже так логика разная. Левый код не упадёт на нулёвом инпуте. Правый - недетерминирован в этом плане.
ну как не упадёт) левый упадёт с ожидаемым ексепшном, а правый хз.

Roman
27.06.2018
09:45:27
Либо в коде который возвращает string?
Просто по меому тут как раз и показано, что логика конкретного действия не размазана, а внесена в отдельную опеоацию. т.е. S из SOLID в макимуме

Ayrat
27.06.2018
09:49:09
Т.е. тут не отмажешься, автор хотел наебать

Evgeniy
27.06.2018
09:50:24

Ayrat
27.06.2018
09:50:50

Roman
27.06.2018
09:51:13
Так что вряд ли

Ayrat
27.06.2018
09:51:58
Может быть. Этого мы не знаем

Pavel
27.06.2018
09:53:48

Google

Ayrat
27.06.2018
09:54:37

Pavel
27.06.2018
09:54:41
а практика показывает что кол-во кода что там что там примерно сопоставимо

Ayrat
27.06.2018
09:55:19
вот если бы слева было всё обмазано лямбдачками, линком и прочими прелестями и всё равно получалось бы меньше, тогда была бы годная пропаганда

Pavel
27.06.2018
09:55:28
единственое исключение DU

Ayrat
27.06.2018
09:55:42
уберём хотя бы { и`}`

Pavel
27.06.2018
09:56:08

Evgeniy
27.06.2018
09:56:16

Ayrat
27.06.2018
09:57:21

Pavel
27.06.2018
09:57:27

Evgeniy
27.06.2018
09:57:43

Pavel
27.06.2018
09:57:52

Vlad
27.06.2018
09:58:33
это либа F# у них такая?

Ayrat
27.06.2018
09:59:14

Pavel
27.06.2018
09:59:33

Ayrat
27.06.2018
09:59:43

Mariia
27.06.2018
09:59:50

Evgeniy
27.06.2018
09:59:52

Google

Evgeniy
27.06.2018
10:00:14
https://github.com/Azure/azure-functions-durable-extension

Ayrat
27.06.2018
10:00:40

Evgeniy
27.06.2018
10:00:50

Mariia
27.06.2018
10:00:59

Evgeniy
27.06.2018
10:01:01
Это к слову о "ну и кто так пишет-то".

Ayrat
27.06.2018
10:01:05
то что ты скинул это просто дурабельные функции

Mariia
27.06.2018
10:01:14

Ayrat
27.06.2018
10:01:44
есть обычные Azure Functions. Есть Durable Functions, которые сохраняют свой стейт на точках евейта. Там хитрая магия.
Поддержка дурабельных функций есть только для C#. F# апи там нет.
Про "кто так пишет" это я вообще про код, который сделан нарочно раздутым

Pavel
27.06.2018
10:03:58

Ayrat
27.06.2018
10:04:00
причём т.к. всё завязано на стейт машине тасков, поддержки F# async не планируется. Т.е. там надо работать с тасками из F# если хочется дурабельных функций

Evgeniy
27.06.2018
10:04:07
Кажется, в твиттер посте ничего про язык не было.

Ayrat
27.06.2018
10:06:04
Типа смотрите как F# всё компактно, не то что этот ваш C#
я так понял

Evgeniy
27.06.2018
10:06:19
?♂️

Ayrat
27.06.2018
10:06:31
Ну ладно. Чо мы пики ломаем и правда)

Evgeniy
27.06.2018
10:06:41
В следующий раз буду осторожнее, чтобы не бурлило.

Pavel
27.06.2018
10:06:48
А причем тут язык?
при том что если сравнивать, то не надстройку эф над апи. а надстройки це и эф. если в це запилить функциональную надстройку в руби стиле и сравнить с эф то разница стремительно нивелируется

Google

Evgeniy
27.06.2018
10:07:16
Дальнейший срач в @fsharp_flood.

Pavel
27.06.2018
10:08:17
gsomix как обычно запретил обсуждать f# :)

Vlad
27.06.2018
10:12:03

Evgeniy
27.06.2018
10:41:58
Возвращаю обсуждение из пучины домыслов и демагогии в конструктивное русло.
https://github.com/Azure/azure-functions-durable-extension/issues/322#issuecomment-400627910

Ayrat
27.06.2018
10:46:28

Roman
27.06.2018
11:05:48
Все не ставляет мысль сделать имплементацию для Fable и обертку для elmish
https://github.com/meteor/meteor/blob/master/packages/ddp/DDP.md
Портировать весь meteorjs на fable у меня не получилось

Evgeniy
27.06.2018
11:24:17
@artemy_b
https://twitter.com/Tarmil_/status/1011651422482558976

Vladimir
27.06.2018
11:26:06
Есть задачка =) Как сделать коллекцию ключ-значение, где при добавлению нового значения по ключу считается среднее между всеми значениями? Например было (1,1) добавили (1,3) стало (1,2), потом добавили (1, 5) стало (1,3)

Vasily
27.06.2018
11:26:37
Тебе чтобы быстро считалось?

Vladimir
27.06.2018
11:27:10
Ага, и чтобы меньше места заняло

Ayrat
27.06.2018
11:27:13
А почему это коллекция?
А, по ключу же)

Vladimir
27.06.2018
11:28:03
цель - хранить только результат, не храня отдельные значения

Ayrat
27.06.2018
11:28:37
ну, среднее ты так не пересчитаешь

Vasily
27.06.2018
11:28:52
Ну чет да, странно выглядит

Pavel
27.06.2018
11:29:03
храни кол-во и сумму

Ayrat
27.06.2018
11:29:04
хотя не. достаточно хранить сумму предыдущих и кол-во предудыщих
чтобы пересчитать

Google

Ayrat
27.06.2018
11:29:10
Dictionary<int:ключ, int:кол-во добавленных * int:сумма добавленных>
и всего делов

Vladimir
27.06.2018
11:30:14
да, я вот думаю как это красиво оформить) потом же нужно эти значения быстренько считывать

Ayrat
27.06.2018
11:30:38
ну прям ппц как долго достать их словаря по ключу и одно деление сделать :D
Я уверен что это решение покроет 99.99999% перформанс нужд. Даже если ты HFT занимаешься, этого должно хватить

Vladimir
27.06.2018
11:31:48
это для MlCup =)

Ayrat
27.06.2018
11:32:47
Не, ну ты серьёзно думаешь что поиск по словарю и одно деление это недостаточно быстро?

Pavel
27.06.2018
11:32:50
ключи в каком диапазоне?

Vladimir
27.06.2018
11:33:12
хочется все сделать при добавлении, а потом ничего не делать
инты

Pavel
27.06.2018
11:34:40
точнее

Vladimir
27.06.2018
11:35:12
Сделаю наверное два дикшнари, один будет среднее хранить, а другой количество элементов хранить

Pavel
27.06.2018
11:35:18

Ayrat
27.06.2018
11:36:01
ну да, если хочется один раз посчитать, то будет Dictionary <int, int*int*int>

Vladimir
27.06.2018
11:36:07
оки
Спасибо)

Ayrat
27.06.2018
11:36:30
ток если у тебя многопоточная фигня, то ты словишь проблем

Vladimir
27.06.2018
11:37:10
я буду пытаться в ML.NET скармливать, еще не знаю как она работает, только начал

Pavel
27.06.2018
11:41:20
но если у тебя 1е6 добавлений и 1 чтение то 1е6-1 делений у тебя будут бессмыслены

Vladimir
27.06.2018
11:44:37
посмотрим, дебажить проще точно когда готовое значение есть)