@gogolang

Страница 1199 из 1630
Vadim
30.06.2018
14:49:06
Или будет после тоже?

Мерлин
30.06.2018
15:14:29
Или будет после тоже?
Хз, я цены не устанавливаю Но демпенгуем специально, зарабатывваем на самом деле не на облаке, а на поддержке

‎‎‎‎
30.06.2018
16:13:38
пытаюсь разобраться с пакетами

Google
‎‎‎‎
30.06.2018
16:14:13


как-то не красиво

если структур пакетов будет штук 200 мне для каждого свой метод GetID писать?

Vladislav
30.06.2018
16:42:35
если структур пакетов будет штук 200 мне для каждого свой метод GetID писать?
Ну если бы они возвращали одно то можно было бы композицией.

‎‎‎‎
30.06.2018
16:52:59
Ну если бы они возвращали одно то можно было бы композицией.
нет, у каждого пакета должен быть свой уникальный байт

Vasily Romanov
30.06.2018
16:58:52
О, Василий, не знал что вы тут обитаете)
а чего бы мне тут не обитать-то? :)

MVP
30.06.2018
18:36:12
всем привет. а кто то деплоил golan-gin приложения в azure? как лучше к этому подступиться?

Zaur
30.06.2018
19:30:48
если структур пакетов будет штук 200 мне для каждого свой метод GetID писать?
Кодогенерация же)) как раз в курсе от Василия хорошо описано

Vadim
30.06.2018
19:34:50
Привет, я могу общаться с mongo из разных горутин, или лучше одну на read write создавать?

Как моднее?

Zaur
30.06.2018
19:41:53
если структур пакетов будет штук 200 мне для каждого свой метод GetID писать?
https://www.coursera.org/lecture/golang-webservices-1/kodoghienieratsiia-proghramma-pishiet-proghrammu-SSolX

Как моднее?
На сколько знаю, вроде надо скопировать сессию через session.copy() и скопированное можно юзать в горутинах

Google
Zaur
30.06.2018
19:49:59
Единственное что, скопированную сессию надо завершать в конце, через close, чтобы утечки не было

В доках пример был

https://godoc.org/github.com/globalsign/mgo#example-Session--Concurrency

Никита
30.06.2018
20:32:47
Нормально ли создавать соединение с БД в мэйне и передавать указатель на БД для вызовов?

Никита
30.06.2018
20:34:19
А внедрение зависимостей в Go не завезли?

Никита
30.06.2018
20:35:01
Есть много способов. Я спрашиваю про конкретный

Какие минусы такого способа?

Sergey
30.06.2018
20:36:25
Какие минусы такого способа?
помимо очевидных, есть возможность дёрнуть api из другой рутины

если объект не умеет работать с конкуррентными запросами, то беда

Никита
30.06.2018
20:36:57
Очевидные, это какие?

Sergey
30.06.2018
20:37:16
это то, что тебе нужно везде пробрасывать указатель на api

ты же сам и назвал этот минус

Никита
30.06.2018
20:39:54
Это как-то влияет на производительность, например?

Sergey
30.06.2018
20:40:31
влияет

если api умеет работать с конкаренси, то можно запускать несколько рутин

Никита
30.06.2018
20:40:58
Ну, скажем так, серьезно

Sergey
30.06.2018
20:41:29
ну я через недельку мб сделаю бенчи, расскажу

Никита
30.06.2018
20:41:40
Я вообще сейчас склоняюсь к варианту объявить глобальную переменную на уровне пакета с запросами к бд и не париться

Nazary
30.06.2018
20:44:11
какие сложные проекты вы писали на го?

Никита
30.06.2018
20:44:49
К чему вопрос?)

Google
Nazary
30.06.2018
20:46:29
просто интересно)0))0)

с какими архитектурными проблемами сталкивались

Slava
30.06.2018
20:52:30
а как го связан с архитектурными проблемами?

Alexandr
30.06.2018
22:03:04
Ребята, для чего\в каких случаях можно было бы имплементировать интерфейс io.Reader ?

читаю в книжке саммерфильда пример:



Но, не понятно, чем это будет отличаться от того, что я просто создам метод с рандомным названием и буду считывать данные со структуры в слайс.

Aleksandr
30.06.2018
22:11:28
Ребята, для чего\в каких случаях можно было бы имплементировать интерфейс io.Reader ?
для того, чтобы сторонние либы читали из твоего ридера

Alexandr
30.06.2018
22:12:22
для того, чтобы сторонние либы читали из твоего ридера
Повторяю - я мог бы назвать метод Readme и эффект был бы тем же самым.

Aleksandr
30.06.2018
22:13:05
нет, ведь сторонняя либа не умеет читать метод Readme

Jentry
30.06.2018
22:14:46
Повторяю - я мог бы назвать метод Readme и эффект был бы тем же самым.
Ты можешь хоть как назыать, но если желаешь, чтобы некий stdlib, если его так можно назвать, работал с этим - должен реализовать интерфейс

Alexandr
30.06.2018
22:14:53
нет, ведь сторонняя либа не умеет читать метод Readme
Если кто-то (автор сторонней либы) хочет работать с чужим кодом - он смотрит документацию\читает код или пишет свой код не глядя вообще на то, какие методы поддерживаются а какие нет и что они делают, чисто предполагая что у мея должны быть такие - то методы и они должны так-то работать?

Jentry
30.06.2018
22:15:04
Если ридера непонятно, то посмотри на дравера субд, они все требуют Scan/Value

Alexandr
30.06.2018
22:16:19
Но что если автор либы - я ?

Jentry
30.06.2018
22:16:20
Аналогично, чтобы стандартный enconding/json мог работать с твоим типом, ты должен реализовать MarshalJSON/UnmarshalJSON

Aleksandr
30.06.2018
22:16:27
если ты хочешь чтобы сотни либ, работающих с Reader умели работать и с твоей имплементацией, то ты имплементируешь интерфейс. если не хочешь, то не имплементируешь

Aleksandr
30.06.2018
22:17:22
то есть это просто априорная договорёность "реализовывать так" ?
ты не знаешь что такое интерфейс или конкретно с Reader заминка?

Google
Alexandr
30.06.2018
22:17:48
У меня конкретно заминка с Reader, Writer

Aleksandr
30.06.2018
22:18:25
но ты знаешь что такое интерфейс? для чего его создают? для чего имплементируют?

Alexandr
30.06.2018
22:19:36
но ты знаешь что такое интерфейс? для чего его создают? для чего имплементируют?
Да. Для полиморфизма. Разное поведение при одинаковости названий методов.

(ну или тип интерфейс используют для передачи любых данных куда-либо)

Да. Для полиморфизма. Разное поведение при одинаковости названий методов.
Стандартный пример - метод Say() для собаки или кошки, Draw() для круга и квадрата, итд

Jentry
30.06.2018
22:22:03
Тогда в чем вопрос? Reader/Writer у нас по аналогии с кошкой и собакой, умеешь читаться - реализуешь Read

Admin
ERROR: S client not available

Alexandr
30.06.2018
22:22:54
Тогда в чем вопрос? Reader/Writer у нас по аналогии с кошкой и собакой, умеешь читаться - реализуешь Read
А как заставить "стороннюю либу" пользоваться именно этим методом в моём коде? Я не могу ни одного примера найти

Alexandr
30.06.2018
22:23:29
Если сторонняя либа имеет какие-то методы, то я пользуюсь её методами, а не наоборот

Aleksandr
30.06.2018
22:23:44
в этом методе я могу слать любые данные из любых реализаций ридера.

Jentry
30.06.2018
22:23:50
если ты реализовал ридер, то можешь пользоваться ioutil

Aleksandr
30.06.2018
22:24:29
Alexandr
30.06.2018
22:26:00
func MySendSomeData(data io.Reader)
Я правильно понимаю, что вот это и есть ответ на мой вопрос? Именно посредством передачи аргементом типа, реализиющего ридер - и пользуется сторонняя либа?

Aleksandr
30.06.2018
22:26:38
resp, _ := http.Get(...) SendData(resp.Body) csvReader := OpenCsv(...) SendData(csvReader) file, _ := OpenFile(...) SendData(file)

Jentry
30.06.2018
22:26:56
Посмотри, как reader часто используется в том же net/http https://golang.org/pkg/net/http/

Alexandr
30.06.2018
22:27:35
да
Тогда понятно

Aleksandr
30.06.2018
22:27:39
внутри метода SendData я с помощью Read, вычитаю из твоего ридера данные и пошлю дальше

Google
Alexandr
30.06.2018
22:27:40
Боьльшое спасибо всем )

Zaur
30.06.2018
23:29:59
Народ, к примеру, вот такой случай для тестов: Я хочу проверить как система работает с БД. Для этого мне нужно оттестить CRUD функции. Но что бы проверить что я записал, функция чтения должна быть рабочей. Но что бы проверить функцию чтения, функция записи должна быть рабочей

Чё делают в таких случаях?

Я только через моки вижу решение. Но ща всё это делать..

Olzhas
30.06.2018
23:31:37
Либо тестовую бд держать

Zaur
30.06.2018
23:35:31
Либо тестовую бд держать
А как потом это всё отправлять для других разрабов? И что делать с непрерывной доставкой

Olzhas
30.06.2018
23:35:58
Докер все дела

Zaur
30.06.2018
23:37:21
Как-то всё это тяжко выглядит, но придется похоже

Спасибо

Kirill
01.07.2018
04:24:06
А говорили, последствий не будет

https://news.rambler.ru/internet/40211975-hakery-vnedrili-vredonosnyy-kod-v-stranitsu-gentoo-linux-na-github/

Алексей
01.07.2018
09:01:21
https://play.golang.org/p/iSWy69OAPwm Вопрос по использованию "github.com/txgruppi/werr" для вывода стека места где произошла ошибка. Оно выдёт нормально, но на строчку err = werr.Wrap(err) , а не file, err := os.Open("/tmp/my-missing-file") open /tmp/my-missing-file: The system cannot find the path specified. d:/Workspaces/Go/src/github.com/real-mielofon/errors/main.go:13 open /tmp/my-missing-file: The system cannot find the path specified. goroutine 1 [running]: github.com/real-mielofon/errors/vendor/github.com/txgruppi/werr.Wrap(0x5c0420, 0xc04205c1e0, 0x0, 0x5c0420) D:/Workspaces/Go/src/github.com/real-mielofon/errors/vendor/github.com/txgruppi/werr/funcs.go:24 +0x222 main.main() d:/Workspaces/Go/src/github.com/real-mielofon/errors/main.go:13 +0xc3 как то можно сделать, что бы выводился стек вызова именно file, err := os.Open("/tmp/my-missing-file") ? Может другую библиотеку посоветуете

Zaur
01.07.2018
12:44:56
Докер все дела
Я не понял, мне теперь для каждого кейса по докеру с бд держать?

Как это делается обычно?

Страница 1199 из 1630