Size: a a a

2020 June 07

VL

V L in Go-go!
Anton Kucherov
Предпосылка о том, что:
- Если у нас есть одна реализация, абстракция не нужна и является преджевременной, на мой взгляд в корне не верна.
YAGNI
источник

МП

Мимо Проходящий... in Go-go!
Anton Kucherov
Да одни и те же идеи и в Go и в Java интерфейс задает "Контракт API". Только в Java отличается реализация и поэтому надо явно говорить компилятору что тот или иной класс реализует этот контракт. А Go  сам способен догадаться.
И это киллер фича го. Прописывать реализации интерфейсов джава - ужас ужасный. В принципе этого достаточно чтобы перейти на го
источник

AK

Anton Kucherov in Go-go!
V L
YAGNI
Ну это же мне как разработчику решать, разве нет? Или вы слепо следуете YAGNI и упаси боже DRY.
источник

S

Sergey in Go-go!
Мне кажется такое осторожное отношение к гошным интерфейсам как раз выдаёт java разработчиков или близких к ним) интерфейсы в го прекрасны, по-моему
источник

VL

V L in Go-go!
Anton Kucherov
Ну это же мне как разработчику решать, разве нет? Или вы слепо следуете YAGNI и упаси боже DRY.
В любом случае решать Вам как разработчику. Мы говорим про рекомендации и причины их появления.
источник

AK

Anton Kucherov in Go-go!
Sergey
Мне кажется такое осторожное отношение к гошным интерфейсам как раз выдаёт java разработчиков или близких к ним) интерфейсы в го прекрасны, по-моему
Вот и по моему они прекрасны и являются киллер фичей, и уходят корнями к "правильному" ООП. И глупо их избегать
источник

s

snip in Go-go!
Anton Kucherov
Вот и по моему они прекрасны и являются киллер фичей, и уходят корнями к "правильному" ООП. И глупо их избегать
и они не такие как в джава)
источник

AK

Anton Kucherov in Go-go!
V L
В любом случае решать Вам как разработчику. Мы говорим про рекомендации и причины их появления.
Эти рекомендации часто возводят в абсолют как правло. Вот в чем проблема. Я это встречаю регулярно. Аргумент сводится к тому что: Потому что у нас так не принято.
источник

AS

Alexandr Sokolov in Go-go!
Sergey
Мне кажется такое осторожное отношение к гошным интерфейсам как раз выдаёт java разработчиков или близких к ним) интерфейсы в го прекрасны, по-моему
Идея да, а вот реализация вызывает вопросы. Zero cost abstractions за бортом. Преобразование в интерфейс — аллокация. Боже упаси преобразование []concretType в []interfaceType. Никакого ни синтаксического сахара, ни встроенных возможностей

Именно поэтому так жду контрактов
источник

VL

V L in Go-go!
Anton Kucherov
Эти рекомендации часто возводят в абсолют как правло. Вот в чем проблема. Я это встречаю регулярно. Аргумент сводится к тому что: Потому что у нас так не принято.
В целом это хорошее thumb-правило. Для ознакомления с аргументами всегда можно погуглить
accept interfaces return structs
источник

AK

Anton Kucherov in Go-go!
snip
и они не такие как в джава)
Да, они те такие как в Java, создатели Go работая над ООП моделью вдохновлялись SmallTalk, и они молодцы в этом плане.
источник

s

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

VL

V L in Go-go!
Anton Kucherov
Эти рекомендации часто возводят в абсолют как правло. Вот в чем проблема. Я это встречаю регулярно. Аргумент сводится к тому что: Потому что у нас так не принято.
источник

VL

V L in Go-go!
Это рекомендации языка, их никто не форсит, как и тот же code style, но очень рекомендуется придерживаться.
источник

НМ

Никита Меркулов... in Go-go!
я просто уточнить - срач начался вроде по поводу фабрик?
источник

VL

V L in Go-go!
Никита Меркулов
я просто уточнить - срач начался вроде по поводу фабрик?
Срача нет, иначе бы я в нем не участвовал. Все-таки достаточно интересное и аргументированное обсуждение.
источник

AK

Anton Kucherov in Go-go!
Тут есть четкие примеры и четкие объяснения, когда и почему следует избегать возврата интефрейсов и их создания. Я с этими тезисами абсолютно согласен.
источник

AK

Anton Kucherov in Go-go!
Но меня триггерит когда люди не разобравшись в контексте тыкают других людей о том, что они вернули интерфейс. Или просто тыкают в эту рекомендацию в отрыве от контекста, потому что им не нравится ваша абстракция. Оправдывая это тем, что "у нас так принято"
источник

AK

Anton Kucherov in Go-go!
Это как с -er в интерфейсах Storager, NonSenser и прочая дичь.
источник

VL

V L in Go-go!
Это относится к любым техническим обсуждениям. Если аргументы сводятся к "мне не нравятся/так не принято", то это не аргументы.
источник