Size: a a a

Programming Offtop

2020 May 26

I

Ilmir in Programming Offtop
Хотя казалось бы, EP - это про простоту добавления нового столбца или строки в матрицу Типы X Операции.
источник

I

Ilmir in Programming Offtop
И (T : Has)-based программирование усугубляет эту проблему. Если надо добавить новый тип, надо просмотреть все операции, и добавить этот капабилити к ним. Как это назвали решением EP я не понимаю. Хотя я также не понимаю, как визиторы - это решение ЕР в ООП языках, я ПМ - нет.
источник

I

Ilmir in Programming Offtop
А по поводу SRP я готов говорить только после определения, что же такое responsibility. До введения этого определения все сводится к вкусовщине.
источник

(

( in Programming Offtop
Ilmir
Хотя есть куча других решений Expression Problem, и в ООП с его визиторами и в (T : Has)-based программировании предпочитают их игнорировать.
какие например?
источник

(

( in Programming Offtop
Ilmir
И (T : Has)-based программирование усугубляет эту проблему. Если надо добавить новый тип, надо просмотреть все операции, и добавить этот капабилити к ним. Как это назвали решением EP я не понимаю. Хотя я также не понимаю, как визиторы - это решение ЕР в ООП языках, я ПМ - нет.
зачем при добавлении нового типа просматривать все операции?
источник

I

Ilmir in Programming Offtop
(
какие например?
Например, ПМ вместо визиторов.
источник

(

( in Programming Offtop
паттерн матчинг?
источник

I

Ilmir in Programming Offtop
Ага
источник

I

Ilmir in Programming Offtop
(
зачем при добавлении нового типа просматривать все операции?
Чтобы не копипастить код этих операций для нового типа.
источник

(

( in Programming Offtop
Ilmir
Чтобы не копипастить код этих операций для нового типа.
Зачем его копипастить?
источник

(

( in Programming Offtop
Там, на секундочку, не HasSomething, а Has Something, Has это маркер контекста, не конкретный интерфейс/тайпкласс
источник

I

Ilmir in Programming Offtop
(
Там, на секундочку, не HasSomething, а Has Something, Has это маркер контекста, не конкретный интерфейс/тайпкласс
То есть, это что-то типа
fun foo<T>(t: T) where T has method size

?
источник

I

Ilmir in Programming Offtop
И при этом не надо определять interface Sizeable?
источник

(

( in Programming Offtop
Ilmir
То есть, это что-то типа
fun foo<T>(t: T) where T has method size

?
Скорее where T : Has Size
источник

(

( in Programming Offtop
Но это не структурная типизация, в контекст все равно что-то этого типа нужно положить
источник

I

Ilmir in Programming Offtop
В чём тогда отличие от структурной типизации. Кстати, против структурной типизации я ничего не имею. Это, имхо, наименьшее из зол, если говорить о решении ЕР. Добавление метода в тип автоматически заполняет строку (впрочем, как и наследование интерфейса).
источник

I

Ilmir in Programming Offtop
И что в дангном случае контекст?
источник

VP

Vladimir Petrakovich in Programming Offtop
(
SRP, Expression Problem
Это же скорее Interface Segregation. Когда что-то и HasFoo, и HasBar, и HasBaz - это не похоже на SRP, скорее наоборот.
источник

(

( in Programming Offtop
Vladimir Petrakovich
Это же скорее Interface Segregation. Когда что-то и HasFoo, и HasBar, и HasBaz - это не похоже на SRP, скорее наоборот.
Ну так буквы в солиде все равно пересекаются и друг друга решают
источник

(

( in Programming Offtop
Но вообще да, скорее Interface Segregation
источник