aadz
Знаете, что лежит в go1.9/bin?
В общем, надо не машину перезагружать, а снести все Go нахер для начала. Потом сесть и внимательно ознакомиться с https://golang.org/doc/install После полного ознакомления без лишних рыпаний уже надо сделать лицо как у старого аптекаря, что бы с таким лицом тупо и внимательно сделать все как положено. Некоторым такой метод помогает :)
Vladislav
Там сейчас необязательно устанавливать GOPATH же.
Anonymous
Хотелось. бы сказать всем спасибо за помощь.
Vladislav
Он по умолчанию на ~/go
Anonymous
"работаем дальше" (с) Веб-студия Сокол
Anonymous
у меня есть и ~/go
Anonymous
Там лежат другие приколы
aadz
aadz
работаем дальше
Anonymous
Завтра уже буду наводить порядок
Anonymous
Увы, сейчас тестировщики стоят на коленях, умоляю выкатить изменения.
aadz
тестировщики тебя в конечном счете уроют (и будут правы), потому что ты любишь делать что-то до того, как понял, что ты делаешь :(
Anonymous
Интересное заявление.
ainu
Если нужен индекс, то думаю стоит начать с https://github.com/google/btree
Смог подцепить и заюзать. Фе получилось, в тесте на несколько десятков тысяч элементов 160 000 миксосекунд у btree и 500 (примерно) обычными массивами с полным перебором
ainu
Он сыграет прямо ого-го когда я данные для сравнений тягаю с диска
ainu
А когда все в памяти, есть способы лучше.
ainu
Для 45000 элементов пройтись циклом быстрее чем бинарным поиском по немуже 500-700 раз
ainu
Чисто за счёт простоты
ainu
Даже обычный map[key]=value работает быстрее
ainu
Если надо искать value по key
ainu
В итоге если искать просто по массиву получается O(N)
ainu
А с btree o(m*t*logt(n))
ainu
Mysql не дурак, он индексами подготавливает временные данные и ищет числовые значения перебором не зря
aadz
Mysql не дурак, он индексами подготавливает временные данные и ищет числовые значения перебором не зря
ты не пробовал почитать официальную документацию про индексы? Типа https://dev.mysql.com/doc/refman/5.7/en/mysql-indexes.html Почитай!
ainu
спс
ainu
Хм, ну да, чуть чуть написано что использует для минимизации обращения к диску, подробнее скажет EXPLAIN, он мне и говорит тоже что и ожидается.
Alexey
Коллеги, что дешевле struct{} или bool? К примеру я делаю мапу, ключем которой будет являться какое-то число например, а значение должно быть что-то, так что лучше юзать для этого "что-то"?
ainu
не int32 и просто int
ainu
быстрее чем bool
ainu
правда это была прошла версия Go сейчас могло поменяться
Alexey
недавно услышал что struct{} занимает меньше чем bool
Alexey
верно я понимаю, что struct{}{} вообще никак не аллоцируется в памяти?
Anonymous
ну, он занимает 0 (ноль) байт :)
Alexey
я пытался это просто через unsafe.Sizeof прогнать, но компилятор ругнулся) invalid expression unsafe.Sizeof(<T>)
Alexey
хм, тогда значит что-то делал не так
Anonymous
struct{} вместо struct{}{}, видимо
Alexey
struct{} вместо struct{}{}, видимо
судя по ошибке да)
Alexey
А вообще, тут очень уж "напрашивается" set, но его в go нет :(
+ как и много чего другого отцы основатели не одобрили(
aadz
Так можно же свой set написать, кому какой надо
Anonymous
Так можно же свой set написать, кому какой надо
Сделать можно много чего, но "из коробки" его иметь было бы очень хорошо
aadz
При чем там чуть ли не все методы этого set получаются на 1-2 строчки, а значит, они будут инлайниться и быстро работать
Anonymous
😁
Anonymous
При чем там чуть ли не все методы этого set получаются на 1-2 строчки, а значит, они будут инлайниться и быстро работать
Кстати, вопрос: а как можно понять, что в итоговом бинарнике функция foo заинлайнилась, и вот bar нет ? Помимо objdump и его друзей :)
Vasily
да
Vasily
там есть флаг который при сборее гаорит что заинлайнилось и что на хип ушло
Vasily
нет под рукой. поищи доклад Славы Бахмутова, он как раз рассказывал про эскейп анализ
Anonymous
Нашел, если кому интересно - http://m0sth8.github.io/runtime-1/#16
Alex
Подскажите для golang библиотеку которая умеет сравнивать тексты. И показывать измененные, удаленные или добавленные блоки.
Alex
спс
Bogdan
Приветствую Кто работает с этой либой https://github.com/go-pg/pg подскажите, пожалуйста
Bogdan
есть такая модель type Country struct { validation.Validatable `json:"-"` tableName struct{} `sql:",countries,alias:country" json:"-"` ID int `sql:",pk" json:"id"` CreatedAt *time.Time `sql:",notnull" json:"created_at"` UpdatedAt *time.Time `sql:",notnull" json:"updated_at,omitempty"` Code uint `sql:",notnull;unique" json:"code"` Name string `sql:",notnull;unique" json:"name"` }
Bogdan
Делаю такую дичь: db.DropTable(&models.Country{}, &orm.DropTableOptions{IfExists: true}) падает с формулировкой reflect: NumField of non-struct type
Bogdan
что за фигня?
Serg
Ребят, подскажите. Хочу написать сервис, которые по SNMP взаимодействует с коммутаторами в сети. Коммутаторы могут быть разных производителей, моделей, прошивок. А значит один и тот же метод для одного может кардинально отличаться по содержанию от другого коммутатора. Вот думаю, стоит ли попробовать заморочиться с Package plugin, который в 1.8 завезли, и для каждой модели оформить плагин со всеми его методами? Или пока рано?
Максим
Прикольно, не знал что такое вообще есть)
Илья
Стоит заморочиться если есть желание попробовать плагины, а так не стоит, достаточно интерфейса
Anonymous
на основе плагинов делают горячую перезагрузку, но это не прод решение https://habrahabr.ru/post/318896/
Lee
Кто-то юзает что-то для покрытия кода тестами?
Lee
Точнее: слышал что в Идее есть такой плагин, подсвечивающий "непокрытие"
Kirill
vscode подсвечивает
Alexey
codecov.io
Alex
goconvey.co
Kirill
как?
Запускаешь из него тесты пакета, после чего он прям в редакторе все подсвечивает
Lee
Я обязан переформулировать вопрос. Кто посоветует какой-то гайдлайн как писать тесты.
Serg
Стоит заморочиться если есть желание попробовать плагины, а так не стоит, достаточно интерфейса
Обратил внимание на плагины, потому что не хочется переписывать и компилить заново весь сервис, когда появится новое устройство со специфическими для него OID-ами. В случае плагинов достаточно будет скомпилить только модуль под конкретную новую модель, положить в каталог и рассказать главному сервису об этом. Но то, что для продакшна пока неюзабельно, смущает.