
Denis
12.04.2018
11:26:01
в конструктор я имел в виду. DI как тебе выше говорили
хотя забей, наверное и так можно

Vladislav
12.04.2018
11:29:50

Google

Marlik
12.04.2018
11:31:23

Александр
12.04.2018
11:31:41
type handler {
connect *db.Connect
}
func (h *handler) Any(w http.ResponseWriter, r *http.Request) {
}
-------
handler := &handler{
connect: db
}
http.Handle("/anyAction/", handler.Any)
err = http.ListenAndServe(":8080", nil)
@MarlikAlmighty

Marlik
12.04.2018
11:36:45
Я понял, спасибо, но не пойму что это даёт, какой профит?

Александр
12.04.2018
11:36:59
ну никаких глобальных коннектов
вам скорее всего потребуется скинуть еще что-то
тут легко можно нагружать зависимости далее
только надо помнить что это многопоточное программирование
если вы скормите туда скажем
type handler {
connect *db.Connect
myCount int
}
и в handler.Any будете делать h.myCount++ то это будет гонка
стандартный коннект имеет пул для этой цели
вам же надо будет юзать мьютексы или sync/atomic

Google

Marlik
12.04.2018
11:48:36
Чот как-то сложновато...

Mykyta
12.04.2018
11:49:05

Marlik
12.04.2018
11:49:05
Не глобальный коннект и без этого можно соорудить...

Mykyta
12.04.2018
11:52:47
Как вы вообще работу находите не умея писать юнит-тесты?

Marlik
12.04.2018
11:53:12
А я безработный и мне ндра))

Aleksandr
12.04.2018
11:54:26

Denys
12.04.2018
11:54:33
лучше все работать на полный день, пол дня
и с дома
считай безработный
но еще и платят

Vyacheslav
12.04.2018
11:57:04
небольшой опрос, статистики и великой справедливости ради
есть проект
у проекта есть конфиги, база там, бакет, редиса адрес, рэббита там, вот этого всего
есть окружения - тест там, прод, препрод, локал разрабов, и тд
на какое окружение всё должно быть настроено "по умолчанию", конфиги какого окружения должны лежать в репах?

Denis
12.04.2018
11:58:15
https://12factor.net/ru/config

Vyacheslav
12.04.2018
12:00:25
отлично

Pawel
12.04.2018
12:02:50

The
12.04.2018
12:28:00
господа, а atomic работает с кастомными типами? например, LoadUint32? type MyType uint32
или надо как-то через unsafe мутить?

Daniel
12.04.2018
12:29:47
через atomic.Value

The
12.04.2018
12:40:57
через atomic.Value
спс, но я так понимаю тип должен быть не мой кастомный, а именно atomic.Value?
ну точнее, базовый тип не может быть, с обычным присваиванием, как-то так: state = idle

Google

Daniel
12.04.2018
12:42:03
коллега, ну почитайте документацию, а?

The
12.04.2018
12:46:47
ок, я понял)

Vladislav
12.04.2018
13:13:14

Denis
12.04.2018
14:08:35
да

Igor
12.04.2018
14:28:18
Привет! Первый день на голанге :) подскажите ,как на локали такие вещи разрабатывать?
e := echo.New()
e.GET("ws://localhost/ws", hello)
по такому урлу e.GET("ws://localhost/ws", hello) сервер не работает
а по такому e.GET("/ws", hello) работает

Алексей
12.04.2018
14:31:39
Из этих 3х книг:
1. Батчер, Фарина - Go на практике
2. Керниган, Донован - Язык программирования Go
3. Марк Саммерфильд - Программирование на языке Go. Разработка приложений XXI
что посоветуете почитать новичку в Го, но не новичку в программировании?

Илья
12.04.2018
14:33:02

mstrVLT
12.04.2018
14:33:02
Начни уже с написания чего то реального - бота для телеги например

Димка
12.04.2018
14:33:26

Zver
12.04.2018
14:33:26

Илья
12.04.2018
14:33:44

mstrVLT
12.04.2018
14:33:47

Igor
12.04.2018
14:38:04

Marlik
12.04.2018
14:39:03

Alexander
12.04.2018
14:39:37

Zver
12.04.2018
14:43:06

Vyacheslav
12.04.2018
14:43:49

Igor
12.04.2018
14:45:23

Andrey
12.04.2018
15:22:07
Ребят, а возможно ли встроить защиту от отладчика в go приложение? И, если да, скиньте, плиз, линк почитать.

Google

Димка
12.04.2018
15:25:23

Andrew
12.04.2018
15:29:01
upx -d
-d - это же взлом защиты

Илья
12.04.2018
15:32:47
https://blog.filippo.io/shrink-your-go-binaries-with-this-one-weird-trick/

dukeBarman
12.04.2018
15:35:49

Zver
12.04.2018
15:42:33
Кому очень надо все равно взломают.

Aleksandr
12.04.2018
15:45:34

Zver
12.04.2018
15:46:38
Не разберутся в той каше, что генерит гоу компилер. ?

Aleksandr
12.04.2018
15:47:29

Zver
12.04.2018
15:48:05
Вообще взломать все можно.

Andrew
12.04.2018
15:48:35

Aleksandr
12.04.2018
15:49:08

Zver
12.04.2018
15:54:26

Илья
12.04.2018
15:56:37
gdb вроде и так может голову сломать, когда под рукой рантайм сменит тред

Zver
12.04.2018
15:59:11
Построить всю логику на рефлексии с интерфейсами, а все результаты передавать через каналы и пусть разбираются. ?

Andrey
12.04.2018
16:11:58

Димка
12.04.2018
16:12:48

Zver
12.04.2018
16:18:25
-d - это же взлом защиты
Когда-то под виндой можно было какой-то байт или группу поменять, если память не изменяет, и обратно не распаковывал, хотя программа запускалась.

Nurzhan
12.04.2018
17:05:00

Google

Makkusu
12.04.2018
17:20:40
Добрый вечер. Подскажите в чем проблема при работе с либой xlsx от tealeg. Данные на вход подаю нормальные без дубликатов.
Открываю файл и в цикле перебираю sheet. Перебираю массив с данными во вложенном цикле и создаю каждый раз новую строку и ячейки. В итоге он мне id пишет неверный.
Попробовал записать в новый файл. Всё повторяется. Пишет все данные верно кроме первой ячейки id.
Код примерно такой
file = xlsx.NewFile()
sheet, err = file.AddSheet("Table")
functions.Check(err)
for _, dataElem := range data {
row = sheet.AddRow()
cell = row.AddCell()
cell.Value = dataElem.Id
. . . // Добавляю другие ячейки
}
id дублируются из неизвестных мест

Andrey
12.04.2018
17:24:39
пишите dataElem.Id в лог рядом с присваиванием. Это я к тому, что dataElem в цикле переиспользуется, и если там ссылки в структуре, то данные ячейки могут затираться. Как вариант, можно итерировать по индексу
for i, _ := range data {
...
cell.Value = data[i].Id

Makkusu
12.04.2018
17:43:42
При сортировке в LibreOffice сортировал только одну колонку x)
а дубляж из за категорий

Zver
12.04.2018
18:03:57

Makkusu
12.04.2018
18:56:51
for _, x := range data{
for i, y := range data{
if x.Id == y.Id {
data = data(data[:i], data[i+1:]...)
}
}
}
Как подобное удаление дубликатов можно организовать?

Vladislav
12.04.2018
19:07:46

Makkusu
12.04.2018
19:09:22

Vladislav
12.04.2018
19:09:38

Makkusu
12.04.2018
19:28:43
И что?
Спасибо за мысль под другим углом) У меня в слайсы структур собираются данные из парсера (goquery). В одном из циклов EachWithBreak я делаю цикл по уже записанным продуктам и выхожу из цикла, если id совпадают. Надеюсь это не скажется на производительности в 10000 элементов.
Множество циклов меня пугает