Roman
не совсем
Vasily
Ну дык, ептыть
gsomix
не совсем
Просто в контексте решаемой задачи я не вижу разницы между классом типов и интерфейсом, короме технической.
Roman
У всех этих абстракций есть изначально какая-то логическая функция. Но их часто используют не потому, что эта логическая нагрузка применима в данном сценарии, а по техническим соображениям, пушто так проще грубо говоря
Vasily
На большом массиве кода
Vasily
КОторый надо анализировать и трансформировать
Vasily
И вроде с технической точки зрения все ок, но логически попадаешь в ловушку
Vasily
Кароч
Vasily
Поныряй в энтерпрайз лет несколько
Roman
это не только эстетические чувства задевает) От несоответствия логической нагрузки и технической реализации постоянно возникают проблемы даже серьезнее чтения кода
Roman
отличие чего от ситуации с классами?
gsomix
Ситуации с интерфейсом.
Vasily
В чем отличие от ситуации с классами типов?
В том, что данная "группировка" вынесена в отдельную сущность
Vasily
typeclass
Roman
Ситуации с интерфейсом.
когда есть интерфейс, по умолчанию думаешь, что он что-то значит. Что есть такая сущность в бизнес логике
gsomix
Какие сущности? 🙃
Vasily
Нет, конечно, я думаю, что эта штука описывает какое-то поведение.
Ну есть подход академический, есть практический
gsomix
Сущности у меня в рекордах и DU.
Vasily
Как там было про отличие выпускника ПТУ от выпускника университета
Roman
Когда выясняется, что это просто искусственно собраная вместе пачка методов потому что васе так было надо, обычно уже потрачено пару часов на то, чтобы понять че к чему
Roman
Нет, конечно, я думаю, что эта штука описывает какое-то поведение.
в блядском ооп интерфейсами и абстрактными классами измазано абсолютно все
Vasily
Выпускник университета знает, как устроен телевизор, но не может его починить, а выпускник ПТУ не знает, как устроен телевизор, но может его починить
gsomix
в блядском ооп интерфейсами и абстрактными классами измазано абсолютно все
Меня слабо волнует, что в том плохом ООП, с которым вы работаете.
Vasily
Почему нельзя собрать в кучку пачку методов в рамках тайп класса?
Наверное потому, что это в том же c# не оддерживается
x
Marker interfaces aren’t actually interfaces. At least, they aren’t according to the common definition and understanding of the term: An interface is defined as a syntactical contract that all the classes [implementing] the interface should follow. The interface defines the ‘what’ part of the syntactical contract and the deriving classes define the ‘how’ part of the syntactical contract. An interface defines a contract between implementers and consumers — except a marker interface, because a marker interface defines nothing but itself. So, right out of the gate, the marker interface fails at the basic purpose of being an interface.
Vasily
Я про другое.
Разверни суждение
gsomix
@atsapura опять приводит примеры говнокода, когда кто-то собрал непонятно что в интерфейсе. Но я и в языке с классами типов так могу делать.
Roman
Меня слабо волнует, что в том плохом ООП, с которым вы работаете.
тогда о чем мы вообще говорим? О том, как надо делать академически или как надо делать в реальной жизни, как надо делать в C# или в F# или че к чему?
gsomix
Вы чего к ней прикопались.
Roman
я теряю нить разговора
gsomix
Я просто прошу объяснить нормально, без аппеляции в вашему печальному опыту.
Roman
почему опытом нельзя пользоваться?
gsomix
Потому что у вас это "плохой продакшн на C#" и "хорошие петы на F#".
gsomix
Лучше что-нибудь объективное.
Roman
Потому что у вас это "плохой продакшн на C#" и "хорошие петы на F#".
речь не про плохой продакшн, а про золотой стандарт продакшн ооп
gsomix
Сами же говорите, что в ООП все неясно.
Roman
Есть набор устоявшихся практик
Roman
Золотым я его конечно не считаю. Но так "считается делать правильно" сейчас
Roman
То есть это то, что опытные программисты (правда, без знания ФП) считают "как надо делать".
gsomix
И как же?
gsomix
Какая у тебя выборка?
Roman
сейчас у меня 10 место работы, кажется
Vasily
Кароч
Roman
или 11
Roman
на некоторых работах более чем на 1 проекте работал
Vasily
Через n мест работы понимаешь
Vasily
Что код отличается двумя вещами
Roman
Так что выборка выше среднего, я думаю
Vasily
1. Формой лопаты 2. Сортами говна
Vasily
Ну и практиками логистики этого всего по окрестным полям
Roman
Я вот для себя понял, что нарушение строгости абстракций и условное натягивание совы на глобус на длинной дистанции всегда плохо оборачивается
Roman
Неизбежно возникают разного сорта неудобства, иногда очень тяжелые для бизнеса
gsomix
@atsapura @vshapenko Мне кажется, у нас серьезные культурные различия. Меня интересует логическая аргументация, почему интерфейсы — это плохо. Вы же мне зачем-то рассказываете про то, какой плохой код у вас в продакшене, как интерфейсы становятся бизнес-сущностями, есть золотой стандарт ООП... И предлагаете (зачем?) мне самому окунуться в это дерьмо. :) // зачееем? В свою очередь я для себя отмечаю, что интерфейсы — это: - нормальный способ делать органичения на поведение (в языках, где нет других возможностей) - нормальный путь нормализации типов - возможность делать расширяемые множества значений (в языках, где этого нет)
Vasily
Дык я ж с аргументацией не спорю
Vasily
Все верно говоришь
Vasily
А различия в том, как это на практике применяется обычно
gsomix
А различия в том, как это на практике применяется обычно
При этом, я боюсь, что вы с @atsapura не сможете мне рассказать, как на практике поведет себя SRTP и какой золотой стандарт ФП кода на F#. Поэтому, пожалуйста, давайте конструктивно общаться.
gsomix
В любом языке можно абузить фичи и неправильно их использовать.
Roman
шта
Vasily
Ну тут как та история про массажер для шеи
Vasily
КОторый на самом деле используют по-другому
Roman
бля я вообще не понимаю о чем спор. Я не говорю, что все интерфейсы надо выжечь каленым железом и оставить только SRTP на этом пепелище. Я всего лишь утверждал, что во многих случаях интерфейсы применяют за неимением горничной, тогда как сртп (или тайп классы) были бы уместней
Roman
но меня запарило воду в ступе толочь че-то
gsomix
И все такое.
Roman
мне че-то тяжело с тобой разговаривать. Создается впечатление, что ты хочешь срач ради срача или что я чем-то тебя раздражаю
gsomix
Нет, я просто не люблю, когда мне начинают затирать истории про свой продакшн на C#. 🙃 Ну, типа норм общались, чего вы начинаете?
gsomix
В F# тоже есть интерфейсы.