🔖 О чем канал?
3 года назад попался мне проект prometheus, и вот пытался я его запустить все дела. Как обычно, начинаешь устанавливать, проходить всякий getting-started, потом … часа через 2 ты уже дебажишь исходный код и пытаешься отправить свой патч на Github.
Так я узнал про язык программирования Go! На этой приятной ноте, предлагаю Вам подписаться на мой канал чтобы быть в курсе того над чем я работаю и прочитать что-то интересное (не ссылку и не копипаст) о новом, но довольно популярном языке программирования Go за чашечкой кофе :)
P.S. В комментариях можно поделиться своей историей, о том как Вы начали писать на Go и почему?
P.P.S. Лого канала взял у жены Rob Pike -> Renee French https://www.instagram.com/reneefrench/ :)
3 года назад попался мне проект prometheus, и вот пытался я его запустить все дела. Как обычно, начинаешь устанавливать, проходить всякий getting-started, потом … часа через 2 ты уже дебажишь исходный код и пытаешься отправить свой патч на Github.
Так я узнал про язык программирования Go! На этой приятной ноте, предлагаю Вам подписаться на мой канал чтобы быть в курсе того над чем я работаю и прочитать что-то интересное (не ссылку и не копипаст) о новом, но довольно популярном языке программирования Go за чашечкой кофе :)
P.S. В комментариях можно поделиться своей историей, о том как Вы начали писать на Go и почему?
P.P.S. Лого канала взял у жены Rob Pike -> Renee French https://www.instagram.com/reneefrench/ :)
🐛Дебажим код написанный на Go
Да код на Go можно и нужно дебажить. Часто сталкиваюсь в разных командах, как разработчики, до сих пор в 2019 году! дебажат принтами :)
Delve - дебаггер который я обычно использую каждый день. Если открыть документацию, она мягко говоря не идеальная.
Установить можно так: go get -u github.com/go-delve/delve/cmd/dlv
Чаще всего я использую
Либо
dlv debug main.go
(dlv) breakpoint main.go:1
(dlv) continue
После того как установили breakpoint, можно нажать continue и программа остановится там где нужно и так далее. Также есть shortcuts (
Да код на Go можно и нужно дебажить. Часто сталкиваюсь в разных командах, как разработчики, до сих пор в 2019 году! дебажат принтами :)
Delve - дебаггер который я обычно использую каждый день. Если открыть документацию, она мягко говоря не идеальная.
Установить можно так: go get -u github.com/go-delve/delve/cmd/dlv
Чаще всего я использую
dlv debug <имя пакета>
. dlv debug github.com/andriisoldatenko/go-blog
Либо
dlv debug main.go
(dlv) breakpoint main.go:1
(dlv) continue
После того как установили breakpoint, можно нажать continue и программа остановится там где нужно и так далее. Также есть shortcuts (
b
, c
, l
и так далее).🔨 Note #3 Настраиваем дебаггер
Сегодня наткнулся на то, что print в режиме дебаггера, не показывает длинные строки.
> main.main() ./main.go:7 (PC: 0x10b08d4)
2:
3: import "fmt"
4:
5: func main() {
6: v1 := "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
=> 7: fmt.Println(v1)
8: }
(dlv) p v1
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...+2 more"
(dlv) config -list
aliases map
substitute-path
max-string-len <not defined>
max-array-values <not defined>
show-location-expr false
(dlv) config max-string-len 1000
(dlv) p v1
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
✅ Теперь можно напечатать длинную строку.
Сегодня наткнулся на то, что print в режиме дебаггера, не показывает длинные строки.
> main.main() ./main.go:7 (PC: 0x10b08d4)
2:
3: import "fmt"
4:
5: func main() {
6: v1 := "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
=> 7: fmt.Println(v1)
8: }
(dlv) p v1
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...+2 more"
(dlv) config -list
aliases map
substitute-path
max-string-len <not defined>
max-array-values <not defined>
show-location-expr false
(dlv) config max-string-len 1000
(dlv) p v1
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
✅ Теперь можно напечатать длинную строку.
Forwarded from Go Library
Writing and Optimizing Go code
This document outlines best practices for writing high-performance Go code.
https://github.com/dgryski/go-perfbook/blob/master/performance.md
This document outlines best practices for writing high-performance Go code.
https://github.com/dgryski/go-perfbook/blob/master/performance.md