@Fsharp_chat

Страница 203 из 772
Летучая
08.06.2017
08:09:15
Найс дискуссия

#либынинужны

Pawel
08.06.2017
08:10:39
смотря какие

Evgeniy
08.06.2017
08:12:23
@Worldbeater Забей. Ты все правильно делаешь.

Google
Evgeniy
08.06.2017
08:16:59
Если API можно завернуть в типы, то это стоит делать. Если бойлерплейт можно собрать в библиотеку, то это стоит делать.

Friedrich
08.06.2017
08:21:17
Ну а если хочется потом абстрагировать библиотеку от способа отправки HTTP-запросов, например — это можно сделать и позже :)

(если кому-то из клиентов и правда понадобится)

Pawel
08.06.2017
08:45:51
Ну так библиотек для описанного выше бойлерплейта овер дофига существует. Заворачиваение апи в типы не даёт ни каких сатических гарантий, если апи само по себе динамически типизировано. Но коенчно если цель - просто завернуть в типы безотносительно к юзабилити - вопросов нет ни каких

Friedrich
08.06.2017
08:50:06
Каких библиотек? Давай названия, посмотрим.

Pawel
08.06.2017
09:48:58
@Worldbeater, я думал, что это не твоя либа, но ты хочешь её для F# адаптировать)

поэтому сфомулирую предложения по другому - - для F# - добавить возможность делать реквест-респонсы с JsonValue из FSharp Data или другим аналогичным типом-монадой Json - в общем - добавить кастомизацию http, oauth2 и что там ешё есть на лоулевеле

Vasily
08.06.2017
10:00:51
Тип-монаду json лучше описать как 'a->string по идее

Имхо

Точнее не так

Там одно из трех значений

Мда, пора есть идти, плохо соображаю :(

Google
Vasily
08.06.2017
10:06:33
Если в терминах HttpRequestMessage говорить, то там есть значение Content

ByteArrayContent - HTTP content based on a byte array. FormUrlEncodedContent - HTTP content of name/value tuples encoded using application/x-www-form-urlencoded MIME type. MultipartContent - HTTP content that gets serialized using the multipart/* content type specification. MultipartFormDataContent - HTTP content encoded using the multipart/form-data MIME type. StreamContent - HTTP content based on a stream. StringContent - HTTP content based on a string.

И, в общем-то, можно DU написать

Pawel
08.06.2017
10:09:41
Тип-монаду json лучше описать как 'a->string по идее
вот что такое монада json : type Json = JString of string | JNumber of float | JBool of bool | JNull | JList of Json list | JObject of Map<string, Json>

Vasily
08.06.2017
10:09:41
Ну и json частный случай реализации

Это DU

Реализованное в одной конкретной библиотеке

В плане универсальности с моей точки зрения на это лучше не опираться, а вводить более абстрактные понятия

Pawel
08.06.2017
10:13:46
не важно в какой библиотеке, принципы работы и структура единственна и неизбежна

Vasily
08.06.2017
10:14:07
Могут отличаться названия

Как минимум

В целом, ты предлагаешь частный случай 'a->string вывести как общий

Pawel
08.06.2017
10:31:39
В целом, ты предлагаешь частный случай 'a->string вывести как общий
тебя фантазия завела в дебри) нет ни какого a -> string. rest api - это набор функция типа JsonValue -> JsonValue, и всё. Почему именно JsonValue - потому что 1) он полностью идентичен реальному json, и по тому элементарно сериализуется-десериализуется 2) для него очень легко писать линзы на структуры данных F# и использовать в вычислительных выражениях А как там поля называются - пофиг вообще, понятно, что нормальный человек назовёт JString или JsonString или StringJson, а не VoodooUnicornDecorator

Roman
08.06.2017
10:32:21
Привет!

Evgeniy
08.06.2017
10:32:56
Привет!
Так он уже успел выйти, нет?

Roman
08.06.2017
10:32:57
Он испугался и убежал.

Pawel
08.06.2017
10:33:36
Спасибо огромное! Сохранил, буду пилить :)
о, ещё одну хотелку забыл сказать - чтобы респонс от вк апи был завёрнут в Result Result<JsonValue,ApiError>, и чтобы эксепшенов не было. Понимаю, что это не просто реализовать

Vasily
08.06.2017
10:56:36
Я, конечно, ща скажу большую глупость, но rest - не всегда json

Evgeniy
08.06.2017
13:44:15
Сайм сегодня 70 контрибуций наконтрибьютил.

Google
Evgeniy
08.06.2017
13:44:32
Не в visualfsharp, правда. :(

Vasily
08.06.2017
13:45:05
Нехороший человек

Dmitry
08.06.2017
14:08:47
О, а такое уже смотрели: https://www.youtube.com/watch?v=X76iVWa-0e0

Friedrich
08.06.2017
14:09:17
Ого, свежак! Спасибо!

Pawel
08.06.2017
14:41:51
ээ, жаль меня там не было. задал бы я этому дядечке пару воросиков. А то он с таким видом говорит, будто бы fable и suave давно уже готовы к проду

Vasily
08.06.2017
14:42:10
Все они так говорят

Roman
08.06.2017
14:53:24
fake it before you make it. Если не говорить что готово, никто не будет пользоваться, не будут пользоваться, не будет развиваться

Pawel
08.06.2017
15:11:38
Интеграторы блин))) Знания надо распространять, а не пропаганду) Вот из-за таких и переходили на NodeJs и Scala, а теперь бегут с них со слезами. Очевидно если fable не пользуются, то у него есть проблемы. Я например elm использую и никакого желания переходить на fable сейчас нет, могу на пальцах объяснить почему. Делать хайп на несчастных, тратящих время на не работающий инструмент - это грех. При том я ни разу не против самой идеи доклада по fable, там есть что рассказать конструктивного, без пустой показухи

Pawel
08.06.2017
15:16:26
ты передёргиваешь сейчас)) просто пытаюсь адекватно оценить событие. F# классный, я его уже 5 лет пользую

Roman
08.06.2017
15:18:11
Fable норм, по крайней мере сейчас его тыкаю для веба и он вполне ничего. Suave уже давно норм.

Vasily
08.06.2017
15:18:32
dotnet new не норм

Roman
08.06.2017
15:21:02
кстати в ангуляре можно было включить html5-api у location и не использовать эти ужасные localhost/app/#myroute, а использовать location/app/myroute. Вот как это включать в fable-elmish-react я пока не понял. КТо-нибдуь знает?)

Pawel
08.06.2017
15:21:02
так вообще всё норм в программировании. не бывает плохих языков. все фреймворки хороши: http://tonsky.livejournal.com/281876.html

так # - это же вроде указание браузеру перейти к id

Roman
08.06.2017
15:28:09
так # - это же вроде указание браузеру перейти к id
в первом ангуляре сначала так же было, потом стало можно включитьв locationProviderSettings.useHtml5 = true и эта решетка(хэшбэнгом) подставляляась только поисковикам.

а пользователи видели, нормальный url

во втором ангуляре тоже похоже @NgModule({ ....... providers: [ .... { provide: LocationStrategy, useClass: HashLocationStrategy }, .... ] }); как сделать такоре в fable-elmish? @ruzzke_mir в elm кстати та же проблема. Как в elm убрать решетку? Я так же в fable-elm-react попробую)

в общем сейчас толкьо руками. Нуок

Google
Pawel
08.06.2017
15:37:39
хз, мне бы и в голову не пришло её убирать. Думаю через history.pushState можно

в смысле в js

Roman
08.06.2017
15:38:24
в js-то я понимаю. В обещм нашел. что там есть сторонний парсер url, можно его заменить и сделать свой.

в Fable-elmish-react темплейте самописная ф-ция parseHash

Friedrich
08.06.2017
15:39:54
так # - это же вроде указание браузеру перейти к id
# это костыли для браузеров, которые не умеют в HTML5-навигацию (сейчас таких уже нет)

Pawel
08.06.2017
15:40:16
так ты имелл ввиду просто преобразовать строку урл? или надо именно заменить урл в строке браузера?

Friedrich
08.06.2017
15:40:29
хз, мне бы и в голову не пришло её убирать. Думаю через history.pushState можно
Да, эта функция и используется всеми подобными библиотеками :)

Friedrich
08.06.2017
15:43:32
Гм, мы друг друга не понимаем %)

Я про history.pushState и говорил, короче. В ангуляре она называлась "HTML5 Mode". А про "навигацию" это я ляпнул по ошибке — всегда почему-то думал, что это "HTML5 navigation mode".

(хотя на самом деле это HTML5 history mode)

Roman
08.06.2017
15:57:15
Приятно открывать, например, SQLProvider и видеть в в контрибьютерах знакомые имена и ники, @fvnever

Friedrich
08.06.2017
15:57:43
?

Но я там только в документации отмечался.

А вот из действительно полезных вещей я контрибьютил в Freya, VFPT, Paket.

Nikolay
08.06.2017
16:36:03
Friedrich
09.06.2017
02:51:44
Ну а чего туда контрибьютить? Там работает всё :)

Google
Evgeniy
09.06.2017
05:02:18
New version of Ionide released. Adding initial implementation of F# project explorer. Latest VSCode version required.

Friedrich
09.06.2017
05:16:17
А ну, щас посмотрим.



И вообще ничего нельзя — только выбирать файлы, и они открываются в редакторе.

Но оно определяет изменения в fsproj и почти сразу обновляет у себя список. Уже хорошо!

В общем, с такой фичей жить удобнее, чем без неё, но развиваться ей ещё есть куда.

Evgeniy
09.06.2017
05:32:46
@fvnever Спасибо.

Добрался до подкаста про Orleans. :)

С автором "болл на хилл".

Anton
09.06.2017
08:53:22
@Worldbeater по поводу WordCloud могу советовать плагин к d3.js. Через Fable вполне можешь отрисовать шикарное облако. https://github.com/jasondavies/d3-cloud

Сам лично в проде использовал этот плагин, правда со стороны js и react.js

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