Size: a a a

2020 May 18

AR

Aleksandr Razumov in Go-go!
Ilya Shikhaleev
@antonikucherov вы тут много понаписали, по интерфейсам к чему пришли? Только действия типа «do something”er или все же интерфейсы для доступа к данным все же признали? :)
В го стдлиб Acter не примут, можно было бы на этом и закончить
источник

RS

Roman Sharkov in Go-go!
интефейс, ИМХО, не сущность, и прежде чем создавать интерфейс состоящий из Getter’ов полей, стоит задуматься над общим дизайном и подвергнуть его критике.
источник

AK

Anton Kucherov in Go-go!
Aleksandr Razumov
В го стдлиб Acter не примут, можно было бы на этом и закончить
Наверное, но для меня например go stdlib это не библия и не эталон. 🙂 Как в общем и Effective Go, которому я конечно же стараюсь следовать, но тем не менее.
источник

а

а кто это in Go-go!
Roman Sharkov
интефейс, ИМХО, не сущность, и прежде чем создавать интерфейс состоящий из Getter’ов полей, стоит задуматься над общим дизайном и подвергнуть его критике.
такие интерфейсы появляются из-за того что по-другому в Go низя
источник

а

а кто это in Go-go!
выше был ast.Node как пример
источник

RS

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

AR

Aleksandr Razumov in Go-go!
нужно ориентироваться на реальный мир, а не на идеальную модель, которая только у себя в голове
источник

а

а кто это in Go-go!
по-хорошему это должно быть перечисление
источник

IS

Ilya Shikhaleev in Go-go!
Roman Sharkov
интефейс, ИМХО, не сущность, и прежде чем создавать интерфейс состоящий из Getter’ов полей, стоит задуматься над общим дизайном и подвергнуть его критике.
А как тогда на уровне инфраструктурного данные доменные получать верно по вашему мнению?
источник

RS

Roman Sharkov in Go-go!
а кто это
выше был ast.Node как пример
да, хороший пример. Спонтанно я не могу придумать название лучше, поэтому прагматичности ради оставляем как есть. Но это не значит, что более идеоматичного подхода не существует. В том же примере выше с Audio, Video был жуткий косяк автора
источник

AK

Anton Kucherov in Go-go!
Вот я не увидил вообще косяка в примере с Аудио и Видео, хоть убейте. Очень легко читается и воспринимается, не вводя в заблуждение при этом. 😕
источник

RS

Roman Sharkov in Go-go!
Anton Kucherov
Вот я не увидил вообще косяка в примере с Аудио и Видео, хоть убейте. Очень легко читается и воспринимается, не вводя в заблуждение при этом. 😕
аудио поток, который создаёт поток?)))

аудио поток должен был embedd’ить io.ReadCloser, потому-что он уже потребитель потока
источник
2020 May 19

IS

Ilya Shikhaleev in Go-go!
А вообще - все подходы же не абсолютны и нужно идти на компромиссы постоянно :) каждый проект в зависимости от требований архитектуры имеет свой набор компромиссов :)
источник

AR

Aleksandr Razumov in Go-go!
type Value interface {
 String() string
 Set(string) error
}
источник

AR

Aleksandr Razumov in Go-go!
Roman Sharkov
аудио поток, который создаёт поток?)))

аудио поток должен был embedd’ить io.ReadCloser, потому-что он уже потребитель потока
Аудио, который создаёт инстансы своих аудио потоков, да
источник

а

а кто это in Go-go!
ну вообще получается что Streamable стримит сам себя
источник

RS

Roman Sharkov in Go-go!
type AudioStreamer interface = актор, потребитель потока, он читает, абстрактный тип
type AudioFile struct = источник, сущность, он является аудио записью, конкретный тип
источник

AK

Anton Kucherov in Go-go!
Roman Sharkov
аудио поток, который создаёт поток?)))

аудио поток должен был embedd’ить io.ReadCloser, потому-что он уже потребитель потока
Там не было абстракции аудиопоток. Там была абстракция "Аудио" и "Видео". Которая помимо предоставления потокового чтения еще и другое поведение имеет. Это уже вы переопределили абстракцию и решили что это должно называться поток. Но в примере автор достаточно четко оброзначил что этот интерфейс означает. Поэтому я не вижу там проблем. Я вижу там именно то что имел ввиду автор. И у нас бы с ним даже споров не возникло на этой почве. Он все четко описал а я могу использовать это даже не заглядывая в реализацию
источник

AR

Aleksandr Razumov in Go-go!
А context.Context как назвать? :D
источник

RS

Roman Sharkov in Go-go!
Ilya Shikhaleev
А вообще - все подходы же не абсолютны и нужно идти на компромиссы постоянно :) каждый проект в зависимости от требований архитектуры имеет свой набор компромиссов :)
просто бывают плохие компромиссы и менее плохие
источник