Size: a a a

2020 May 18

RS

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

AR

Aleksandr Razumov in Go-go!
type Animal interface {
   MakeNoise()
   Species() string
   Speed() int
}
источник

AK

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

DP

Daniel Podolsky in Go-go!
MakeNoise()  - это прям классика омерзительности

куда он этот шум делает? если ничего не принял и не вернул
источник

DP

Daniel Podolsky in Go-go!
и это же классика ООП - где-то в объекте вписано, куда именно он нойзит. ненавижу
источник

AR

Aleksandr Razumov in Go-go!
Ну да, это очень странный интерфейс получился
источник

AR

Aleksandr Razumov in Go-go!
А вообще у меня было что-то вроде
type Task interface {
   Execute() error
}
источник

@

@mr_tron in Go-go!
Aleksandr Razumov
А вообще у меня было что-то вроде
type Task interface {
   Execute() error
}
ну сюда скорее всего через замыкания передают значения
источник

AR

Aleksandr Razumov in Go-go!
Ну или Run, например. Называть это Runner-очень странно.
источник

RS

Roman Sharkov in Go-go!
ИМХО вносить исключения из английского языка в ЯП это так себе идея. Английский это довольно плохой по структуре язык который формируется по сей день в ходе натуральной эволюции.

Go это не натуральный язык, он искуственный. Следственно, ИМХО, не нужно привязывать его к тому исключению, что некоторые акторы заканчиваются на or а некоторые на er. Т.е. прагматичнее было бы для акторов использовать er

Acter
Visiter


но это конечно тема мега-спорная
источник

AR

Aleksandr Razumov in Go-go!
Roman Sharkov
ИМХО вносить исключения из английского языка в ЯП это так себе идея. Английский это довольно плохой по структуре язык который формируется по сей день в ходе натуральной эволюции.

Go это не натуральный язык, он искуственный. Следственно, ИМХО, не нужно привязывать его к тому исключению, что некоторые акторы заканчиваются на or а некоторые на er. Т.е. прагматичнее было бы для акторов использовать er

Acter
Visiter


но это конечно тема мега-спорная
> Go это не натуральный язык, он искуственный. Следственно, ИМХО, не нужно привязывать его к тому исключению, что некоторые акторы заканчиваются на or а некоторые на er. Т.е. прагматичнее было бы для акторов использовать er

7
лет назад решили, что нет, не неужно ломать английский
источник

AR

Aleksandr Razumov in Go-go!
Роб Пайк лично, лол
источник

RS

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

DP

Daniel Podolsky in Go-go!
бернард шоу на эту тему высказался исчерпывающе когда-то.

но шоу умер, а английский все еще английский
источник

DP

Daniel Podolsky in Go-go!
Roman Sharkov
я смотрю на это иначе, я лично вижу в идеоматичности согласованность. А согласованность (consistency) очень важное свойство кода, упрощающее его чтение
идеоматичность - это не согласованность

идеоматичность - это очевидность через привычность
источник

AR

Aleksandr Razumov in Go-go!
Roman Sharkov
я смотрю на это иначе, я лично вижу в идеоматичности согласованность. А согласованность (consistency) очень важное свойство кода, упрощающее его чтение
Еще бывает согласованность с английским языком
И когда мозг видит что-то, что больше напоминает опечатку, он за неё зацепляется
источник

AR

Aleksandr Razumov in Go-go!
Я вот стараюсь писать так, чтобы быть консистентым со стандартной библиотекой.
И Acter с Coder туда бы не приняли, а Actor и Codec - вполне.
источник

RS

Roman Sharkov in Go-go!
Aleksandr Razumov
type Animal interface {
   MakeNoise()
   Species() string
   Speed() int
}
type NoiseGenerator interface {
 MakeNoise(io.Writer) error
}

type SpeciesSpecifier interface {
 Species() string
}

type SpeedReporter interface {
 Speed() int
}

type AnimalController interface {
 NoiseGenerator
 SpeciesSpecifier
 SpeedReporter
}


😅
идеоматично? наверное да.
прагматично? наверное нет.
источник

DP

Daniel Podolsky in Go-go!
codec - это не coder, это COder-DECoder
источник

AR

Aleksandr Razumov in Go-go!
Daniel Podolsky
codec - это не coder, это COder-DECoder
Да, это в контексте обсуждения имени для интерфейса, который обе вещи делает
источник