🏁Александр
вместо всякие бонусных баксов, лучше бы просто включили услугу на N времени
🏁Александр
это честно по крайне мерее
Cat
если получить 5 + 19, то можно поднять инстанс помощнее, а не за $1
Cat
ок, спасибо за респонс
Vadim
Всё будет, но только в понедельник после 9 (
1 зелёный - это ты демпенгуешь?
Vadim
Или будет после тоже?
Мерль
Или будет после тоже?
Хз, я цены не устанавливаю Но демпенгуем специально, зарабатывваем на самом деле не на облаке, а на поддержке
Anonymous
пытаюсь разобраться с пакетами
Anonymous
Anonymous
как-то не красиво
Anonymous
если структур пакетов будет штук 200 мне для каждого свой метод GetID писать?
Vladislav
если структур пакетов будет штук 200 мне для каждого свой метод GetID писать?
Ну если бы они возвращали одно то можно было бы композицией.
Anonymous
Ну если бы они возвращали одно то можно было бы композицией.
нет, у каждого пакета должен быть свой уникальный байт
Vasily
О, Василий, не знал что вы тут обитаете)
а чего бы мне тут не обитать-то? :)
Michail
всем привет. а кто то деплоил golan-gin приложения в azure? как лучше к этому подступиться?
Заур
если структур пакетов будет штук 200 мне для каждого свой метод GetID писать?
Кодогенерация же)) как раз в курсе от Василия хорошо описано
Vadim
Привет, я могу общаться с mongo из разных горутин, или лучше одну на read write создавать?
Vadim
Как моднее?
Заур
если структур пакетов будет штук 200 мне для каждого свой метод GetID писать?
https://www.coursera.org/lecture/golang-webservices-1/kodoghienieratsiia-proghramma-pishiet-proghrammu-SSolX
Заур
Как моднее?
На сколько знаю, вроде надо скопировать сессию через session.copy() и скопированное можно юзать в горутинах
Заур
Единственное что, скопированную сессию надо завершать в конце, через close, чтобы утечки не было
Заур
В доках пример был
Заур
https://godoc.org/github.com/globalsign/mgo#example-Session--Concurrency
.
Нормально ли создавать соединение с БД в мэйне и передавать указатель на БД для вызовов?
Nikita
А внедрение зависимостей в Go не завезли?
.
Есть много способов. Я спрашиваю про конкретный
.
Какие минусы такого способа?
Cat
Какие минусы такого способа?
помимо очевидных, есть возможность дёрнуть api из другой рутины
Cat
если объект не умеет работать с конкуррентными запросами, то беда
.
Очевидные, это какие?
Cat
это то, что тебе нужно везде пробрасывать указатель на api
Cat
ты же сам и назвал этот минус
.
Это как-то влияет на производительность, например?
Cat
влияет
Cat
если api умеет работать с конкаренси, то можно запускать несколько рутин
.
Ну, скажем так, серьезно
Cat
ну я через недельку мб сделаю бенчи, расскажу
.
Я вообще сейчас склоняюсь к варианту объявить глобальную переменную на уровне пакета с запросами к бд и не париться
Nazar
какие сложные проекты вы писали на го?
.
К чему вопрос?)
Nazar
просто интересно)0))0)
Nazar
с какими архитектурными проблемами сталкивались
Slava
а как го связан с архитектурными проблемами?
Anonymous
Ребята, для чего\в каких случаях можно было бы имплементировать интерфейс io.Reader ?
Anonymous
читаю в книжке саммерфильда пример:
Anonymous
Anonymous
Но, не понятно, чем это будет отличаться от того, что я просто создам метод с рандомным названием и буду считывать данные со структуры в слайс.
Aleksandr
Ребята, для чего\в каких случаях можно было бы имплементировать интерфейс io.Reader ?
для того, чтобы сторонние либы читали из твоего ридера
Anonymous
для того, чтобы сторонние либы читали из твоего ридера
Повторяю - я мог бы назвать метод Readme и эффект был бы тем же самым.
Aleksandr
нет, ведь сторонняя либа не умеет читать метод Readme
Je
Повторяю - я мог бы назвать метод Readme и эффект был бы тем же самым.
Ты можешь хоть как назыать, но если желаешь, чтобы некий stdlib, если его так можно назвать, работал с этим - должен реализовать интерфейс
Anonymous
нет, ведь сторонняя либа не умеет читать метод Readme
Если кто-то (автор сторонней либы) хочет работать с чужим кодом - он смотрит документацию\читает код или пишет свой код не глядя вообще на то, какие методы поддерживаются а какие нет и что они делают, чисто предполагая что у мея должны быть такие - то методы и они должны так-то работать?
Je
Если ридера непонятно, то посмотри на дравера субд, они все требуют Scan/Value
Aleksandr
иначе конечно разницы нет
Anonymous
Но что если автор либы - я ?
Je
Аналогично, чтобы стандартный enconding/json мог работать с твоим типом, ты должен реализовать MarshalJSON/UnmarshalJSON
Aleksandr
если ты хочешь чтобы сотни либ, работающих с Reader умели работать и с твоей имплементацией, то ты имплементируешь интерфейс. если не хочешь, то не имплементируешь
Aleksandr
то есть это просто априорная договорёность "реализовывать так" ?
ты не знаешь что такое интерфейс или конкретно с Reader заминка?
Anonymous
У меня конкретно заминка с Reader, Writer
Aleksandr
но ты знаешь что такое интерфейс? для чего его создают? для чего имплементируют?
Anonymous
но ты знаешь что такое интерфейс? для чего его создают? для чего имплементируют?
Да. Для полиморфизма. Разное поведение при одинаковости названий методов.
Anonymous
(ну или тип интерфейс используют для передачи любых данных куда-либо)
Anonymous
Да. Для полиморфизма. Разное поведение при одинаковости названий методов.
Стандартный пример - метод Say() для собаки или кошки, Draw() для круга и квадрата, итд
Je
Тогда в чем вопрос? Reader/Writer у нас по аналогии с кошкой и собакой, умеешь читаться - реализуешь Read
Anonymous
Тогда в чем вопрос? Reader/Writer у нас по аналогии с кошкой и собакой, умеешь читаться - реализуешь Read
А как заставить "стороннюю либу" пользоваться именно этим методом в моём коде? Я не могу ни одного примера найти
Anonymous
Если сторонняя либа имеет какие-то методы, то я пользуюсь её методами, а не наоборот
Aleksandr
в этом методе я могу слать любые данные из любых реализаций ридера.
Je
если ты реализовал ридер, то можешь пользоваться ioutil
Anonymous
func MySendSomeData(data io.Reader)
Я правильно понимаю, что вот это и есть ответ на мой вопрос? Именно посредством передачи аргементом типа, реализиющего ридер - и пользуется сторонняя либа?
Aleksandr
resp, _ := http.Get(...) SendData(resp.Body) csvReader := OpenCsv(...) SendData(csvReader) file, _ := OpenFile(...) SendData(file)
Je
Посмотри, как reader часто используется в том же net/http https://golang.org/pkg/net/http/