
Евгений
17.08.2018
12:32:45
Кто генерит по swagger 3?
Какой генератор используете?
Что получаете на выходе? Только описания структур? Какие-то хендлеры для http?

Artem
17.08.2018
12:33:13

Sergey
17.08.2018
12:37:55
Вот так плохо делать?
Core.User.IsUserExists(1);

Евгений
17.08.2018
12:40:38

Google

Dorian
17.08.2018
12:40:39
Глобалы плохо. Единичка не понятно за что отвечает
И да, is к глаголу это как монитор в монитор у Экзибита

Sergey
17.08.2018
12:41:40

Roman
17.08.2018
12:41:49

Dorian
17.08.2018
12:42:24

Sergey
17.08.2018
12:42:57

Dorian
17.08.2018
12:43:08
У юзера не хранится ID?

Sergey
17.08.2018
12:44:10

Dorian
17.08.2018
12:44:23
func (u *User) IsUserExists() { return DB.count(u.ID) > 0 }
Не так?

Sergey
17.08.2018
12:44:41
Типо такого, да.

Dorian
17.08.2018
12:44:48
Зачем тогда айди аргументом?

Sergey
17.08.2018
12:44:59
Стоп.

Google

Sergey
17.08.2018
12:45:04
Нет, у меня не так

Dorian
17.08.2018
12:45:08
Ну я там образно написал конечно

Sergey
17.08.2018
12:45:21
User - это скорее класс, а не объект
В нем разные методы

Dorian
17.08.2018
12:45:37
Юзер это структура

Sergey
17.08.2018
12:46:22
Это структура, у который как-бы статические методы

Dorian
17.08.2018
12:46:53
Если вы пытаетесь притянуть за уши какие то практики из JS то сначала почитайте best practices на офф сайте, потом посмотрите популярные репозитории, потом приходите в чат за решениями реальных проблем

Roman
17.08.2018
12:47:11

Dorian
17.08.2018
12:47:35
Иначе одмин зобанет

Sergey
17.08.2018
12:47:49

Никита
17.08.2018
12:48:50

Sergey
17.08.2018
12:49:17

Никита
17.08.2018
12:49:36
Ну у тебя есть тип структура Юзер

Sergey
17.08.2018
12:50:28
Еще тупой вопрос.
Передавать в функцию объект БД или сделать его глобальным?

Евгений
17.08.2018
13:01:21
Тогда наверное UserStorage, который грузит или проверяет наличие юзеров?
type UserStorager interface {
UserExists(ID: int) bool
GetByID(ID: int) (User, error)
}

Sergey
17.08.2018
13:02:17

Никита
17.08.2018
13:03:06

Евгений
17.08.2018
13:03:07

Google

Евгений
17.08.2018
13:03:17
С интерфейсом к БД - так лучше звучит
вначале в коде,
userStorage := userstorage.New(DB)
```это можно положить глобально, или прокинуть
где нужно работаь с юзаками
``` user, err := userStorage.GetByID(1)```

Sergey
17.08.2018
13:06:02
Но userstorage - глобальный же будет, а это плохо

Евгений
17.08.2018
13:06:28
пардон за форматирование - телегу порвало

Crypt
17.08.2018
13:07:25

Sergey
17.08.2018
13:07:36

Dorian
17.08.2018
13:10:12

Crypt
17.08.2018
13:10:12
если хэндлеры не в отдельных пакетах, а всё в одном умещается, то можно и глобальные переменные заюзать. Отпадаются всякие прокидывания и DI

Dorian
17.08.2018
13:10:35
В рамках пакета можно завести глобал, не самое страшное конечно же

Crypt
17.08.2018
13:10:39
какая конкурентность с БД?) там все локи на уровне БД происходят

Dorian
17.08.2018
13:11:32
Откуда вы знаете что человек, спрашивающий тут про типы, классы и обьекты не накидает кучу горутин с глобалом?
Сужу субьективно и строго по себе

Crypt
17.08.2018
13:12:18
если речь про http, то они и так накидаются и будут юзать глобал

Sergey
17.08.2018
13:12:42

Dorian
17.08.2018
13:13:25

Sergey
17.08.2018
13:13:52

Dorian
17.08.2018
13:14:21
Вам будет что-то неудобно, что-то нелепо, а что-то не работать

Google

Dorian
17.08.2018
13:14:39
Ну или наоборот

Sergey
17.08.2018
13:15:20
Буду костылить?)

Dorian
17.08.2018
13:15:29
А КАК нужно делать есть на оф сайте. Конечно там нет паттернов проектирования, но это можно посмотреть в популярных фреймворках как вариант

Sergey
17.08.2018
13:15:53

Crypt
17.08.2018
13:16:07
? можно сразу какой-то нормальный курс или книгу осилить, где объясняется почему именно так, чтобы время не тратить

Dorian
17.08.2018
13:16:43
На практике эффект ярче, а "нормальных курсов" в одном экземпляре не найти

Никита
17.08.2018
13:18:24
Это очень удобно

Sergey
17.08.2018
13:28:58

Dorian
17.08.2018
13:29:14

Sergey
17.08.2018
13:30:04

Dorian
17.08.2018
13:30:34

Sergey
17.08.2018
13:30:52

Dorian
17.08.2018
13:30:59
Читаю чужие репы, статьи и стэковерфлоу

Александр
17.08.2018
13:31:55
шо тут про интерфейсы все мучу, если они должны быть в "приемнике" это что их в handlers обьявлять?
ну такое

Sergey
17.08.2018
15:02:47
Парни, я делаю два импорта одинаковых модулей в разных файлах, это плохо?

Crypt
17.08.2018
15:13:21

Google

Alexander
17.08.2018
15:44:47
Ребята, я тут AMQP сервер запилил, и очень был бы рад и благодарен замечаниям, предложениям, конечно же лайкам и особенно критике, можно в личку. Это мой первый большой проект на Go, забрасывать не хочу и буду продолжать над ним работать
https://github.com/valinurovam/garagemq

hamper ?
17.08.2018
15:58:03
А кто-нибудь делал метрики для prometheus в приложении? Все пишут полный список метрик со всеми параметрами а потом их используют? Или есть какие-то более удобные решения?

Sergey
17.08.2018
16:41:31

Crypt
17.08.2018
16:53:21

Vladimir
17.08.2018
16:53:38

Vasily Romanov
17.08.2018
18:00:30
Зачем линтер, если есть стандартные тулы
За счет мощных линтеров очень сильно качество кода улучшается
И если над проектом много людей работает - все выглядит одинаково, проще разные части проекта править

Pawel
17.08.2018
20:37:10
эта книга лучшее из того что я читал про тестирование

DreamingKitten
18.08.2018
03:45:01
Подскажите, как правильно в го использовать предопределённые эрроры. Я вот хочу в проекте глобально использовать ряд специфических для проекта ошибок, ну типа как в позиксе для сокетов определены EACCESS, EWOULDBLOCK и всё такое. Ну то есть чтобы был отдельный модуль, где описаны все возможные ошибки, например ErrMyCustomError1, ErrMyCustomError2, ErrMyCustomError3...
а функции в других модулях могли этот модуль импортировать и их возвращать. Ну и мне вообще не нравятся в коде строковые литералы вместо определённых в удобном месте констант.
Но блин...
https://play.golang.org/p/0pSxLyUQmt3
как?
собственно, как объявить два эррора, равных друг другу?

Andrew
18.08.2018
03:56:11

DreamingKitten
18.08.2018
03:56:47
т.е. каждый эррор сделать глобальной переменной?
Как-то это не go way, мне кажется

Igor
18.08.2018
04:48:39

Ilya
18.08.2018
07:46:23
Есть свой пакет. Который качается через go get. Но когда я его обновляю и заливаю на гит. То проект который использует его не может обновить через go get.

Sergey
18.08.2018
07:47:06
-u?