@Fsharp_chat

Страница 264 из 772
Evgeniy
15.08.2017
11:11:56
Заведешь issue?

Igor
15.08.2017
11:21:17
Заведешь issue?
А ты можешь? Боюсь мой рязанский меня не поймут

Google
Igor
15.08.2017
11:32:16
А как в F# правильно делать заглушки для методов? Типа throw NIE в C#

Igor
15.08.2017
11:37:13
Жалко, я думал есть как в котлин метод TODO()

Siarhei
15.08.2017
11:41:35
А внутри raise nie?)

Igor
15.08.2017
11:42:39
А внутри raise nie?)
Да (и результат у этой функции кстати в котлин типа Nothing. Это такой волшебный тип, который является подклассом любого др типа)

А есть такая функцию в F#? (‘a -> 'b) -> Async<'a> -> Async<'b> Удобно было ее в pipe из асинков юзать

Nikolay
15.08.2017
11:48:41
Жалко, я думал есть как в котлин метод TODO()
let TODO() = raise (new NotImplementedException())

Igor
15.08.2017
11:50:41
Это да, неплохо бы если бы было из коробки и TODO подсвечивалась (new там кстати не нужен)

Siarhei
15.08.2017
11:57:22
Evgeniy
15.08.2017
12:14:19
@angmarr https://github.com/ionide/ionide-vscode-fsharp/issues/496

Igor
15.08.2017
12:14:45
? (я бы так точно не стал заморачиваться)

Evgeniy
15.08.2017
14:07:09
@XperiAndri @true_king Привет! o/

Igor
15.08.2017
14:13:50
Кажись видел парочку видое с Андреем про F#, +1 шарящий в теме

Google
Evgeniy
15.08.2017
14:14:55
Андрій
15.08.2017
14:17:24
Привет! Круто, что есть такой чатик!

Да, @angmarr, спасибо за представление

А кто-то ASP.NET Core на F# уже пишет?

Nikolay
15.08.2017
14:20:27
Просто .Net Core

Андрій
15.08.2017
14:21:01
И как оно? Меня смущает необходимость все маршруты иметь в одном месте

Nikolay
15.08.2017
14:24:45
Не пойму, про какие маршруты речь?

Evgeniy
15.08.2017
14:25:36
Nikolay
15.08.2017
14:26:06
В ASP.NET Core же.
Я же написал обычный .Net Core, без ASP :)

Evgeniy
15.08.2017
14:26:30
Я же написал обычный .Net Core, без ASP :)
Про него не спрашивали. ?

Андрій
15.08.2017
14:29:32
Без асп, да)
Ты про Suave или Freya?

Igor
15.08.2017
14:31:07
“Маршруты в одном месте” имеется ввиду это? app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); });

Vlad
15.08.2017
14:31:28
там же можно через атрибуты все делать

если так не нравится

Roman
15.08.2017
14:31:47
Точно! https://www.youtube.com/watch?v=mOS5qTd7JRY
Да, отличное видео! @XperiAndri спасибо за него!)

Андрій
15.08.2017
14:32:34
Если кто про #Freya не слышал https://skillsmatter.com/skillscasts/9887-building-a-highly-concurrent-functional-web-server-on-dot-net-core

Igor
15.08.2017
14:34:14
Если кто про #Freya не слышал https://skillsmatter.com/skillscasts/9887-building-a-highly-concurrent-functional-web-server-on-dot-net-core
А чем она лучше Suave? Я тут решил попробовать Suave, что бы погрузиться в ФП

Google
Андрій
15.08.2017
14:34:23
“Маршруты в одном месте” имеется ввиду это? app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); });
Я о том, что Suave, Freya и Girafe требуют описать все маршруты вручную let app = choose [ route "/foo" >=> text "Foo" route "/bar" >=> text "Bar" ]

Igor
15.08.2017
14:36:04
Я о том, что Suave, Freya и Girafe требуют описать все маршруты вручную let app = choose [ route "/foo" >=> text "Foo" route "/bar" >=> text "Bar" ]
Это да, я пока не понимаю какие ужасные последние это принесет и мне нравится. (вот только бы где поднобно инфы найти на этим роутам Suave)

Андрій
15.08.2017
14:36:55
А чем она лучше Suave? Я тут решил попробовать Suave, что бы погрузиться в ФП
Freya значительно быстрее https://www.infoq.com/news/2017/05/freya-kestrel

Suave очень тормозной

Igor
15.08.2017
14:37:30
Suave очень тормозной
Ну там есть же suave-kestler (я правда его не тыкал)

Андрій
15.08.2017
14:39:43
Не слышал

А кто-то пробовал? https://github.com/eventhelix/FSharp.Collections.Immutable

У меня есть допиленный NuGet https://www.myget.org/feed/fsharp-collections-immutable/package/nuget/FSharp.Collections.Immutable Если кому захочется

Igor
15.08.2017
14:43:50
А кто-то пробовал? https://github.com/eventhelix/FSharp.Collections.Immutable
Они столько лет в C#, мне всегда интересовало пользуется ли хоть кто-нибудь ими там? Спрашивал полгода назад C# чате, так никто и не нашел. Сам их только один раз попробовал в тестах C# (не в продакшен же их тащить)))? Какой профит с них F#?

Mike
15.08.2017
14:45:43
Андрій
15.08.2017
14:45:52
Было бы прикольно поверх них написать синтаксис как у стандартных F# коллекций Они быстрее

Evgeniy
15.08.2017
14:47:41
Есть ещё старая либа с коллекциями. https://github.com/fsprojects/FSharpx.Collections

Friedrich
15.08.2017
14:48:29
А кто-то ASP.NET Core на F# уже пишет?
Я взгромоздил Freya поверх ASP.NET Core, приправил немножко NodeServices, и сервлю так свой бложик :)

Андрій
15.08.2017
14:49:05
Friedrich
15.08.2017
14:49:06
Через это? https://github.com/SuaveIO/Suave.AspNetCore
Ты перепутал Freya и Suave. У меня Freya :)

У Freya там из коробки интеграция чтоли.

Google
Igor
15.08.2017
14:49:46
У Freya там из коробки интеграция чтоли.
Да перепутал, а почему не Suave выбрал?

Friedrich
15.08.2017
14:50:12
Да перепутал, а почему не Suave выбрал?
Потому что когда выбирал, с Freya намного проще было стартануть.

Исходники есть посмотреть?
Ага, конечно. https://github.com/ForNeVeR/fornever.me

Андрій
15.08.2017
14:51:45
А что надо написать в .fsproj, что бы его использовать?
Вот если бы эту библиотеку поверх HttpClient переписать, было хорошо

Friedrich
15.08.2017
14:51:46
У меня там всё самодельное, уж не обессудьте, если что :)

Nikolay
15.08.2017
14:52:10
Делать один статик инстанс HttpClient?

Андрій
15.08.2017
14:52:55
?

Friedrich
15.08.2017
14:53:03
Igor
15.08.2017
14:53:06
Ага, конечно. https://github.com/ForNeVeR/fornever.me
https://github.com/ForNeVeR/fornever.me/blob/develop/ForneverMind/RoutesModule.fs А где >=> и прочие стрелочки ?

Nikolay
15.08.2017
14:53:12
Не стоит.
Это единственный способ просто)

Friedrich
15.08.2017
14:53:19
Nikolay
15.08.2017
14:53:33
Friedrich
15.08.2017
14:53:46
Можно делать локальные переиспользуемые инстансы HttpClient. Необязательно прям сразу глобальный статик.

Лучше всего пользователю дай управление этим аспектом.

https://github.com/ForNeVeR/fornever.me/blob/develop/ForneverMind/RoutesModule.fs А где >=> и прочие стрелочки ?
А я чёт не юзаю эти все стрелочки. Как-то без них обошёлся :)

Если вдруг вы считаете, что со стрелочками будет юзабельнее — скажите, где и с какими именно. Я могу и исправить у себя :)

Nikolay
15.08.2017
14:55:21
Google
Андрій
15.08.2017
14:55:22
Так HttpClient не имеет состояния. Единственный вопрос с ним - это обработчики Так что нужен тип-обёртка

Nikolay
15.08.2017
14:55:31
Иначе сломается дефолтное апи

Хотя и reusable

Friedrich
15.08.2017
14:56:17
Так HttpClient не имеет состояния. Единственный вопрос с ним - это обработчики Так что нужен тип-обёртка
Я не уверен, что правильно понял это «не имеет состояния». Вообще-то состояние у него есть, и состояние — это и есть причина, по которой его нужно переиспользовать. У него же там пул коннектов к хостам повторно используемый.

Mike
15.08.2017
14:57:14
dotnet add package FunHttp в консоли пропиши
Он ругнулся error: Invalid restore input. Invalid restore input. DotnetCliToolReference-Amazon.Lambda.Tools Input files: C:\Users\mpotanin\wg\exp\FSharp-Template-for-Aws-Lambda\FSharp-Template-for-Aws-Lambda.fsproj.

Андрій
15.08.2017
14:57:15
Vasily
15.08.2017
14:58:22
Поверх HttpClient я на билдерах баловался

Но дописывать лень :(

Friedrich
15.08.2017
15:01:00
@Dolfik мои опасения по поводу глобальных инстансов связаны с тем, что тебе этот пул подключений могут отравить (ну вот мало ли, найдётся какая-нибудь атака из разряда TCP poisoning). Тогда пользователи, которые не пользовались глобальным шареным инстансом клиента, не пострадают (или пострадают локально), а вот у тех, кто использовал шаренный инстанс, полностью сломаются приложения целиком. Поэтому я и считаю, что контекст шаринга должен управляться пользователем, и ни в коем случае не должен быть глобальным.

Vasily
15.08.2017
15:01:28
Ну и туда еще надо докрутить контекст всякий

Плюс бади

Evgeniy
15.08.2017
15:02:02
Большие куски кода выкладывайте в gists, пожалуйста.

Friedrich
15.08.2017
15:02:20
Да, возможно.

Vasily
15.08.2017
15:03:05
https://gist.github.com/vshapenko/1a973fa82fcd86592cfcc14550c237e9

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