
Darth
22.10.2018
23:50:36
Ну меньше строк - я согласен что в фш многие вещи куда выразительнее. Вопрос то не в этом, а в функциональщине в целом. Просто ф#/с# сравнивать легче
Ну в целом я понял тезис о не поиске перформанса в функциональщине, спасибо за реплики:)

Grigoriy
22.10.2018
23:53:35
иной подход к решению кмк

Darth
22.10.2018
23:56:59
иной подход к решению кмк
Тут я согласен практически со всем. Просто как я подойду к менеджеру со словами «а давайте всё/часть перепишем на ф#, правда работать будет /чуть/ медленнее»...

Google

Grigoriy
22.10.2018
23:57:23
Нет :)
если C# переписывать на Ф# - медленнее не будет
Наоборот - очень много багов будет поймано на компиляции ещё

Roman
22.10.2018
23:58:58
В фшарпе перфоманс хороший можно получить, но придется использовать мутабельность

Darth
22.10.2018
23:59:09

Grigoriy
22.10.2018
23:59:29
Пример - есть DTO класс с моделькой, которую в жсончик обернём :)))) и отдадим клиенту
добавили поле
или лучше 10

Roman
22.10.2018
23:59:52

Grigoriy
23.10.2018
00:00:00
а инициализировать 1 забыли.

Darth
23.10.2018
00:00:20

Grigoriy
23.10.2018
00:00:21
ф# - пошлёт - скажет на всё проинициализиролвано

Google

Darth
23.10.2018
00:00:41

Grigoriy
23.10.2018
00:00:56
когда их 5 - запросто
а когда 25?
заимешься их перегенерять каждый раз
ни и перегенерить - тоже можно забьыть

Darth
23.10.2018
00:01:44
Ну тут конечно у меня вылезают вопросы к дизайнеру, но механизм тот же, раз требования таковы...

Grigoriy
23.10.2018
00:01:47
и компилятор ничего тебе не скажет

Darth
23.10.2018
00:03:20
и компилятор ничего тебе не скажет
Ну явно определённые конструкторы как раз для того, чтоб на стадии компиляции явно сказать , что именно нужно для построения данного объекта

Grigoriy
23.10.2018
00:03:54
но компилятор не энфорсит

Darth
23.10.2018
00:04:25

Grigoriy
23.10.2018
00:04:54
Не понял мысль
добавил поле, оставил прежний конструктор - всё компилируется

Darth
23.10.2018
00:05:11

Grigoriy
23.10.2018
00:05:42

Darth
23.10.2018
00:06:59

Grigoriy
23.10.2018
00:07:27
это модель

Roman
23.10.2018
00:07:31

Darth
23.10.2018
00:07:32

Google

Grigoriy
23.10.2018
00:07:41
причём тут опен-клозе?

Darth
23.10.2018
00:08:32
это модель
Тем не менее, нам же нужно соблюдать принцип закрытости к изменениям и открытости к дополнениям

Grigoriy
23.10.2018
00:09:15
ты свою оопешную софистику тут не разводи!
предлагаешь на каждое изменение модели уровень иерархии что ли добавлять???

Darth
23.10.2018
00:13:11
Я этого не говорил, я говорил о том, что к ООП в целом относится солид, который как раз помогает избежать многих проблем с читаемостью/сопровождением. И вопрос в том, что есть ли в ф# нечто, чисто функциональное, что позволяет обойти проги на с# по конечному перформансу, вот и всё:)

Grigoriy
23.10.2018
00:14:33
пока ты будешь думать над солидом 3 дня, я запилю 3 функции которые уже будут на следующий день в продакшене :)
вот тебе и перформанс

Darth
23.10.2018
00:15:19

Grigoriy
23.10.2018
00:15:37
не - это не переход на личности, это я к примеру :)
И у меня естт опыт такой
когда весь дизайн - это ДТО классы без методов

Darth
23.10.2018
00:16:28

Grigoriy
23.10.2018
00:17:41
каждому овощу - свой фрукт. Если тебе нужен сферический перформанс - надо брать ц++

Darth
23.10.2018
00:17:43

Grigoriy
23.10.2018
00:18:03
ДТО классы + статичные методы для их обработки
фп на C# для бедных

Google

Darth
23.10.2018
00:19:23

Grigoriy
23.10.2018
00:20:08
тогда зачем тебе ооп?

Darth
23.10.2018
00:20:27

Grigoriy
23.10.2018
00:20:31
состояние в синглтонах хранить?

Darth
23.10.2018
00:21:01

Grigoriy
23.10.2018
00:21:33
а то в ф# ты не можешь? :)))
https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/array.sortinplace%5B't%5D-function-%5Bfsharp%5D

Darth
23.10.2018
00:22:59

Grigoriy
23.10.2018
00:22:59

Darth
23.10.2018
00:23:10

Grigoriy
23.10.2018
00:24:06
сингл респонсибилити - лесом

Darth
23.10.2018
00:25:16

Grigoriy
23.10.2018
00:25:39

Darth
23.10.2018
00:26:53

Grigoriy
23.10.2018
00:27:53

Google

Darth
23.10.2018
00:28:27

Grigoriy
23.10.2018
00:29:01

Darth
23.10.2018
00:30:16
это не приекрасно ли?!
Это просто в чистом виде «если нужен перформанс - отказывайтесь от фп», что и есть прямой ответ на мой самый первый вопрос. И если продакшн критичен к перформансу - лучше сразу забыть о фп, чтоб не переписывать лишний раз

Grigoriy
23.10.2018
00:31:30
у меня тоже, но поддерживать такое - адъ

Darth
23.10.2018
00:31:47
По мне так пусть будут два небольших класса, которые каждый отвечают за своё. Чем когда они спаяны в одну кучу

Grigoriy
23.10.2018
00:33:41
чем меньше "классов", тем проще ориентироваться в проекте

Darth
23.10.2018
00:34:09

Grigoriy
23.10.2018
00:34:21
ну, зачем же :)
нужно искать компромисс

Darth
23.10.2018
00:35:12
ну, зачем же :)
Ну чем меньше) меньше одного ноль:) а это уже фп, удар по перформансу - меньше одного никак

Grigoriy
23.10.2018
00:35:51
нет :)

Darth
23.10.2018
00:40:34
Ну окей. Я опять же повторюсь, что рассуждал о теории. В целом на свои вопросы я ответы получил, за что спасибо)

Grigoriy
23.10.2018
00:40:41

Darth
23.10.2018
00:41:24

Grigoriy
23.10.2018
00:43:23
ну хорош уже придуриваться. 0 классов и все методы в одном классе, это 2 крайности, которые мы не рассматриваем. А далее рубить можно по-разному. Можно добавить ещё по методу на класс.