Roman
которые достаточно гибкие, учитывая паршл аппликейшн
gsomix
Roman
Я посмотрел доклад про Dependency rejection от Марка Симанна или как его там. На его примере выглядит вполне неплохо, хотя пример очень скромен в объеме
gsomix
gsomix
gsomix
:)
gsomix
gsomix
Roman
я-то и не наследую. Оно блять до меня уже так унаследовано, что мне только щепотку базилика добавить остается
Vasily
К сожалению, наследование такой общепринятый паттерн в сишарпе
Vasily
И используют его странно
gsomix
Нет.
У него суть в том, что DI -- это не функционально (даже через час исное применение). Он показывает это на примере Haskell, а потом переходит к Deoendency Rejection.
gsomix
gsomix
Ну, короче, детали реализации не очень интересные. Есть разные способы управления зависимостями, и, кажется, просто протаскивать их через аргументы функции -- один из самых неудобных методов.
Roman
Глобально о том, что ООП не подходит для сегодняшних задач. Локально об управлении зависимостями в сишарпе и фшарпе
gsomix
Roman
я возможно не однозначно выразился
Vasily
Ну я бы сказал, что подходы, применимые в сишарп,не слишком применимы в фшарп
Roman
Я не к тому, что ООП устарело и его пора на свалку и ФП ололо будущее. Я к тому, что организовывать логику поведения через объекты неправильно, и что объекты нужны для другого
Vasily
В с# берут одну сущность и начинают на неё накручивать всякого
gsomix
Vasily
Отсюда di и прочее
gsomix
gsomix
А про настоящие first-class модули в ML.
Roman
Пушто логически сервис — это блок функций. А технически — объект. Из-за такого несоответствия идеи и реализации всегда возникают проблемы
Vasily
Технически это тоже функция
Vasily
С набором стейтов
Roman
Я на самом деле разобраться хочу, а не просто поспорить ради спора
Vasily
Vasily
Класс это способ группировки в общем-то
Vasily
Т.е. я группирую набор функций по определенному признаку
Ayrat
А давайте в качестве бреда предположим что класс это стейт + набор функций его мутирующих (+ сайд эффекты). И чтобы каждый раз это не рассказывать, можно сказать слово класс!
Bonart
Ayrat
ничего плохого в классах я кстати не вижу. Пользуюсь ими. Гораздо реже чем когда писал на C#, но пользуюсь
Vasily
Но потом мне начинает хотеться добавить стейт и получается то, что ваше Ayrat написал
Bonart
С функциями проще, но кое-что на классах получается лучше
Roman
gsomix
Модули в F# не параметризуются.
Vasily
Bonart
gsomix
Короче, довольно странно, что все хейтят ООП, когда в F# — это основной способ делать нормальные абстракции.
gsomix
Как раз за счет того, что объекты параметризуются.
gsomix
Можно даже мутабельный стейт и наследование не делать.
Bonart
Это как всегда - хейтят почему-то инструмент, а не кривизну собственных рук
gsomix
+
Roman
я не хейтил ООП ни разу сейчас, есличо
Ayrat
Короче, довольно странно, что все хейтят ООП, когда в F# — это основной способ делать нормальные абстракции.
Я за себя скажу (хоть ты и не обращался ко мне лично) что я хейчу бездумное ООП. Равно как я хейчу бездумное ФП. Мне лично кажется вырвиглазным дот-фри нотация в её экстремуме.
Я лично именно потому и полюбил F# потому что он позволяет говнокодить при необходимости. А работа обычно без говнокода не обходится
Вместо того чтобы думать какую бы абстракцию навернуть в хаскеле чтобы на консольку распечатать (я утрирую, но всё же), я просто печатаю в консольку
Roman
Да. Я не исключаю, что DI активно абьюзится на моем проекте, но что бы там кто ни говорил — DI фреймворки это сложная штука, в первую очередь из-за богатства функционала. И у меня есть подозрение, что они стали такими сложными, пушто люди с помощью объектов решают то, что разумнее решать с помощью функций/параметризуемых модулей и тд
gsomix
gsomix
Это дело привычки, наверное?
gsomix
И правильного использования.
Roman
вот я и хочу разобраться
Bonart
Roman
прежде, чем выступать с докладом про фшарп)
Vasily
Понеслось говно по трубам...
Anonymous
и если опираться на эти определения то довольно заметная часть кода современного энтерпрайза под определение объекта не подходит
Bonart
Ayrat
Понеслось говно по трубам...
да. Нам надо бота, который бы показывал сколько дней не холиварили за ООП/ФП.
Как таблички на производстве - "дней без травм - 5"
Ayrat
@Dolfik идея для следующего бота!!
Анна
gsomix
Хорошее получилось обсуждение.
gsomix
Спасибо.
Nikolay
@fvnever я тут упоролся
Nikolay
И написал через DynamicMethod и ILGenerator
Nikolay
Похоже теперь тормозит вызов DynamicMethod :D
Ayrat
Ayrat
в студии есть профилятор встроенный хороший
Ayrat
в ентерпрайзной
Nikolay
Expression похоже кидает всё в кучу
Nikolay