@proGO

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

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

Евгений
17.08.2018
12:40:38
Вот так плохо делать? Core.User.IsUserExists(1);
Очень плохо. Учительница английского поставит двойку за четверть :)

Google
Dorian
17.08.2018
12:40:39
Глобалы плохо. Единичка не понятно за что отвечает

И да, is к глаголу это как монитор в монитор у Экзибита

Sergey
17.08.2018
12:41:40
Глобалы плохо. Единичка не понятно за что отвечает
Единичка - айди. А как делать иначе, не глобально, можно код?

Roman
17.08.2018
12:41:49
Вот так плохо делать? Core.User.IsUserExists(1);
IsUserExistsDoes тогда-уж (щутка)

Sergey
17.08.2018
12:42:57
А у User id нет?
Нету чего?

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 на офф сайте, потом посмотрите популярные репозитории, потом приходите в чат за решениями реальных проблем

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

Никита
17.08.2018
12:48:50
func (u *User) IsUserExists() { return DB.count(u.ID) > 0 }
Вот так в принципе лучше всего и делать)

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) }

Евгений
17.08.2018
13:03:07
С объектом бд?
Точнее с "объектом" для работы с БД.

Google
Евгений
17.08.2018
13:03:17
С интерфейсом к БД - так лучше звучит

вначале в коде, userStorage := userstorage.New(DB) ```это можно положить глобально, или прокинуть где нужно работаь с юзаками ``` user, err := userStorage.GetByID(1)```

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

Но userstorage - глобальный же будет, а это плохо
плохо есть 2 варианта. - прокидываем его - юзаем DI в каком-либо виде

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
И где продвинутся дальше по Го, а не кидать горутинами с глобалом?
Честно говоря я бы вам посоветовал делать дальше как делали, потом понять что так не надо делать и переделать или плюнуть на все. Но прежде чем спрашивать тут, все же искать решения самому.

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
А КАК нужно делать есть на оф сайте. Конечно там нет паттернов проектирования, но это можно посмотреть в популярных фреймворках как вариант

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

А КАК нужно делать есть на оф сайте. Конечно там нет паттернов проектирования, но это можно посмотреть в популярных фреймворках как вариант
как раз таки есть там паттерны, только специально для Го, потому что обычные ООП не особо вписываются

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

Sergey
17.08.2018
13:28:58
На практике эффект ярче, а "нормальных курсов" в одном экземпляре не найти
Так, мне костылить или читать разные книги про го?

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
Парни, я делаю два импорта одинаковых модулей в разных файлах, это плохо?

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
Зачем линтер, если есть стандартные тулы
иногда помогает, когда устал)

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 как? собственно, как объявить два эррора, равных друг другу?

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

Как-то это не go way, мне кажется

Igor
18.08.2018
04:48:39
Как-то это не go way, мне кажется
так сделано в стандартной библиотеке, например https://github.com/golang/go/blob/master/src/io/io.go#L28.

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

Sergey
18.08.2018
07:47:06
-u?

Страница 1642 из 1674