Size: a a a

2020 May 18

AK

Anton Kucherov in Go-go!
Roman Sharkov
сущность ИМХО это в первую очередь про данные, не про функционал
In computer science, an abstract data type (ADT) is a mathematical model for data types. An abstract data type is defined by its behavior (semantics) from the point of view of a user, of the data, specifically in terms of possible values, possible operations on data of this type, and the behavior of these operations.
источник

RS

Roman Sharkov in Go-go!
Anton Kucherov
In computer science, an abstract data type (ADT) is a mathematical model for data types. An abstract data type is defined by its behavior (semantics) from the point of view of a user, of the data, specifically in terms of possible values, possible operations on data of this type, and the behavior of these operations.
тут не про сущность/актор, тут про типы
источник

AK

Anton Kucherov in Go-go!
Я в net.Conn узнаю именно абстрактный тип данных.
источник

RS

Roman Sharkov in Go-go!
Anton Kucherov
Я в net.Conn узнаю именно абстрактный тип данных.
я не спорю с тем что это абстрактный тип 🙂
мне лишь сложно назвать интерфейс абстрактной сущностью
источник

RS

Roman Sharkov in Go-go!
т.е.
struct = сущность (конкретный тип)
interface = актор (абстрактный тип)
источник

RS

Roman Sharkov in Go-go!
в GraphQL например, интерфейс это именно абстрактная сущность, поскольку там интерфейсы являются набором полей, которыми должны типы обладать
источник

AK

Anton Kucherov in Go-go!
Тут я не совсем понимаю значение actor если честно, можете дать определение и контекст?? Потому что в случае с ADT, несмотря на то что это теоретическая концепция и напрямую она не ложится на фичи языка программирования, она в некоторых языках реализована с помощью protocols которые в других языках называются interfaces. А вот как actor связан с interface я не очень понимаю.
источник

AK

Anton Kucherov in Go-go!
Когда я слышу actor  я сразу думаю о вот этом контексте: https://en.wikipedia.org/wiki/Actor_model и тут не понятно как эти вещи пересекаются...😕
источник

RS

Roman Sharkov in Go-go!
Anton Kucherov
Тут я не совсем понимаю значение actor если честно, можете дать определение и контекст?? Потому что в случае с ADT, несмотря на то что это теоретическая концепция и напрямую она не ложится на фичи языка программирования, она в некоторых языках реализована с помощью protocols которые в других языках называются interfaces. А вот как actor связан с interface я не очень понимаю.
интерфейс лишь диспачит вызовы методов на конкретные объекты. Т.е. сам по себе он не сущность, он лишь динамический диспетчер.

тот факт что интерфейс можно cast’нуть в конкрентый тип это единственное что технически позволяет нам использовать его в качестве абстрактной сущности. Но вот ИМХО для того чтобы носить эдакое звание, он должен предоставлять прямой доступ к данным которые свойственны этой абстракции (как в примере ниже), чего он, разумеется, не делает.

type Person interface {
 Name string

 Walk(distance int)
}
источник

RS

Roman Sharkov in Go-go!
однако, стоит так-же добавить что Go это в первую очередь про прагматичность.
net.ConnHandler это идеоматично
net.Conn это прагматично
источник

DP

Daniel Podolsky in Go-go!
не уверен, что handler прямо такое удачное слово. я бы предложил descriptor
источник

DP

Daniel Podolsky in Go-go!
(хорошо, что нас не спросили)
источник

RS

Roman Sharkov in Go-go!
Daniel Podolsky
не уверен, что handler прямо такое удачное слово. я бы предложил descriptor
Descripter 😅
источник

RS

Roman Sharkov in Go-go!
однако если подумать, Descriptor от слова Describe, т.е. описывать

а так то net.Conn не просто описывает соединение, он им управляет
источник

AT

Anton Terisback in Go-go!
Controller?
источник

RS

Roman Sharkov in Go-go!
Anton Terisback
Controller?
лучше
источник

RS

Roman Sharkov in Go-go!
Aleksandr Razumov
Еще есть идиоматичный пример: image.Image
https://golang.org/pkg/image/#Image

вот image.Image был бы хорошим кандидатом для image.ImageDescripter, ибо весь им указанный функционал лишь предоставляет информацию о неком изображении, т.е. описывает картинку
источник

RS

Roman Sharkov in Go-go!
what does the interface do? it describes an image
источник

AR

Aleksandr Razumov in Go-go!
Нет такого слова Descripter
источник

DP

Daniel Podolsky in Go-go!
Roman Sharkov
однако если подумать, Descriptor от слова Describe, т.е. описывать

а так то net.Conn не просто описывает соединение, он им управляет
file descriptor, brother
источник