Category Archives: golang

Cool speech on container insides for developer

We’ve run into problems on my work when k8s limits cpu to few processors, while go application can see all of them (setting GO_MAX_PROCS to maximum CPUs available) and go’s scheduler is going crazy because of that during highload (like stress-tests). It is caused by scheduling for, let’s say, 40 processors while you have cpu …

Read more

Особенности структур в go

Методы на структурах в golang определяются на типе. И если мы объявим типизированную переменную, даже не проинициализировав её, методы будут работать корректно до тех пор, пока мы не попытаемся обратиться к полям ресивера. Вот пример; первые два вызова работают нормально, третий валится с паникой.

GO. Реализация бинарного дерева

https://appliedgo.net/bintree/

GO. Способ объединения кода в пакеты

https://medium.com/@benbjohnson/standard-package-layout-7cdbc8391fc1 Основные идеи: 1. Основные пакеты не зависят от других пакетов в приложении 2. Группировать подпакеты по зависимостям 3. Моки должны быть в отдельном подпакете для использования в подпакетах другого пакета 4. Основной пакет связывает все пакеты Зависимости от сторонних пакетов лучше обернуть с свои обёртки и использовать везде их. Самое интересное — их так …

Read more

Выбор совпадений подстрок в названиях

Был у меня список клиник, который забивали руками. Хотелось найти сетевые клиники путём поиска похожих названий, а именно — совпадений подстрок. Делал на go. Из-за скорости и наколеночности делал всё в одном файле, без тестов и код там не так чтобы хорош. Код здесь — https://github.com/bullgare/lzd_cllinics/blob/master/utils/parser/main.go#L312. Реализация не самая удачная, нет тестов, и всё в …

Read more

SRE на GO в Dropbox

Вячеслав Бахмутов from CodeFest https://youtu.be/EWsXbsUBm-M

Go: библиотека для конкурентного доступа к мапе

https://github.com/golang/sync/blob/master/syncmap/map.go

Подсветка go-кода

Онлайн сервис подсветки golang — http://hilite.me/ Мне больше нравится стиль autumn.

Goroutine leaktest detector

https://github.com/fortytw2/leaktest

Инструмент для визуализации зависимостей в go

https://github.com/TrueFurby/go-callvis Вызов: