朝の日差し ✙
CGo?
朝の日差し ✙
😅
Roman
проблема всех этих дутых цифр в том, что как только появляется хоть немного python-кода - все становится дико медленно.
Roman
вообще, гошечка тоже далека от оптимальности
Roman
https://github.com/golang/go/issues/15735#issuecomment-266574151
Slach
вообще все современные вычислительные системы далеки от оптимальности поскольку представлют из себя множественные цепочки не очень хорошо инвалидированных кешей =(( которые как я тут недавно выяснил появились от чисто физических органичений микроэлектроники скорость распостранения сигнала и кол-во транзисторов на ячейку DRAM памяти
Roman
тут дело не в физике
Roman
с получением большого числа udp-пакетов в гошечке беда, потому что нет recvmmsg/sendmmsg
я просто текст
Есть варик заставить godep сохранять не *.go файлы для конкретного пакета?
я просто текст
эта фиговина решила, что папку с шаблонами вот этого пакета можно просто проигнорить https://github.com/kirves/go-form-it/
Slach
? в смысле dep не сделал go get для этого пакета? вот да, звучит как баг
я просто текст
не баг. Он там все загрузил. НО Godep does not copy: - files from source repositories that are not tracked in version control. - *_test.go files. - testdata directories. - files outside of the go packages.
я просто текст
Вероятно он посчитал, что это файлы вне пакета
Slach
;) в vendor не положил?
я просто текст
угу
я просто текст
блин. Ну раз не мой косяк, то можно ругать godep. Какие есть альтернативы этому дерьму?
randle
dep
Sergey
Всем привет, после успешного выполения метода POST получаю id новой записи в базе, хочу вернуть пользователю в ответ json вида {"id": 5}, как это лучше и безболезненней сделать, а то на данном этапе приходит в голову создание отдельной структуры, ее наполенении, и использовании метода json.Marshal(struct), но мне кажеется это можно сделать как то проще, может кто знает?
Anonymous
Капец
Sergey
Спасибо, буду пробовать
Sergey
Спасибо)
Maksim
Подскажите, export GOPATH=~/go export PATH=$PATH:$GOPATH/bin export PATH=$PATH:/usr/local/go/bin достаточно в .profile или нужно что-то ещё?
Dmitrii
вроде норм. можешь протестировать go get github.com/golang/example/hello $GOPATH/bin/hello
Sergey
Ребят, 3 тий день пишу на Go и не пойму вот чего, у меня есть GOPATH(я уже много где читал и с этим все ясно), но почему во всех проектах импортируют черех папку github все, не могу нигде найти ответ на этот вопрос(я может впринципе создаю проект локально и не работаю с гитом), тоесть получается все проекты я должен разрабатывать в ней, иначе не смогу прописать импорт к другим пакетам?
朝の日差し ✙
проект не привязан к гиту никак. просто удобно на прямую прописывать либку из гита
Sergey
А если я создал проект на рабочем столе
Sergey
как мне импортировать свои пакеты
Sergey
которые я написал
Sergey
которые лежат внутри в папке проекта глубже
Sergey
если я пишу абсолютный путь гит ругается
Sergey
не гит* а go
朝の日差し ✙
https://stackoverflow.com/questions/15049903/how-to-use-custom-packages-in-golang
Sergey
Теперь все стало ясно, спасибо) А то читаю сайты, посомтрел курсы от mail ру и везде так объясняется без подробностей, додумывайте сами называется
朝の日差し ✙
Гуглите сами, читайте сами (с) 🙃
Sergey
Это да(
MXLTN
есть в gorm способ написать кастомный preload condition?
aadz
Создал проект на рабочем столе... Может быть, Бил Гейтса лучше спросить об этом?
𝒦𝒶𝓁𝒶𝓎⛩
ругается на такую конструкцию fmt.Sprint("%s:%s", c.get())
𝒦𝒶𝓁𝒶𝓎⛩
можно как то передавать через фунции параметры?
𝒦𝒶𝓁𝒶𝓎⛩
fmt.Sprintf("%s:%s", c.get())
🎉
fmt.Sprintf("%s:%s", c.get())
В функции return есть?
𝒦𝒶𝓁𝒶𝓎⛩
да
𝒦𝒶𝓁𝒶𝓎⛩
func (c *conf)GetDB() (user, pass, table string) { return c.dbUser, c.dbPass, c.dbName }
𝒦𝒶𝓁𝒶𝓎⛩
fmt.Sprintf("%s:%s:%s", Conf.GetDB()...)
𝒦𝒶𝓁𝒶𝓎⛩
fmt.Println(fmt.Sprintf("%s:%s:%s", Conf.GetDB()...))
𝒦𝒶𝓁𝒶𝓎⛩
./config_test.go:13:51: multiple-value Conf.GetDB() in single-value context
🎉
А, возврат не написал же, что функция возвращает.
🎉
func (c *conf)GetDB() (user, pass, table string) (p *conf, err error) { return c.dbUser, c.dbPass, c.dbName }
🎉
Примерно, но не уверен что с методом прокатит.
🎉
Это у тебе жи метод, попробуй чистую функцию если что.
𝒦𝒶𝓁𝒶𝓎⛩
а может возвращать массив строк
🎉
а может возвращать массив строк
Ну это как тебе удобнее.
𝒦𝒶𝓁𝒶𝓎⛩
Кстати да
𝒦𝒶𝓁𝒶𝓎⛩
нет не работют чистые функции
𝒦𝒶𝓁𝒶𝓎⛩
и массив передовал не работает
🎉
и массив передовал не работает
Ну надо код посмотреть, где-то у тебя что-то не так. Я сам вторую неделю про го читаю.
🎉
Вооот, и короче пытался в одном файле bd.go замутить всю работу с базой, с методами не покатило, ибо не видят другие пакеты экспортируемую bd. Что-бы видели, нужно в верхнем регистре объявлять, а на это sql ругается. А вот с функциями вполне прошло.
𝒦𝒶𝓁𝒶𝓎⛩
Тут кода то: func GetDB() (user, pass, table string) { return Conf.dbUser, Conf.dbPass, Conf.dbName } fmt.Sprintf("%s:%s:%s", GetDB())
Roman
Это настолько базовые вещи, что их отсутствие в стандартной библиотеке вызывает недоумение
ты просто не знаешь что делает python с этими магическими методами. а в го придется сначала это узнать, и понять, что не надо бы этим пользоваться
🎉
Тут кода то: func GetDB() (user, pass, table string) { return Conf.dbUser, Conf.dbPass, Conf.dbName } fmt.Sprintf("%s:%s:%s", GetDB())
Не, во первых возврата у тебя в функции нет, Sprintf ругается на количество аргументов в сингл контесте, проверяй во первых всегда что возвращается и на ошибки обязательно. user, err := GetDB() if err != nil { log.Fatal(err) } fmt.Sprintf(...) Примерно.
Artem
Приходится писать собственные велосипеды
это не велосипеды, мое мнение, что просто некоторые забывают что программированием занимаются инженеры и оно не сводится к дерганью методов api и фреймворка.Вещи о котрых вы говорите -это база и они должны быть реализованны в ваших личных библиотеках или библиотеках вашей команды, ни к чему раздувать стандартную библиотеку. Официальная версия тут https://golang.org/doc/faq#x_in_std p.s. не стоит забывать, что Golang создавался для профессионалов и в нем нет ничего нового. Обычно те, кто пишут на нем используют паралельно еще 2-3 (как минимум) языка и никому нафиг не нужно запоминать как называются методы и особенности реализации.
Anonymous
А мне кажется, что т.к. разрабы накосячили со своими interface{}, невозможно реализовать Dead code elimination, из-за чего они ссут раздуть стандартную либу. ))
Artem
Golang создавался не для профессионалов. А для дубовых программеров, чтобы они могли написать приемлемый код за приемлемое время. Поэтому и выразительность языка низкая.
"дубовые программеры" -требует раскрытия термина, сложно.., они не профессионалы? Golang несет четко сформулированную философию и она идеальна для промышленной разработки. А выразительность языка как раз идеальна(2) по сравнению с любым существующим, код на Гоше читается, как книга.
Artem
Выразительность - это когда из слайда удалить элемент можно методом Delete, а не append'ом.
нет, как раз профессионалы прекрасно знают, как удалить из слайса и им не нужны реализации в каждом языке, которые требуют запоминания особенностей. Это примитивнейшая задача решаемая на автоматизме. А вот добавив эти методы Go уже будет другим, выше по ссылке все описанно. Это не задача stdlib.
Anonymous
А какая тогда задача stdlib?
Andrey
а вам не кажется, что через аппенд сделали для того, чтобы понятна была работа с памятью?
Artem
А какая тогда задача stdlib?
мне продублировать ссылку?
Artem
А какая тогда задача stdlib?
или вам что -то мешает обернуть append своим личным delete один раз?
Vsevolod
или вам что -то мешает обернуть append своим личным delete один раз?
Можно что угодно :) но это отнимает время :(
Artem
Еще раз это философия Golang. " Most new code should live outside of the standard library and be accessible via the go tool's go get command. Such code can have its own maintainers, release cycle, and compatibility guarantees. Users can find packages and read their documentation at godoc.org. "