Size: a a a

2020 May 13

VM

Vladislav Milenin in Go-go!
Eduard Korolev
мне не нравится документация го, это не документация, а просто набор методов, я и в коде могу это сам посмотреть. Почему нет норм примеров, как какой-нить кусок либы использовать. На примере тоже BeginTx взять создать контекст с таймаутом и передать его в функцию и сразу станет понятно как ее использовать. А так в документации просто написано:
func (*DB) BeginTx

func (s *DB) BeginTx(ctx context.Context, opts *sql.TxOptions) *DB

BeginTx begins a transaction with options
а откуда брать TxOptions, какие у него параметры указывать, не понятно
Если не мазаться гормом, то можно обнаружить в исходниках примеры. Посмотрите например на gorilla ws, папки с примерами часто встречаю

И вообще, в большинстве либ есть тесты - по ним легко понять что и как, дока гошная уже накрайняк
источник

RF

Roman Fedyashov in Go-go!
Eduard Korolev
меня одного это смущает? это тупо swagger получается какой-то. А документация должна представлять из себя набор статей с how to
После С++ некоторое время ломает культура документации, но потом, вроде, привыкаешь
источник

AK

Anton Kucherov in Go-go!
Vladislav Milenin
Если не мазаться гормом, то можно обнаружить в исходниках примеры. Посмотрите например на gorilla ws, папки с примерами часто встречаю

И вообще, в большинстве либ есть тесты - по ним легко понять что и как, дока гошная уже накрайняк
Когда ныряние в исходники каждый раз когда надо понять как пользоваться инструментом стало хорошей практикой? Мне всегда казалось - отсутсвие нормальной документации, признак низкой инженерной культуры. Я понимаю почему в Go так сложилось, но не могу понять, когда это стало хорошо. Одно дело когда я лезу в исходники чтобы понять, как оно работает, чтобы потом сделать что-то свое, другое дело когда туда надо лезть чтобы понять как этим пользоваться. Не говоря уже о том, что ни тесты ни код никогда не ответят на вопрос: "Почему? Что послужило причиной такого  решения?"
источник

ЛА

Локоть Анатолий... in Go-go!
Eduard Korolev
мне не нравится документация го, это не документация, а просто набор методов, я и в коде могу это сам посмотреть. Почему нет норм примеров, как какой-нить кусок либы использовать. На примере тоже BeginTx взять создать контекст с таймаутом и передать его в функцию и сразу станет понятно как ее использовать. А так в документации просто написано:
func (*DB) BeginTx

func (s *DB) BeginTx(ctx context.Context, opts *sql.TxOptions) *DB

BeginTx begins a transaction with options
а откуда брать TxOptions, какие у него параметры указывать, не понятно
Параметр context.Context из BeginTx управляет временем работы транзакции.

сontext, cancelFunc := context.WithTimeout(...)
источник

S

Sergey in Go-go!
Anton Kucherov
Когда ныряние в исходники каждый раз когда надо понять как пользоваться инструментом стало хорошей практикой? Мне всегда казалось - отсутсвие нормальной документации, признак низкой инженерной культуры. Я понимаю почему в Go так сложилось, но не могу понять, когда это стало хорошо. Одно дело когда я лезу в исходники чтобы понять, как оно работает, чтобы потом сделать что-то свое, другое дело когда туда надо лезть чтобы понять как этим пользоваться. Не говоря уже о том, что ни тесты ни код никогда не ответят на вопрос: "Почему? Что послужило причиной такого  решения?"
Словами описать код - часто намного сложнее и многословней. По своему опыту - проще заглянуть в код и сразу понять как оно работает и что ему нужно, чем вчитываться в простыню текста, в котором либо не всё указано всё-равно, либо это чтиво на 10 минут. А по коду я за пару минут максимум разберусь что, куда и зачем.
источник

ЛА

Локоть Анатолий... in Go-go!
Anton Kucherov
Когда ныряние в исходники каждый раз когда надо понять как пользоваться инструментом стало хорошей практикой? Мне всегда казалось - отсутсвие нормальной документации, признак низкой инженерной культуры. Я понимаю почему в Go так сложилось, но не могу понять, когда это стало хорошо. Одно дело когда я лезу в исходники чтобы понять, как оно работает, чтобы потом сделать что-то свое, другое дело когда туда надо лезть чтобы понять как этим пользоваться. Не говоря уже о том, что ни тесты ни код никогда не ответят на вопрос: "Почему? Что послужило причиной такого  решения?"
К сожалению, поддержу.
Многие довольно популярные пакеты в го не имеют даже базовых юзкейсов в readme.md.
источник

AK

Anton Kucherov in Go-go!
Sergey
Словами описать код - часто намного сложнее и многословней. По своему опыту - проще заглянуть в код и сразу понять как оно работает и что ему нужно, чем вчитываться в простыню текста, в котором либо не всё указано всё-равно, либо это чтиво на 10 минут. А по коду я за пару минут максимум разберусь что, куда и зачем.
Я не говорил что словами нужно описывать код. Словами нужно описывать то, о чем код не говорит. Код не говорит как правильно использовать API. Код так же не говорит, почему он работает именно так а не по другому. Очень часто код даже не говорит, какую проблему он решает. Он только сообщает о факте: "Я работаю вот так".
источник

К🇦

Коала 🇦🇺 in Go-go!
Anton Kucherov
Я не говорил что словами нужно описывать код. Словами нужно описывать то, о чем код не говорит. Код не говорит как правильно использовать API. Код так же не говорит, почему он работает именно так а не по другому. Очень часто код даже не говорит, какую проблему он решает. Он только сообщает о факте: "Я работаю вот так".
А программист тогда зачем?
источник

AK

Anton Kucherov in Go-go!
Коала 🇦🇺
А программист тогда зачем?
А как это связано?
источник

S

Sergey in Go-go!
Anton Kucherov
Я не говорил что словами нужно описывать код. Словами нужно описывать то, о чем код не говорит. Код не говорит как правильно использовать API. Код так же не говорит, почему он работает именно так а не по другому. Очень часто код даже не говорит, какую проблему он решает. Он только сообщает о факте: "Я работаю вот так".
ну это, имхо, просто от недостатка практики. мне код говорит гораздо больше, чем документация.
источник

AK

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

S

Sergey in Go-go!
Anton Kucherov
Может быть, у меня ее только 15 лет. Наверное маловато, но код обычно мне говорит только о том, как он работает. И то, зачастую я как человек ошибаюсь, потому что я не компилятор, который потом этот код поменяет и оптимизирует.
практика практике рознь. можно 50 лет работать за станком и уметь только кнопку нажимать. судя по всему вы мало читаете чужой код и редко ищите нестандартные решения.
источник

IS

Ilya Shikhaleev in Go-go!
Переход на личности всегда является признаком проигранного спора
источник

AK

Anton Kucherov in Go-go!
Sergey
практика практике рознь. можно 50 лет работать за станком и уметь только кнопку нажимать. судя по всему вы мало читаете чужой код и редко ищите нестандартные решения.
Смелые выводы, но увы ни чем не обоснованные. Примерно 60% времени я читаю чужой код последние лет 10. А нестандартные решения я действительно ищу только тогда, когда они уместны, а не изобретаю велосипед каждый раз. 🤷‍♂️ Думаю на этом можно закончить.
источник

S

Sergey in Go-go!
они обоснованы именно тем, что вам код говорит меньше, чем документация, увы, да.
источник

Y

Yury in Go-go!
всем привет. не подскажете какой-нибудь простой путь установки timezone без изменения времени? например у меня time.Local() = 2020-02-01 00:00:00 +0000 UTC  , а мне надо из этого сделать 2020-02-01 00:00:00 +0300 UTC
источник

ВС

Владимир Столяров... in Go-go!
Time.In не меняет время
источник

E

Edgar in Go-go!
Могу ошибаться, но если верно помню, в стд либе time есть метод для установки зоны
источник

ЛА

Локоть Анатолий... in Go-go!
Владимир Столяров
Time.In не меняет время
+
источник

ВС

Владимир Столяров... in Go-go!
а, хотя в этом случае не подойдет, оно превратится в 2020-02-01 00:03:00 +0300 UTC
источник