Size: a a a

2020 April 23

VM

Vladislav Milenin in Go-go!
МишанЯ
Ну как в глобалку не шарю нихера. Для callback сервера под ВК бота
А ну лучше nginx, там же и https нужен
источник

М

МишанЯ in Go-go!
Vladislav Milenin
А ну лучше nginx, там же и https нужен
Ngnix с https решает и запросы на ip адрес отдает в localhost?
источник

VM

Vladislav Milenin in Go-go!
МишанЯ
Ngnix с https решает и запросы на ip адрес отдает в localhost?
Просто если у тебя будет больше 1 вебсервиса, ты испытаешь боль
Или если заскейлить что-то надо будет и тд

Короче nginx простой и не мешает, лучше сразу с ним
источник

М

МишанЯ in Go-go!
Vps только для бота планировал как бы, а потом уже панельку приделать.
источник

VM

Vladislav Milenin in Go-go!
Ну пгадмин какой-нибудь прикрутить или графану
источник

М

МишанЯ in Go-go!
Просто сторонюсь настройки ngnix, не работал с ним и не знаю как.
источник

RS

Roman Sharkov in Go-go!
type Service interface { /*…*/ }
type Handler struct {
 s Service
}

какой вариант функции New с вашей точки зрения предпочтительнее?

вариант A?

func NewHandler(s Service) *Handler {
 return &Handler{s}
}

или вариант B?

func NewHandler(s Service) (*Handler, error) {
 if s == nil {
   return nil, errors.New(“missing service”)
 }
 return &Handler{s}, nil
}


P.S. пример абстрактный, но суть, я надеюсь, ясна.
источник

RS

Roman Sharkov in Go-go!
Roman Sharkov
type Service interface { /*…*/ }
type Handler struct {
 s Service
}

какой вариант функции New с вашей точки зрения предпочтительнее?

вариант A?

func NewHandler(s Service) *Handler {
 return &Handler{s}
}

или вариант B?

func NewHandler(s Service) (*Handler, error) {
 if s == nil {
   return nil, errors.New(“missing service”)
 }
 return &Handler{s}, nil
}


P.S. пример абстрактный, но суть, я надеюсь, ясна.
Какой из выше перечисленных вариантов с вашей точки зрения предпочтительный?
Анонимный опрос
46%
вариант A
54%
вариант B
Проголосовало: 26
источник

AS

Andrey Skomorokhov in Go-go!
Если это часть инициализации приложения то panic(“missing service”)
источник

OK

Oleg Kovalov in Go-go!
Roman Sharkov
Какой из выше перечисленных вариантов с вашей точки зрения предпочтительный?
Анонимный опрос
46%
вариант A
54%
вариант B
Проголосовало: 26
делаю А, голосую за Б
источник

C

Calculon🤖 in Go-go!
Хз, мне кажется такая проверка избыточна
источник

RS

Roman Sharkov in Go-go!
Andrey Skomorokhov
Если это часть инициализации приложения то panic(“missing service”)
ну вот надо было добавить вариант C 😅

func NewHandler(s Service) *Handler {
 if s == nil {
   panic(“missing service”)
 }
 return &Handler{s}
}

однако я стараюсь паниками не злоупотреблять
источник

D

Darwin in Go-go!
и рядом recover
источник

D

Darwin in Go-go!
хороший код получится
источник

VM

Vladislav Milenin in Go-go!
МишанЯ
Просто сторонюсь настройки ngnix, не работал с ним и не знаю как.
Могу скинуть рабочий пример в лс
источник

C

Calculon🤖 in Go-go!
По хорошему перед вызовом функции идёт
s, err := NewService()
Если тут произошла ошибка то мы просто не создаём handler
источник

C

Calculon🤖 in Go-go!
Calculon🤖
По хорошему перед вызовом функции идёт
s, err := NewService()
Если тут произошла ошибка то мы просто не создаём handler
Если ошибки нет то service не может быть nil
источник

RS

Roman Sharkov in Go-go!
Calculon🤖
Хз, мне кажется такая проверка избыточна
а мне кажется она позволит раньше поймать segfault

у меня обычно правило такое: “если все поля имеющие свойство быть nil - опциональны, тогда вариант A, иначе вариант B”
источник

C

Calculon🤖 in Go-go!
Roman Sharkov
а мне кажется она позволит раньше поймать segfault

у меня обычно правило такое: “если все поля имеющие свойство быть nil - опциональны, тогда вариант A, иначе вариант B”
ошибку обработать можно до прокидывания nil-а в функцию
источник

RS

Roman Sharkov in Go-go!
Calculon🤖
ошибку обработать можно до прокидывания nil-а в функцию
всмсл?
источник