Re[32]: Мнение: объектно-ориентированное программирование — катастрофа на трилли
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 14.10.19 13:51
Оценка:
Здравствуйте, samius, Вы писали:

S>>>Конечно. Ты только сейчас оговорился, что это бывает уместно, а ты лишь про те кейсы, где это неуместно.


I>>Вот такое, как ты показал, уместно в основном при портировании с другого функционального языка. А вот C# имеет кучу собственных вещей, которые позволяют эффективно работать со списками в функциональном стиле.


S>То, что я показал — уместно лишь для блога. А собственные вещи C# не дают гарантий, которые дают персистентные коллекции. Ты же сам примеры приводил изменяемой коллекции за неизменяемым фасадом.


Цитирую себя "К сожалению, именно такой код часто и пишут функционалисты и называют это "красиво". Я даже видел библиотеки всерьёз написаные в подобном стиле на C# и даже на JS "

Далее, ты начал защищать тех самый функционалистов а потом "уместно лишь для блога"

Определись уже, для блоги или уместно в продакше.

I>>Ага, "на всякий случай"

I>>Ага, "и так сойдёт"
S>Вполне ожидаемый уровень аргументации.

Добавь сюда "уместно лишь для блога" Это сумма твоих высказываний.

I>> Например, автоматический рефакторинг сильно вряд ли сможет рефакторить твои наколеночные списков.

S>Какие проблемы с автоматическим рефакторингом?

Например, я хочу заменять цепочку эквивалентным кодом.

I>>Для персистентной модели в общем случае нужно гораздо больше, чем иммутабельные списки. Нужна вообще вся модель приложения персистентная, а следовательно, весь код который её использует, должен быть особенным.

S>Примерно таким же особенным, как код, использующий неизменяемые дотнетовские строки. Много ли твоих знакомых людей сломало голову о них?

Если ты про IImmutableList, то это используется местечково. Я как то не встречал больших приложений, что бы вся модель была персистентая, обычно толко кое какие части.
Сможешь сходу представить, как будет выглядеть персистетный аналог DOM ? html dom, xml dom, etc dom и как будет выглядеть код вида "удалить элементы в поддереве по признаку xxx"? И далее, как будет выглядеть вызывающий код.

I>>Кроме того, если функционалист уходит, на его место надо внезапно искать нового функционалиста, да еще такого, что бы C# знал и умел на вышем уровне, что бы продраться через эти велосипеды. Тут уже звоночек и у ПМ, и у HR, и у заказчика.

S>Код, который я привел — навеян SICP-ом. Это вводный курс для программистов, рассчитанный на людей, которые к компу вообще не подходили ни разу. Замыкания там даются в первом семестре, если не ошибаюсь.

ОМГ! Что бы понимать твой код надо гораздо больше, чем замыкания. Нужно уметь все алгоритмы, которые только встретятся в проекте, перепилить на вот эту модель. В универах этому почти не учат.

S>Звоночек у ПМ, HR и заказчиков должен взорваться от натуги, если они берут на C# программиста, не знакомого и не способного познакомиться с замыканием.


Cостояние нынешнего рынка труда не в твою пользу. 80% задач на любом проекте — рутина, простые задачи. Потому и берут тех, что дешевле. А вот оставшие 20% нужно написать так, что бы эти более дешовые смогли понимать и майнтейнить.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.