heavycharged
Обрати внимание как создается новый пул
переделал у пула свойство New, положил туда функцию которая возвращает буфер :) теперь при вызове гет если нету буферов, будет new вызываться. Всем спасибо за пояснения.
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
Не знаю, правильное ли место спрашивать тут, но у меня есть вопрос про oauth2. Точнее про https://github.com/ory/hydra (оно на go и авторизация у меня на go). Есть тут желающие, пообсуждать такой топик? Если да - задам вопросец 😀
🎉
Чото встретился с моментом када уже желательно знать на какой строке произошла ошибка, обрабатываю рековером, но чото неинформативно. Подскажите как решаете эту проблему?
🎉
не допускать паник и обрабатывать ошибки нормально if err != nil { return err }
Но, таких мест может быть много, особенно в стиле го проверять каждый чих на отсутствие ошибки. Как определить в каком месте? ))
🎉
Прост привык в другом языке можно включить в ошибку и строку и много чего.
🎉
не допускать паник и обрабатывать ошибки нормально if err != nil { return err }
И что-то ругается редактор на эту конструкцию.
Andrei 🦉
стандартная ошибка - это интерфейс с одним методом, который возвращает строку ничего не мешает сделать свой кастомный тип ошибок, удовлетворяющий интерфейсу Error, и складывать туда всю необходимую информацию
🎉
Понятно, спасибо. Кажется видел в готур про это, вспомнил.
🎉
github.com/pkg/errors
Спасибо, кажется оно, писать своё не надо.))
Nikita
Но, таких мест может быть много, особенно в стиле го проверять каждый чих на отсутствие ошибки. Как определить в каком месте? ))
Хорошее требование, я каждый ошибку обворачиваю в свою и тогда всегда понятно на каком место что-то ломается
Sergey
Всем привет, пытюсь установить менеджер зависимостей gb, не выходит, и какая то странная ошибка(не пойм при чем тут git), и нагуглить немогу ничего
Sergey
Илья
что за gb help?
Илья
там нет такой команды
Илья
https://godoc.org/github.com/constabulary/gb/cmd/gb
Sergey
А чем godep не угодил?
Ну учитывая что это первый менеджер зависимостей с которым я пытаюсь работать то ответить сложно)
🎉
если ошибка произошла хрен пойми где, но хочется узнать где именно, то есть https://golang.org/pkg/runtime/debug/#Stack
К сожалению со стеком не работал ещё, и не понимаю пока как это поможет. Но спасибо, запомню на будущее.
Sergey
Нашел пробоему
Sergey
наконец то
Илья
ясненько
Aleksandr
Karey
dep, а не godep)
Не путайте человека, есть и dep и godep. Сейчас предпочтительней использовать dep.
Aleksandr
Не путайте человека, есть и dep и godep. Сейчас предпочтительней использовать dep.
человек это знает, поэтому логичнее предположить, что он спутал название.
Wingman
А вот подскажите плз нубу :) Собираюсь писать штуку, взаимодействующую с разным сетевым оборудованием. У которого могут быть разные параметры, разные возможности, разные всякие нюансы - но и много всего одинакового/похожего. Тут прямо таки напрашивается парадигма с базовыми и наследуемыми классами, абстрактными функциями и т.д. - но... Гошка так не умеет, если я все правильно понял? Как принято разруливать такие кейсы?
andrew
только встраивание
Wingman
Спасибо, /me побрел Гуглить)
Chrome
/me
Anonymous
/me
Wingman
%)
Wingman
Это наследие ирц
heavycharged
а не надо указатели в пул класть, и все будет ок
а если не указатели класть, разве есть смысл от пула тогда, тогда же весь буфер будет просто копироваться.
Roman
просто структуры - смысла нет
heavycharged
туда слайсы надо класть, обнуленные по длине
слайсы и есть ссылочный тип. там прямо на сайте как пример sync.Pool идет использование буферов
Roman
нет
Roman
когда кладешь слайс в пул, он кладет туда структуру с указателем на массив под этим слайсом
Roman
таким образом защищает от очистки gc
heavycharged
возвращаясь к вопросу о pool.Put(interface{}), если я туда передам не *bytes.Buffer а bytes.Buffer, он же скопируется?
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
Будет просто shallow copy. Т.е. сам слайс байтов в буфере не скопируется, а скопируется лишь указатель на него
heavycharged
у buffer метод Write определен на ссылке
Aleksandr
We have just released Go 1.8.7, Go 1.9.4, and Go 1.10rc2, to address a recently-reported security issue. We recommend that all users update to one of these releases (if you’re not sure which, choose Go 1.9.4). https://golang.org/dl/
Sergius Ofitserov
Отличные новости. Пойду обновляться
Anastasia
Всем привет! Можно тут немножко полежит? #вакансия в #офис #fulltime от @frank_nastya #Москва #вилка 150-200К net Крупный финтех институт создает исследовательский центр по разработке проектов в области Blockchain и нуждается в увлеченных Golang разработчиках. На текущий момент основной фокус задач сосредоточен на разработке кошелька и b2c платформы для шеринга информации (все с нуля). Планируемая команда: 6-8 чел. Одно из основных условий: предстоит работать в Технопарке Сколково min. 4 раза в неделю (30 мин. на общ. транспорте от м. Кунцевская/Славянский бульвар или на личном автомобиле, парковку компенсируем) Требования к соискателю: • Коммерческий опыт разработки на Go 1-2 года • Опыт проектирования и разработки fault-tolerant / load-balancing систем • Понимание устройства blockchain, криптографии, принципов работы распределённых систем и смарт-контрактов в частности Большим плюсом будет промышленный опыт реализации проектов с использованием blockchain Что предстоит делать: • Участвовать в построение цифровых экосистем для распределенных процессов • Проектировать и разрабатывать смарт-контракты и оракулы для Ethereum/HyperLedger/Corda/etc. • Разрабатывать интеграцию с внешними сервисами, согласовывать протоколы Условия: • Полностью белый оклад + годовая премия по итогам работы • Гибкий график, начало рабочего дня с 8:00 до 11:00 • Рабочее место на выбор (Mac/Win/Linux) • ДМС • Компенсация обедов • Оплата конференций, курсов • Компенсация спорта 50% По всем вопросам стучитесь @frank_nastya или пишите на почту: a.malygina@gmsservices.ru, буду рада рассказать подробнее.
Oleg
Если кто пользуется Vim , как поcмотреть тип переменной?
Oleg
GoInfo не катит(.
🎉
Люди, скажите где в этом злосчасном goland'е убрать расстояние между строчками, я устал листать)))
🎉
Заюзал вчерашний совет по поводу ошибки, и import "github.com/pkg/errors" conf, err := LoadConfig() if err != nil { return errors.Wrap(err, "Read Config failed") } получаю ошибку, может я неправильно понимаю как юзать?
I
File -> Settings -> Editor -> Font -> line-spacing
Если не прокатит File->settings-> Editor->Color Scheme -> Color Scheme Font -> Line spacing
Axm
Простите, немного разбавлю вашу беседу
🎉
Если не прокатит File->settings-> Editor->Color Scheme -> Color Scheme Font -> Line spacing
Ага, я изначально не в те настройки залез. Спасибо.
🎉
Так получилось что ловлю ошибку, и не понимаю откуда она выскочила, редактор молчит как партизан. Решил как-то это дело устаканить, посоветовали вышеозначенный пакет для ловли блох. Написал рековер, что-бы там всё перехватывать, и пытаюсь везде где может произойти ошибка писать осмысленный текст. Как-то так. Поставил этот пакет, а редактор ругается на такие конструкции.
🎉
Дока есть, делаю по доке. https://godoc.org/github.com/pkg/errors
Zhenja
return nil, errors.Wrap(err, "Read Config failed")
Anonymous
Неа, Too many arguments to return.
ты б код показал, что ли %)
🎉
ты б код показал, что ли %)
Да я охерею весь показывать, )) основной кусок что-бы понять выше. Ощущение, что с пакетом errors чото не так.
🎉
Заюзал вчерашний совет по поводу ошибки, и import "github.com/pkg/errors" conf, err := LoadConfig() if err != nil { return errors.Wrap(err, "Read Config failed") } получаю ошибку, может я неправильно понимаю как юзать?
🎉
Щас, на play скину, так проще.
Илья
где ошибка то?
Anonymous
Мой нутренний кэп подсказывает, что ошибку нужно прочитать и понять :)