Size: a a a

2020 June 07

VS

Vladimir Smirnov in Go-go!
Daniel Podolsky
среди кого?!
Среди простых людей. Почитай про неосознанные предвзятости.
источник

S

Sergey in Go-go!
Anton Kucherov
Да, но контекст там есть вполне конкретный. Вот он. Поэтому Storager, и прочие -er подставленные к существительному - это бред. И Effective Go этому не оправдание
std.Stringer порицаете?
источник

Н

Никита in Go-go!
IStorage и подобное выглядит проще и не требует упражняться в языковой адаптации
источник

VL

V L in Go-go!
Никита
IStorage и подобное выглядит проще и не требует упражняться в языковой адаптации
Как выше заметили, рекомендация er'ить приводит к однометодовым интерфейсам. Если делать IStorage и прочее, то появляется соблазн игнорировать interface segregation principle
источник

AK

Anton Kucherov in Go-go!
Sergey
std.Stringer порицаете?
В Английском есть глагол to string так что нет. Тут скорее игра слов. Я скорее призываю руководствоваться здравым смыслом и копать вглубь, прежде чем делать однозначные выводы.
источник

S

Sergey in Go-go!
Anton Kucherov
В Английском есть глагол to string так что нет. Тут скорее игра слов. Я скорее призываю руководствоваться здравым смыслом и копать вглубь, прежде чем делать однозначные выводы.
Но к глаголу to string "нанизывать" интерфейс явно ничего не имеет, а имеет к существительному строка
источник

Н

Никита in Go-go!
V L
Как выше заметили, рекомендация er'ить приводит к однометодовым интерфейсам. Если делать IStorage и прочее, то появляется соблазн игнорировать interface segregation principle
Ну а много ли у нас классов, которые, в случае если это БД, будут реализовывать интерфейс Storage?
источник

VL

V L in Go-go!
Никита
Ну а много ли у нас классов, которые, в случае если это БД, будут реализовывать интерфейс Storage?
Если у вас один класс, то вам и интерфейсы не нужны. А если говорить про ваш обобщенный Storage, то почитайте про ISP.
источник

Н

Никита in Go-go!
V L
Если у вас один класс, то вам и интерфейсы не нужны. А если говорить про ваш обобщенный Storage, то почитайте про ISP.
К сожалению, нужен для тестирования
источник

VL

V L in Go-go!
Никита
К сожалению, нужен для тестирования
К счастью.
источник

AK

Anton Kucherov in Go-go!
Sergey
Но к глаголу to string "нанизывать" интерфейс явно ничего не имеет, а имеет к существительному строка
Хорошо, предположим это переводится как "Строкер". Означает ли это, что везде нужно добавлять -er? Я считаю что нет. Я не знаю, почему авторы использовали слово Stringer здесь. Оно и само по себе существует в разных значениях. Но опять таки, я за здравый смысл а не за слепое следование правилам. И да, меня лично "Строкер" коробит слегка.
источник

AK

Anton Kucherov in Go-go!
Но Хранилищатель или Сохранятель коробит куда больше.
источник

VL

V L in Go-go!
Anton Kucherov
Хорошо, предположим это переводится как "Строкер". Означает ли это, что везде нужно добавлять -er? Я считаю что нет. Я не знаю, почему авторы использовали слово Stringer здесь. Оно и само по себе существует в разных значениях. Но опять таки, я за здравый смысл а не за слепое следование правилам. И да, меня лично "Строкер" коробит слегка.
скорее всего потому, что слово string уже является ключевым 🙂
источник

AK

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

Н

Никита in Go-go!
V L
Если у вас один класс, то вам и интерфейсы не нужны. А если говорить про ваш обобщенный Storage, то почитайте про ISP.
Вы на каждый юзкейс объявляете свой интерфейс к бд?
источник

DP

Daniel Podolsky in Go-go!
Никита
Вы на каждый юзкейс объявляете свой интерфейс к бд?
я в последнее время так делаю, да
источник

VL

V L in Go-go!
Никита
Вы на каждый юзкейс объявляете свой интерфейс к бд?
На каждый метод работы с хранилищем, да. Так гораздо проще мокать.
источник

Н

Никита in Go-go!
Daniel Podolsky
я в последнее время так делаю, да
Если сигнатура метода меняется, и метод используется много где, вам же прийдется везде ее менять
источник

VL

V L in Go-go!
Никита
Если сигнатура метода меняется, и метод используется много где, вам же прийдется везде ее менять
Сигнатура не должна меняться, т.к. интерфейс определяет потребитель. Но если изменится хранилище - придется написать адаптер.
источник

Н

Никита in Go-go!
V L
Сигнатура не должна меняться, т.к. интерфейс определяет потребитель. Но если изменится хранилище - придется написать адаптер.
Почему не должна? Раньше у вас метод для получения пользователя принимал такие параметры, теперь следующие. И этот метод используется повсеместно
источник