🇺🇦 Go for two :)
1.18K subscribers
22 photos
3 files
184 links
Telegram channel about tricks and engineering practices in the Go programming language over a cup of coffee ☕️.

author: @a_soldatenko
personal blog: https://asoldatenko.org

#golang #go #kubernetes #debugging
加入频道
Channel created
Channel photo updated
🔖 О чем канал?

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 <имя пакета>.

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"

Теперь можно напечатать длинную строку.
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
Вот как нужно делать программу для конференции!
GoCon Canada -> https://play.golang.org/p/dSlNFqsiKKl
Наверное одна из самых лучших статей, которые попадались мне на тему как писать хороший Git Commit Message https://chris.beams.io/posts/git-commit/
COME ON SHOW US THE REGULAR EXPRESSION
или как Cloudflare обещает показать регулярное выражение ...
https://blog.cloudflare.com/cloudflare-outage/
Ответ очевидный :)