Size: a a a

2021 August 29

СА

Сергей Аксёнов... in ctodailychat
JetBrains напишет
источник

E

Eugene in ctodailychat
да, бойлерплейт сделает
но нужно будет поправить return значения
источник

E

Eugene in ctodailychat
но в тестах я бы просто мокал сервис, без дамми
источник

IV

Igor V in ctodailychat
Тут тоже так. Просто это не моки, а пустая реализация интерфейса
источник

IV

Igor V in ctodailychat
в го кодогенерация это наше все
источник

E

Eugene in ctodailychat
если я правильно понял, в го можно сделать пустые реализации, в php надо все прописывать

я ток не до конца понял, как тогда передавать инстанс какого-то типа, если метод может не существовать, тогда что такое интерфейс в данном контексте?

мы же говорим про контракты(интерфейсы)
источник

E

Eugene in ctodailychat
или это просто магия го? под капотом методы есть?
источник

СА

Сергей Аксёнов... in ctodailychat
В го у каждого типа есть дефолтное значение. Кодгенератор вернёт его.
источник

E

Eugene in ctodailychat
til

спс, копну инфо
источник

IV

Igor V in ctodailychat
в го structural typing, поэтому ты отдельно определяешь интерфейс

type Cache inteface {
  put(…)
  get(..)
}

а потом можешь определять структуру и реализовать методы put/get и с точки зрения это будет полная реализация интерфейса Cache. Тебе не нужно это явно указывать как в php:  class DummyCache implements Cache
источник

IV

Igor V in ctodailychat
type DummyCache struct{}
func (c *Cache) get(…) {}
func (c *Cache) put(…) {}
это уже реализация интерфейса
источник

IV

Igor V in ctodailychat
в го не приветствуются широкие интерфейсы, обычно 1-2 метода, поэтому реализовать пустышку не составляет труда
источник

E

Eugene in ctodailychat
мне как php чел, первые скобки непонятны)
* это не указатель, а вайлдкард или типо индикатор, что тут будет имплементация конкретного метода из интерфейса?

я могу написать без *?
источник

E

Eugene in ctodailychat
понял
источник

IV

Igor V in ctodailychat
https://gobyexample.com/ - если сегодня начнешь, то через пару часов уже сможешь читать код, а к вечеру и писать.
источник

E

Eugene in ctodailychat
пройду. спасибо
Я смотрел пару видосов just for func, но потом забил как-то
источник

AS

Alexey Shcherbak in ctodailychat
это вроде как раз указатель. По первому параметру методы собираются в некие группы - примерно как - какому классу метод принадлежит ( просто классических классов вроде нету)... Хотя "я не сварщик", могу нести хрень про го
источник

IV

Igor V in ctodailychat
или начни с этого. это еще проще - https://tour.golang.org/welcome/1
источник

E

Eugene in ctodailychat
я добавил обе ссылки. тур по го я тоже начинал, но ща по работе надо скалу выучить, поэтому го пока будет в стеке)
источник

IV

Igor V in ctodailychat
ты же понимаешь что скалу можно учить вечно?
источник