@Fsharp_chat

Страница 648 из 772
евроневидимка
24.07.2018
08:24:49
это можно как-то без аттрибутов или другого кода?
можно написать конвертер и надеяться что он не сломается

Ayrat
24.07.2018
08:24:58
у меня вот другой кейс. Общие доменные модели в сборке, там всё названо нормально - PascalCase, в сборке только netstandard и FSharp.Core зависимости. А где надо сериализнуть используется newtonsoft с camelCase настройкой. Так на фронте ЖСеры получают привычные, читаемые жсоны. Если работаю с внешими моделями, то каждый микросервис берёт что ему надо по месту через JsonSelect в свои локальные модели. типа так maybe { let jObj = JObject.Parse text let! teamId = jObj |> selectToken "id" |> Option.map toGuid let! playerName = jObj |> selectToken "$.players[0].name" |> Option.map string return { TeamId = teamId PlayerName = playerName } } там обычно полотна здоровые летают, хватает maybe монады и местных моделей

ну и хелпер такой есть в общей либе let inline selectToken path (JTok: #JToken) = jTok.SelectToken path |> Option.ofObj

который возвращает нормальный Option, т.е. надо явно проверять что такой путь в жсоне найден

Google
Pavel
24.07.2018
08:47:05
Новое от @ploeh про DI http://blog.ploeh.dk/2018/07/24/dependency-injection-revisited/

Free монада на C# ?

Vasily
24.07.2018
09:16:03
Owasp top 10 2017

Roman
24.07.2018
09:52:04
Owasp top 10 2017
Спасибо, загуглю

Ayrat
24.07.2018
09:57:27
о, а как вы обычно хендлите ошибки, например, парсинга? Локально ловите исключения и оборачиваете в резалт (РОП, все дела) или ловите на верхнем уровне и почему?
Все методы парса возвращают из монады Option<Model>, далее логика. Если это допустимо, то Seq.choose или Option.defaultValue. Если недопустим, то же самое но с failwith, все равно уже беда случилась.

Если не получается распарсить в локальную модель, то микросервис может только красиво упасть

Roman
24.07.2018
09:59:40
понял, спс

Friedrich
24.07.2018
10:05:21
https://www.meetup.com/GDGNsk/events/253090531/ whoa

И на новосибирском митапе будет про F# :3

Roman
24.07.2018
10:12:47
Anna
24.07.2018
10:14:30
И на новосибирском митапе будет про F# :3
У тебя аура что ли такая мощная

Google
Friedrich
24.07.2018
10:15:11
У тебя аура что ли такая мощная
Дак я сейчас даже не там ?‍♂️

Но к митапчику приеду, схожу обязательно.

Igor
24.07.2018
10:16:46
Free монада на C# ?
Да там уже доклад на NDC вышел

Dmitry
24.07.2018
10:21:50
О, в ленте Ютуба такое всплыло https://www.youtube.com/watch?v=aTNSo_2GapU (16.06.2018, KRY DOT NET, Красноярск Вводный доклад о архитектуре и дизайне приложений в рамках функциональной парадигмы.)

Vasiliy
24.07.2018
10:24:03
Кстати, кто то говорил, что в августе будет митап в мск.

Friedrich
24.07.2018
10:24:10
Это же @oxffaa докладывает :)

Vasiliy
24.07.2018
10:24:43
Хотел узнать, митап еще в силе ?

Артём
24.07.2018
10:27:45
Это же @oxffaa докладывает :)
Yep. Это я, от вас ребята не скроешься)

Friedrich
24.07.2018
10:27:56
nyeh heh heh

Артём
24.07.2018
10:32:07
Кстати, судя по вопросам из зала, я не особо приуспел. Многое люди не поняли и пришлось объяснять на пальцах. Поэтому, если у кого есть конструктивная критика или идеи, как можно доклад сделать лучше, то поделитесь в личку, буду очень благодарен. ?

Артём
24.07.2018
10:46:59
Посмотрел. Имхо мало было про базовый синтаксис языка
Спасибо. Я понадеялся, что люди из прошлых докладов более или менее ориентируются.)

Roman
24.07.2018
10:52:32
привет!

Vasiliy
24.07.2018
10:55:44
Кстати, судя по вопросам из зала, я не особо приуспел. Многое люди не поняли и пришлось объяснять на пальцах. Поэтому, если у кого есть конструктивная критика или идеи, как можно доклад сделать лучше, то поделитесь в личку, буду очень благодарен. ?
Ммм честно говоря не сильно уловил про обработку ошибок. Хорошее объяснение было у Скотта Влашина: если у нас есть функция с одним путем, нам надо сделать функцию с развилкой, т.е. 2 пути, и тогда мы их можем кобинировать, потому что сигнатура будет одинаковой. Если можно стащить у Скотта объяснение было бы круто, особенно для тех, кто вообще в первый раз видит f#.

?
24.07.2018
11:10:44
привет!
Привет

гайз, а F# .core умеет в шерпойнты?

Vasily
24.07.2018
11:31:21
В sharepoint?

?
24.07.2018
11:31:40
да

Google
Vasily
24.07.2018
11:31:55
Он умеет все, что умеет c#

?
24.07.2018
11:32:07
мне самый базовый функционал надо - в листе айтемов наклепать новых

Vasily
24.07.2018
11:32:27
Непонятно, почему вопрос в чате f#

?
24.07.2018
11:32:36
в прошлый раз когда смотрел кор не умело оно в шерпойны из коробки а на "старых" дотнетах какие-то пляски были

Vasily
24.07.2018
11:32:39
Это скорее вопрос про библиотеки

А при чем тут кор?

?
24.07.2018
11:32:54
ты прав, это скорее по дотнету вопрос, просто думал на F# делать это

кор при том что я хочу это не на виндузах запускать

Vasily
24.07.2018
11:33:15
Ну там скорее всего com внутри

Возможно, есть вебапи

?
24.07.2018
11:33:34
все так, в старых дотнетах через ком, а для кор ниче не нашел такого чтобы было как у людей

Vasily
24.07.2018
11:33:54
Ну значит пишешь на винде приблуду с рест апи

Не на винде ее дергаешь

?
24.07.2018
11:34:31
? сразу уже тогда винду в докер запрятать бы предложил

Bonart
24.07.2018
11:34:48
Ну тут очевидно) ньютонсофт мысли читать не умеет
А ньютонсофт флюент-апи не имеет разве?

Vasily
24.07.2018
11:34:59
Нет

Ayrat
24.07.2018
11:35:15
А ньютонсофт флюент-апи не имеет разве?
там есть расширение под линк

но это вроде всё

Bonart
24.07.2018
11:35:46
там есть расширение под линк
Я имею в виду как альтернативу богомерзким атрибутам

Если нет то жалко

Google
Friedrich
24.07.2018
13:26:23
кор при том что я хочу это не на виндузах запускать
Так тут вопрос про то, умеет ли Core в шарепоинты :)

?
24.07.2018
13:26:48
Но что в этом плохого?
винду в винде захостить я переживу, а вот в линукс хост враппить печально будет как-то

Friedrich
24.07.2018
13:27:18
да, именно так
А какое именно умение тебе нужно? Мб просто в REST подолбишь этот шарепоинт, да и всё?

?
24.07.2018
13:27:52
тогда тем более ой вей, а по поводу реста не знал что там вообще он есть, поищу, спс за наводку

Friedrich
24.07.2018
13:28:16
тогда тем более ой вей, а по поводу реста не знал что там вообще он есть, поищу, спс за наводку
Я не уверен, что там есть или нету, это надо твою конкретную конфигурацию смотреть.

И мб самый нормальный способ будет на стороне шарепоинта дописать рестовую апишку, если её нету. И уже апишку тыкать снаружи чем захочешь.

Глубоко внутрь шарепоинта лучше не влезать, если возможно.

Friedrich
24.07.2018
13:29:41
Типичная энтерпрайзная история :(

Vasily
24.07.2018
13:30:28
Мда, жаль парня

Ayrat
24.07.2018
13:33:25
тут не F#, тут ассенизаторский костюм поможет.

Evgeniy
24.07.2018
13:34:15
Внезапно, наткнулся на хабре. https://habr.com/post/309240/

Кто такой "ночнойПекарь"?

Есть среди нас? :)

Roman
24.07.2018
14:46:07
Vasily
24.07.2018
14:50:25
кроме UWP
Возможно

Google
Ayrat
24.07.2018
14:52:37
невелика потеря

Dmitry
24.07.2018
14:53:35
и ещё protected же

Ayrat
24.07.2018
14:54:53
и ещё goto

Evgeniy
24.07.2018
14:55:41
Early return не умеет — не готов к продакшену.

Ayrat
24.07.2018
14:56:23
а early return в языке где всё выражение это как вообще?

Vlad
24.07.2018
14:56:45
アレクセイ
24.07.2018
14:58:55
это монадная композиция против аппликативов или о чём-то другом

Ayrat
24.07.2018
14:59:56
Как в Rust.
я чот тупой наверное, но чем в расте, который statement язык, оно от C# отличается?

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