небольшая дискуссия по поводу того, как правильно использовать интерфейсы в го
Я вот думал на эту тему вчера, т.к мне не удалось найти никаких примеров нормальных в гугле, решил накидать свою реализацию на плэйграунде:
#1. https://play.golang.org/p/oZpIqrrTBms
Вот примерно вариант который я юзаю (ссылаясь на туторы где говорили о том что это чистая архитектура/DDD). Но в чате говорят что это ненужная парадигма из других языков, в го пишут иначе
#2. Исходя из ответов я попытался представить себе как это будет го вэй, но повторюсь, т.к туторов не нашел, я это с головы сделал: https://play.golang.org/p/OKR3skLsAqP
Мой вопрос в том, правильно ли я понимаю что писать нужно в стиле из второго примера? Он вообще похож на правду, или я все таки абсолютно неверно интерпретировал вчерашние советы по поводу интерфейсов? Спасибо)
мое сообщение слегка потерялось в треде, поэтому сделаю бамп. @onokonem соответствует ли теперь второй вариант реализации вашему сообщению: https://t.me/gogolang/602937?)
интерфейс описывается там, где ты собираешься использовать его, а не там, где он реализуется. это если кратко
интерфейс в любом случае или на стороне использования, или в отдельном пакете протокол - или на строне сервера, или в отдельном пакете
спасибо, теперь становится понятнее. Но появился новый вопрос, в каком случае тогда уместно использовать протоколы?)
в моем представлении протокол это когда я кодогенерацией сделал его из структуры протобафа, например или сгенерил моку для интерфейса. Эти примеры же можно назвать протоколом, верно?
Обсуждают сегодня