@Fsharp_chat

Страница 581 из 772
Evgeniy
25.05.2018
10:24:21
?

Нет, спасибо.

Vasily
25.05.2018
10:25:09
Просто код на рабочем компе,а доступа к интернету нет на нем

Evgeniy
25.05.2018
10:25:30
Я, кажется, понял, что ты делаешь. Это не очень хорошо.

Google
Vasily
25.05.2018
10:26:15
В моем случае нет конкурентного доступа

Evgeniy
25.05.2018
10:26:40
В твоем случае есть зависимость от глобального состояния.

Это плохо.

Vasily
25.05.2018
10:26:52
Ну и подумываю все же что-то вроде акки туда впилить

Evgeniy
25.05.2018
10:27:40
Да,есть
В 2к18 так уже не делают. :)

Vasily
25.05.2018
10:28:28
Ну,учитывая, что нужны в основном синглтоны...

Хотя в конечном итоге это все мигрирует на цепочку акторов,похоже

Vladimir
25.05.2018
10:38:01
DI нужно там где есть неясность относительно реализации в момент написания. Вот жираф его в первых версиях не заюзал, потом на пусть истинный вышел) Сериализация там через DI делается сейчас. А вот когда DI делается просто на всякий случай, или для тестов, такого фшарп избегает.

Andrew
25.05.2018
10:42:41
Ну вообще "сделать архитектуру под сейчас или с запасом под будущие фичи?" сложный вопрос, так как иногда получается потом код, который нигде не используется, либо лишняя абстракция и тд

Типо тут однозначного ответа нет)

Vladimir
25.05.2018
10:46:33
Ну, YAGNI это чаще всего хороший принцип, но нужно уметь находить некоторые места где надо подархитектурить на будущее. Это с опытом наверное приходит)

A64m
25.05.2018
10:52:20
надо просто делать язык так, чтоб не надо было дорого платить за возможные расширения в дальнейшем. одно дело с DI код писать, или функторизированный, совсем другое, если обычный импорт, выглядящий как статический, можно потом подменить на другой при линковке.

Google
Vasily
25.05.2018
10:56:00
Ну мне пока непонятно, где нужен, у меня нет множественных состояний

У меня всегда одна пользовательская сессия

Можно, конечно,на акторах попробовать,но непонятны бенефиты будут

Vladimir
25.05.2018
11:00:36
надо просто делать язык так, чтоб не надо было дорого платить за возможные расширения в дальнейшем. одно дело с DI код писать, или функторизированный, совсем другое, если обычный импорт, выглядящий как статический, можно потом подменить на другой при линковке.
все равно проблема останется если неправильно писать) в случае с жирафом - это либа в которой есть сериализация и если ее не вынести в интерфейс или отдельную либу, то ничего не сделаешь. А через интерфейс проще заменять чем либу подменять

A64m
25.05.2018
11:02:00
да, все равно надо писать правильно, но главное что не будет страданий, которые окажутся ненужными, если ничего не надо будет расширять

Vladimir
25.05.2018
11:03:36
ну хз, по мне так проблема поддержки di через 10 либ не сильно меньше поддержки через 10 интерфейсов)

Sergey
25.05.2018
12:08:02
Интелисенс для жирных type providers скоро станет шустрее - https://github.com/fsprojects/FSharp.TypeProviders.SDK/pull/229

Evgeniy
25.05.2018
12:13:03
Отлично!

https://twitter.com/JOTB2018/status/999934894368227328

Старый доклад. :(



Rider 2018.1.1 EAP VS 15.7.2

Mariia
25.05.2018
13:07:07
покажи что открыто, какие экстеншены стоят и тд и тп

Evgeniy
25.05.2018
13:08:51
Открыт маленький солюшн (4 F# проекта, 1 C#), без экстеншнов.

Vasily
25.05.2018
13:09:46
Вы мне вот лучше подскажите, коллеги

Есть протокол обмена сообщениями

Каждое сообщение состоит из заголовка и данных

Каждый ответ состоит также из стандартного заголовка и тела

Теперь вопрос

Google
Vasily
25.05.2018
13:12:41
Какую структуру данных выбрать под сообщения, чтобы их можно было :1. процессить единообразно.2.Единообразно обрабатывать результат

Пока склоняюсь в сторону, как организованы http request

Roman
25.05.2018
13:13:38
а что в теле?

Vasily
25.05.2018
13:14:05
В теле бинарные данные заранее неизвестной длины

К сожалению

То,как читать,зависит от поля в заголовке

Roman
25.05.2018
13:15:19
по описанию все это действительно очень похоже на хттп реквест

Vasily
25.05.2018
13:15:31
Ну у него есть размер

Тут я размер не могу заранее определить

А так да,похоже

Roman
25.05.2018
13:16:46
а в заголовок длину тоже никак не пропихнуть?)

Vasily
25.05.2018
13:17:00
Она плавающая величина,в общем-то

В целом,конечно, можно то, что начитываю,сразу сериализовывать в json,но тут тоже есть моменты

В общем, дилемма

Vasily
25.05.2018
13:30:59
Я хочу разнести процессы отправки/получения и десериализации в конкретные типы

Т.е. отправка сейчас единообразно

Через BinaryWriter->unit

Начитка сильно зависит от структуры данных

Google
Vasily
25.05.2018
13:32:44
К сожалению

Pavel
25.05.2018
13:33:25
жаба она такая. прожорливая

Evgeniy
25.05.2018
13:33:46
жаба она такая. прожорливая
Раньше VS больше кушала.

Mariia
25.05.2018
13:34:06
Evgeniy
25.05.2018
13:34:23
с решарпером
Я не пользуюсь.

Pavel
25.05.2018
13:36:29
Раньше VS больше кушала.
ну не знаю. наши жабисты больше 1 копии идеи запустить не могли. а студий про три инстанса без проблем ворочалось. года 2 назад еще

Pavel
25.05.2018
13:38:03
2017 без f#.

или предыдущая. не помню уже

Evgeniy
25.05.2018
13:39:24
Я в контексте F# сравниваю, его тулинг всегда довольно много кушает. :)

Pavel
25.05.2018
13:43:36
ну тогда надо поработать над солюшеном а потом снова память посмотреть. мало ли там отложеных инициализаций наворотили

с другой стороны таск менеджер погоду показыват. монитор ресурсов наверно более адекватный будет

Andrew
25.05.2018
16:10:40
Открыт маленький солюшн (4 F# проекта, 1 C#), без экстеншнов.
Ну учитывая что в райдере решарпер встроен, то их справедливо будет сравнивать если на студию поставить решарпер

Pavel
25.05.2018
17:36:17


пишет, что не может такой метод найти, хотя другие методы (не реализации интерфейса в этом же классе видит)

Klei
25.05.2018
17:37:20
this какой тип имеет?

Попробуй скастить к интерфейсу.

Roman
25.05.2018
17:37:34
This приведи к IMessenger

Pavel
25.05.2018
17:39:49


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

Google
Pavel
25.05.2018
17:40:23
спасибо!

но всё равно это немного странно

Klei
25.05.2018
17:40:55
А там не работает просто IMessenger<_,_>?

Pavel
25.05.2018
17:41:08
работает

Evgeniy
25.05.2018
17:41:33
спасибо!
Лучше, наверное, вынести общую реализацию Send из реализации интерфейса.

Pavel
25.05.2018
17:43:51
а какое-то внятное объяснение, почему так и чем это лучше есть? (я про недоступность методов интерфейса без каста)

Roman
25.05.2018
17:44:42
но всё равно это немного странно
Это нормально) программировать надо на интерфейсах)

Evgeniy
25.05.2018
17:44:52
Лучше, наверное, вынести общую реализацию Send из реализации интерфейса.
type A = let send endpoint msg = ... interface IMessenger<...> with member __.Send endpoint msg = send endpoint msg member __.SendBroadcast msg = send broadcastEndpoint msg @shishkinpavel

Pavel
25.05.2018
17:46:26
да, это понятно

Evgeniy
25.05.2018
19:04:36
Тайппровайдер для бедных. :) https://marketplace.visualstudio.com/items?itemName=quicktype.quicktype

Evgeniy
25.05.2018
19:38:38
Надо запилить.

Evgeniy
25.05.2018
19:42:31
Справедливо.

Сейчас поправлю.

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