Sergei
без них никак
Artem
Sergei
всем, скорее. и сарказм это.
Мерль
Во первых, надо ставить монгу
Во-вторых, надо использовать rancher os
Artem
Получается супервизор выступает в качестве контроля процесса, но как он мне поможет избежать того, что процесс го приложения просто умрет?
Artem
А во, там есть функция автоматического рестарта, в случае, если процесс упал
Artem
Норм тема
Мерль
Не забудь про логи!
Artem
Да я увидел, что можно включить логирование и смотреть ошибки
Artem
А что будет в случае перегрузки сервера? Допустим nginx начинает отдавать ошибка 502, а что с го?
Artem
Извините за глупые вопросы в столь поздний час :)
Мерль
Artem
Зачем?
Artem
Я mux поставил
Мерль
Зачем?
Это решит кучу проблем с безопасностью и не только
И под nginx есть куча готовых конфигураций
Artem
А какая опасность меня так может ожидать?
Мерль
Уязвимости в имплементации http в go как минимум)
Dmitry
кстати находили уязвимости в http go?
Заур
Правило 1: в любой непонятной ситуации ставь nginx.
Заур
Правило 2: если ситуация понятная, ставь nginx
Nikita
Ребят, привет. Я все пытаюсь изучить го. 3 месяц то возвращаюсь к нему, то бросаю. Сейчас нашел для себя задачу под него и начал синтаксис заново изучать, но вот опять не понимаю как это работает.
Есть структура Wallet.
myWallet := &Wallet{} // инициализирую(создаю?) новую струтуру и возвращаю на нее ссылку
myWallet := Wallet{} // инициализирую структуру и возвращаю структуру?
Daniel
так и есть
Fedor
Я бы скорее сказал объект данного типа
Fedor
Wallet - структура, myWallet - объект типа Wallet
Nikita
не могу понять, что это значит. В js таких вещей нет и ассоциаций не могу провести
Nikita
допустим метод func (w *Wallet) можно назвать методом структуры и w это как this
а func (w Wallet) это как статический метод
Nikita
структуры
Nikita
так?
Oleksii
Нет
Oleksii
В Go есть понятие указателей
Oleksii
В первом случае метод определен для типа указатель на Wallet
Fedor
js да... я счастливый человек, начинал с Си
Oleksii
Во втором - для типа Wallet
Fedor
почитай Керниган, Ритчи по Си
Fedor
здорово добавит понимания того, как языки программирования вообще работают
Nikita
читать?
Fedor
https://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%A1%D0%B8_(%D0%BA%D0%BD%D0%B8%D0%B3%D0%B0)
Oleksii
Надо вообще понимать, что такое указатель
Oleksii
Возможно, целую книгу не надо, но несколько статей + примеры почитать/пописать
Nikita
ну это типо ссылка на какой-то обьект в памяти
Oleksii
И для себе уяснить нормально
Oleksii
Ещё есть такая штука, что методы Гошные можно воспринимать как простые функции, где первым аргументом есть ресивер
Oleksii
Возможно, тебе это поможет с пониманием твоего примера
Nikita
программа выделяет память под какие-то данные и создает на нее ссылку и через эту ссылку можно работать с данными.
Nikita
я короче почему-то не могу понять, именно разницу между Wallet и &Wallet, точней не понимаю, что такое Wallet вообще без ссылки
Fedor
у тебя есть переменная, к примеру int - это 4 байта в памяти. Указатель - это другая переменная типа "указатель на int" которая содержит адрес первой.
Fedor
Wallet - это структура.
Есть типы данных int, float, string разной длинны.
Fedor
структура - это новый тип данных, который состоит из набора полей, каждое из которых заранее известного типа
Fedor
тоесть вместо того, что бы хранить две переменные x и y с типами int, ты определяешь структуру Point { x int; y int} и хранишь переменную такого типа
Nikita
а, вот, я понял, что мне не понятно.
Nikita
Nikita
только это типизированные обьекты
Nikita
в общем мне не понятно почему так, а именно
&Wallet{} реализует метод pay() который работает по ссылки так?
Nikita
но почему мне доступен Wallet.pay() хоть он и реализован только для указателя
Nikita
Nikita
Nikita
Nikita
или я просто глуп, что начал строить теории на основе подсказки в редакторе?
Nikita
го автоматом обвернет значение в ссылку ?
Fedor
да, это условность языка
Fedor
он кое что умеет сам, что бы не быть совсем Си )
Fedor
хотя понимаю это несколько мешает
Oleksii
Это сделано для удобства
Nikita
если вызывается у значения
Nikita
а, блин, чеж я туплю, просто сам попробую
Дмитрий
Oleksii
type W struct {}
func (w *W) m() {}
...
v := W{}
v.m() // &v.m()
Nikita
что-то я прикола не понял, но у меня метод pay срабатывает во всех случаях
Nikita
хотя результаты разные, но это понятно, что без указателя структура не модифицируется
Oleksii
Мне кажется, я тебе это уже объяснял несколько месяцев назад
Nikita
Nikita
я прошлый раз не осилил
Nikita
и забыл
Oleksii
Это играет роль, когда используются интерфейсы
Nikita
а какую?
Oleksii
https://stackoverflow.com/questions/40823315/go-x-does-not-implement-y-method-has-a-pointer-receiver
Nikita
спасибо.