@Fsharp_chat

Страница 765 из 772
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
если C# переписывать на Ф# - медленнее не будет
Есть ли пример, когда на ф# что-то заимплеменчено эффективнее с т з перформанса?

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

добавили поле

или лучше 10

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
а инициализировать 1 забыли.
Ну для того же есть явные конструкторы...

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
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 функции которые уже будут на следующий день в продакшене :)

вот тебе и перформанс

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
это я начал приводить пример - и бросил :)
Ну в меня во всех практически проектах с нуля объекты либо дто, либо то что я в DI регаю как синглтон, что с того?

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
а то в ф# ты не можешь? :)))
Если речь об изменении переменных - я говорил о функциональщине. Иначе это просто «функциональщина местами»

Darth
23.10.2018
00:23:10
солиду - противоречит
Каким образом?

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

Darth
23.10.2018
00:25:16
https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/array.sortinplace%5B't%5D-function-%5Bfsharp%5D
Ну отлично, у нас появляются переменные. Сдаётся мне, что с использованием ф# превращается в сишарп где «не нужно писать открывающие/закрывающие скобки» и прочими плюшками

сингл респонсибилити - лесом
Каким образом? Где вылезает вторая ответственность?

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

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