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 крайности, которые мы не рассматриваем. А далее рубить можно по-разному. Можно добавить ещё по методу на класс.