
Денис
05.02.2018
12:41:31
https://hastebin.com/iruvoyusit.fs
Можно этот код упростить как то?

Evgeniy
05.02.2018
12:49:08
Царьпалис новую статью написал.
https://eiriktsarpalis.wordpress.com/2018/02/05/property-testing-generic-programs/

Klei
05.02.2018
12:56:00
Народ, я почти добил свой перевод (сейчас в моей приватной репе на vsts). Может форкнем репу FFF&P? Чтобы я сразу на нее PR кинул.

Google

Klei
05.02.2018
12:57:12
У него достаточно много ссылок на другие материалы на его же сайте. Можно будет не править навигацию.

Evgeniy
05.02.2018
13:01:56

Klei
05.02.2018
13:09:43
А переводов я у него не видел.

Evgeniy
05.02.2018
13:10:06
@neftedollar @fvnever

Friedrich
05.02.2018
14:03:47
https://youtu.be/ez8t1tDqHEk воу! @shwars берёт интервью у Сайма! ЪЪ

Evgeniy
05.02.2018
14:06:08
Ну, я там видел.

Friedrich
05.02.2018
14:06:31
Теперь все увидят, ссылка из F# Weekly :)

Evgeniy
05.02.2018
14:07:14

Friedrich
05.02.2018
14:07:26
Ок, а какую репу-то? :)
Скажите репу, я форкну в комьюнити.

Google

Evgeniy
05.02.2018
14:07:55
https://github.com/swlaschin/fsharpforfunandprofit.com
Тебе лишь бы пофоркать!

Friedrich
05.02.2018
14:08:36
@Kleidemos, прошу! https://github.com/fsharplang-ru/fsharpforfunandprofit.com

Klei
05.02.2018
14:09:07
Ок, сегодня сделаю PR.

Friedrich
05.02.2018
14:09:21
В бранч master-ru, пожалуйста.

Vlad
05.02.2018
14:16:13

Roman
05.02.2018
14:16:54

Roman
05.02.2018
14:30:11
На следующий попробую

Dmitri
05.02.2018
14:57:24
Интересно, вытащат ли сайма на дотнекст
Один раз мы были близки к тому, чтобы вытащить его в Россию, но помешало извержение вулкана (не летали самолёты). С тех пор не получалось, он отказывался под предлогом, что не хочет много путешествовать.

Vladimir
05.02.2018
15:39:54
Есть вопрос - кто как хранит логику по валидации моделей? В сишарпе я обычно пишу метод Validate или IsValid в классе модели, с рекордами так не прокатывает, а классы не хочется писать)

Григорий
05.02.2018
15:40:51
как вариант завести модуль для конкретного типа
и да у рекорда можно создать метод ))

Vladimir
05.02.2018
15:42:14

Friedrich
05.02.2018
15:45:56

Григорий
05.02.2018
15:46:47
собственно, будет работать также как и обычный метод у класса, метод описывает за счет расширения записи
только выглядит экзотично =)

Vladimir
05.02.2018
15:48:08
аа, через with, вижу, спасибо)

Friedrich
05.02.2018
15:48:11

Google

Vladimir
05.02.2018
15:48:58
Я делаю десериализацию, а после нее нужно проверить что значения валидные

Friedrich
05.02.2018
15:49:00
Я бы в модулях, соответствующих моделям, сделал функции валидации, пожалуй. Методы не всегда хорошо смотрятся.
Но это совет тоже не очень-то толковый, потому что он не говорит, что с этими функциями делать дальше :)

Vladimir
05.02.2018
15:51:40
да, учат чтобы было так красиво) но что здесь есть validate?)
deserialize то он общий для всех типов, а validate у каждого свой

Friedrich
05.02.2018
15:53:21
Ну, тут можно по-разному начинать выкручиваться, чтобы это сделать кратко и в то же время аккуратно.

Aleksander
05.02.2018
15:53:36
Не уверен что в валидации стоит использовать эксепшены, по крайней мере в F#, и если валидацию ты пишешь сам

Friedrich
05.02.2018
15:54:05
Например, сделать функцию, которая этим validate параметризуется. И потом
let myModelModule = makeDeserializator MyModel.deserialize MyModel.validate

Vladimir
05.02.2018
15:55:54

Friedrich
05.02.2018
15:56:55

Evgeniy
05.02.2018
15:58:06
Интерфейс + функция validate выглядят неплохо.
Ну, или SRTP примотать изолентой.

Oleg
05.02.2018
16:04:21
А что, книгу Domain Modelling Made Functional не читали? Там советуют использовать Dto объекты для сериализации, валидацию делать при создании доменного объекта, то о чем Фридрих говорит

Vladimir
05.02.2018
16:06:25
ну вот у меня первая строчка это десериализация, а следующая это создание доменного объекта
соответственно между ними нужно его провалидировать)
https://fsharpforfunandprofit.com/posts/serializating-your-domain-model/
Вот тут есть упрощенный вариант. Типа из дто мы делаем доменную модель, но в реальности, из дто и еще парочки других значений. Так что выносить в отдельный метод jsonToDomain с кучей параметров на хочется

Friedrich
05.02.2018
16:17:48

Google

Klei
05.02.2018
16:18:45

Vladimir
05.02.2018
16:20:23
Не очень понял)
Вот у меня есть модуль MyApp.DtoType
В нем есть тип DtoType. Тогда возникает проблема как я описал, как их сделать на том же уровне?

Klei
05.02.2018
16:21:01
type DtoType = ...
module DtoType = ...

Vladimir
05.02.2018
16:22:49
а что внутри module DtoType?
если функция валидации там, то все равно надо сделать open MyApp.DtoType
в общем, вариант рекорда с with мне понравился, всем спасибо)

Klei
05.02.2018
16:41:03
А почему нельзя писать DtoType.validate?
Заодно вывод типов подъедет.
Время бросать камни.
https://github.com/fsharplang-ru/fsharpforfunandprofit.com/pull/1

Vladimir
05.02.2018
18:20:12
ну и еще минус небольшой, что нельзя вынести в общую для всех логику deserialize+validate (если вдруг захочется)

Roman
05.02.2018
18:32:41

Artemy
05.02.2018
18:34:08

Klei
05.02.2018
18:34:39
У него два репозитория?!

Artemy
05.02.2018
18:35:44
https://github.com/swlaschin/fsharpforfunandprofit.gitbook

Klei
05.02.2018
18:35:57
*много мата*
Да, надо форкать тот.
Я собственно его и скачивал в первый раз.

Artemy
05.02.2018
18:36:22
Я вот для своего перевода оттуда форкал

Roman
05.02.2018
18:36:32
Упс

Google

Klei
05.02.2018
18:36:55
Щас еще проблемы решал связанные с разницей между ними.
Кто-нибудь, сделайте форк гитбука. Я щас все туда перенесу.

Roman
05.02.2018
18:37:14
у gitbook максимум 5 участников может быть, печально.
Было бы хорошо ее использовать для всего остального, а жаль(

Artemy
05.02.2018
18:39:38
А что за gitbook?
https://www.gitbook.com/book/swlaschin/fsharpforfunandprofit/details

Klei
05.02.2018
18:41:01

Roman
05.02.2018
18:41:15

Artemy
05.02.2018
18:41:23
Блин, я, видимо, перепутал насчёт японского языка. Это какая-то другая книга с японским переводом была

Roman
05.02.2018
18:41:31

Artemy
05.02.2018
18:41:39
Не, что-то по F#, вроде

Roman
05.02.2018
18:42:07

Artemy
05.02.2018
18:43:31
Или это вообще не gitbook была, а просто странички проектов
Но не суть, главное, что gitbook поддерживает верси на разных языках

Klei
05.02.2018
18:48:20
Ну я тоже что-то встречал по F# на гитбук с японским переводом. Но что не помню.

Roman
05.02.2018
18:50:17
https://github.com/fsharplang-ru/fsharpforfunandprofit.gitbook
Сорри, увлекся документацией

Klei
05.02.2018
18:52:20

Roman
05.02.2018
18:52:28
ок
https://github.com/fsharplang-ru/fsharpforfunandprofit.gitbook/tree/master-ru