
Летучая
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 и что там ешё есть на лоулевеле

Летучая
08.06.2017
09:59:27

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

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. Если не говорить что готово, никто не будет пользоваться, не будут пользоваться, не будет развиваться

Vasily
08.06.2017
14:57:41

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

Roman
08.06.2017
15:13:57

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
а пользователи видели, нормальный 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

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

Friedrich
08.06.2017
15:40:29

Roman
08.06.2017
15:40:39

Pawel
08.06.2017
15:43:11

Friedrich
08.06.2017
15:43:32
Гм, мы друг друга не понимаем %)
Я про history.pushState и говорил, короче. В ангуляре она называлась "HTML5 Mode". А про "навигацию" это я ляпнул по ошибке — всегда почему-то думал, что это "HTML5 navigation mode".
(хотя на самом деле это HTML5 history mode)

Dmitriy
08.06.2017
15:48:52

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