Go дайджест #1: Go 1.10rc2, dep dependency management, SOLID в Go
В выпуске: гайд по написанию Dockerfiles для Go, туториал по организации пакетов, introduction to testing in Go, high performance Go.
Новости
Go 1.8.7, 1.9.4, and 1.10rc2 Released Due to Security Issue
Go Project Now Accepts Pull Requests via GitHub — теперь контрибьютить в Go можно и с помощью пул реквестов в GitHub.
Announcing dep v0.4.1, Now With Documentation — теперь у dep есть официальный сайт и онлайн-документация.
Почитать
Fix в Go 1.9 ускорил GitLab RPC Service в 30 раз
Гайд по публикации библиотек — управление зависимостями, документация, тесты, CI и лицензирование.
Совсем недавно NGINX добавили поддержку HTTP2 Server Push. Туториал о том, как использовать это с Go.
Гайд по написанию Dockerfiles для Go — пошаговое создание Dockerfile с live reloading и управлением зависимостями.
Туториал по созданию и управлению macOS LaunchAgents — launchd, использование text/template для создание plist файлов, обработка сигналов, разница между «агентами» и «демонами».
В Go 1.8 добавлен инструмент для тестирования бета-версий и релиз-кандидатов. Туториал о том, как его использовать.
Using ’dep’ For Day-To-Day Dependency Management — детальный разбор команд «dep ensure» и «dep status».
An Intro to dep: How to Manage Your Go Project Dependencies — туториал по управлению зависимостями в Go проектах.
Packing Multiple Binaries in a Go Package — туториал по организации пакетов, для новичков.
Туториал по разработке JSON API
Создание «URL Shortener» API при помощи Goa Framework
Clean Architecture on Golang — один из подходов к архитектуре вашего приложения.
Принцип SOLID в языке Go — перевод статьи от Dave Chaney «Solid Go Design».
Туториал по написанию игры «Space invaders»
Посмотреть
Two Ways of Merging a Number of Channels into One
Advanced Go Debugging with Delve
An Introduction to Testing in Go
Helpful Go Practices: Working with Time
Creating GopherJS Apps with gRPC-Web
Using gRPC and Protocol Buffers from backend to browser.
Инструменты и библиотеки
wsify (Websocketify): Realtime Pub/Sub Server
goben: инструмент для измерения пропускной способности TCP/UDP между хостами.
Miniflux: минималистичный RSS ридер.
Go-Chassis: SDK для быстрой разработки микросервисов.
GRV: консольный интерфейс для просмотра git репозиториев.
cam2ip: библиотека, которая превращает любую web-камеру в IP камеру.
DNSCrypt-Proxy 2: DNS прокси с поддержкой современных протоколов DNSCrypt v2 и DNS-over-HTTP/2.
url2img: HTTP Server c API для создания скриншотов веб-сайтов.
goiv: просмотрщик изображений.
Caire: библиотека для ресайза изображений с учетом содержимого.
packr: библиотека для встраивания статики в бинарники Go.
GoReleaser: инструмент для автоматизации релизов.
JSON-to-Go: инструмент для преобразования JSON в Go структуру на лету.
Commandeer: автоматически устанавливает флаги командной строки на основе полей структур и их тегов.
Butler: инструмент для автоматизации создания новых проектов. Может создавать новые проекты на основе шаблонов, которые являются простыми git репозиториями.
php-parser: PHP парсер на Go. Поддерживает синтаксис PHP 7 и PHP 5.
go-server-timing: библиотека для использования HTTP Server-Timing в Go.
Supercronic: cron для контейнеров, совместимый с crontab.