@Fsharp_chat

Страница 678 из 772
Friedrich
25.08.2018
14:31:00
F# Weekly всегда есть в нашем канале, если что: @fsharp_news

Anna
25.08.2018
14:31:29


Friedrich
25.08.2018
14:32:11
Как это не всегда!

Google
Roman
25.08.2018
14:32:45
Как это не всегда!
Последних не было, спасибо, что обратил на это внимание)

https://sergeytihon.com/2018/08/25/f-weekly-34-2018-ionide-reached-1-000-000-of-downloads/

Привет!!

Ädem
25.08.2018
18:30:44
Привет!!
Привет.

Roman
25.08.2018
18:30:54
Привет.
Какими судьбами?

Ädem
25.08.2018
18:31:11
Какими судьбами?
к тебе можно обратиться по поводу рекламы:?

Roman
25.08.2018
18:32:00
к тебе можно обратиться по поводу рекламы:?
Нет, у нас реклама не приветсвуется

Valeriy
26.08.2018
09:01:21
https://sergeytihon.com/2018/08/25/f-weekly-34-2018-ionide-reached-1-000-000-of-downloads/
Вот только книжки, по ссылкам там, для нас перекрыты :( Syncfusion is a United States company and is subject to US export laws. Consequently, due to your location, we may not allow access to any material on our site. If you believe that this is inaccurate, please contact sales@syncfusion.com Thank you. We are unable to service your request.

Valeriy
26.08.2018
09:02:42
Да я счас тоже скачаю, только факт.....

Friedrich
26.08.2018
09:03:12
Дожили: для того, чтобы скачать бесплатную литературу, приходится пользоваться VPN :)

Valeriy
26.08.2018
09:09:24
Точнне, для того, чтобы скачать книгу, написанную нашим товарищем, с которым ты даже знаком по конфам.....

Google
Alexey
26.08.2018
13:50:31
Просмотрел презентацию про DDD на F# и у меня возникли вопросы... Попробую адекватно их сформулировать

Мы объявляем некоторую систему типов в предметной области с помощью композиции ИЛИ и И

Каждому состоянию назначаем свой тип, его описывающий

И реализуем набор трансформаций, которые запускаются при воздействиях снаружи и которые переводят систему в новое состояние

Тут вроде как просто и понятно

Но возникает ряд вопросов

Ayrat
26.08.2018
13:56:30
Alexey
26.08.2018
13:58:43
Компилятор не позволяет применить некорректное преобразование к типу (логично) - но у нас состояние - это выбор одного варианта из нескольких, по сути произвольный, когда приходит некоторое событие извне это самое "извне" может либо не знать состояния системы, либо намеренно делать неверные действия, так?

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

Как это лечится или не лечится совсем?

Если не лечится, то подъём исключений в общем-то является совсем не плохим решением для обработки некорректных ветвей

(извините за прерывистый поток сообщений - еду в поезде, инет не всегда доступен)

Alexey
26.08.2018
14:00:40
Если бы в C# были нормальные псевдонимы для типов, многие вещи можно было бы легко сделать на нём достаточно красиво...

Предлагаю прочитать ещё про railway programming
Нечто подобное видел, но не в контексте F#

Alexey
26.08.2018
14:01:58
Сумм в смысле ИЛИ?

Ayrat
26.08.2018
14:02:06
Ага

Google
Alexey
26.08.2018
14:02:34
Они же достаточно просто на жынериках эмуляются

Я думаю под капотом в F# примерно так же оно и работает

Ayrat
26.08.2018
14:03:02
Они же достаточно просто на жынериках эмуляются
На с# можно сделать открытую сумму через общий интерфейс да

Alexey
26.08.2018
14:03:15
Не обязательно

Sum<TA, TB>, сделать один флажок внутри и реализовать операторы преобразования типов

Ayrat
26.08.2018
14:04:53
Да и писать такие типы запаришься

Alexey
26.08.2018
14:05:25
Я не говорю про полное соответствие

Надо сделать только один раз :)

Но поскольку всё равно нету нормального type alias - говорить об этом смысла нет

Ayrat
26.08.2018
14:07:17
Надо сделать только один раз :)
Оно выглядит красиво только для sum<a,b> А если там реальный кейс? Sum<SuccessResponse,FailureResponse,TransportTimeout>?

Не, это не про сишарп короче)

Alexey
26.08.2018
14:07:59
Varadic templates хочу :)

А скормить такие типы сишорпу (например на отрисовку или сторонней библеватеке) можно?

Alexey
26.08.2018
14:09:25
Данные модели ведь имеют смысл только когда они донесены до пользователя (БД - тоже пользователь)

грубо говоря, отрендерить там

Ayrat
26.08.2018
14:10:35
грубо говоря, отрендерить там
Все ок с этим, это просто по-другому.

Alexey
26.08.2018
14:10:52
Я ж не спорю

Ayrat
26.08.2018
14:12:17
Ну сериализация типов сумм тоже работает. И в бд кладется (схемлесс или документоориентировання лучше)

Google
Alexey
26.08.2018
14:13:03
А почему в презентациях в объявлениях типов закрывающаяся скобка идёт на той же строке, что и последнее поле? Это так положено или просто для экономии места?

Alexey
26.08.2018
14:15:10
type A = { x : string; y : int }

Ayrat
26.08.2018
14:15:39
Ну это неканоничная запись

Обычно открывающая скобка вместе с первым полем. Закрывающая с последним полем

За канон я беру книгу Expert F# от Сайма

Alexey
26.08.2018
14:17:12
А закрывающуюся можно на отдельной строке лепить? :)

Ayrat
26.08.2018
14:18:08
Можно)

Но это какая-то джава получится

Alexey
26.08.2018
14:20:41
Я смотрю в F# каких-то явных разделителей или блоков в коде нету

Или я невнимательно смотрю? :)

Скорей бы до цивилизации из лесу доехать :(

За канон я беру книгу Expert F# от Сайма
Она в PDF в сравнительно свободном доступе имеется?

Ayrat
26.08.2018
14:23:12
アレクセイ
26.08.2018
14:23:18
Я кстати был неприятно разочарован наличием фигурных скобок в F#, думал отступами всё разрулили

Alexey
26.08.2018
14:23:34
К чёрту отступы

Ayrat
26.08.2018
14:24:16
К чёрту отступы
Пишешь код в столбик без отступов?)

Alexey
26.08.2018
14:24:50
нет, но предпочитаю добровольные отступы, а не шизу в исполнении компилятора

и явные синхронизируюзие символы в плавилах парсера :D

アレクセイ
26.08.2018
14:25:53
Всю жизнь считал что скобки это для компилера, не для людей) ну раз кому-то нравится...

Google
Ayrat
26.08.2018
14:26:21
нет, но предпочитаю добровольные отступы, а не шизу в исполнении компилятора
Насколько они добровольные? Любой код ревью завернет код без отступов. Автоформатер в студии и решарпере добьет отступы сам

Ayrat
26.08.2018
14:27:00
Кода без отступов просто не бывает. Все обязаны писать в одном стиле.

Я вот считаю маразмом иметь И отступы И скобки .

Отступы ты и так обязан писать как все. Так ещё и скобки как дебил расставляешь

Max
26.08.2018
14:29:34
Для всеразличных спешл кейсов можно делать так enum CustomerId { BillGates = 1564, VladimirP = 26863 } … If(customer==CustomerId.BillGates) {…}
С такой хренью долго багу искали когда-то. Руки за такие енамы отрывать ))

アレクセイ
26.08.2018
14:31:36
Из тех кто пишет код с магическими цифирями в ифах?

Max
26.08.2018
14:32:36
Детализируйте. Почему не ноги? ?
Без ног можно повторить говнокод. Без рук сложнее :D

アレクセイ
26.08.2018
14:33:27
Без ног можно повторить говнокод. Без рук сложнее :D
За «говнокод» необходимо отвечать. Какая альтернатива не говнокод?

Max
26.08.2018
14:34:24
Из тех кто пишет код с магическими цифирями в ифах?
Из тех кто старается не зашивать бизнес значения в код ( типа ид юзера, и т.п. у нас зашили ид админа из базы :)

アレクセイ
26.08.2018
14:35:26
В смысле? А как ещё вы отличаете группу «администраторы» от 100500 других групп в организации? Пример кода если можно.

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