Go дайджест #4: WebAssembly and Go, Go 1.11 Beta 1, GraphQL, Apple Metal API and Go
В выпуске: как писать проекты на Go в 2018 году, High Performance Go, ТОП-1000 GitHub-репозиториев, отсортированных по количеству звезд.
Новости
Go 1.10.3 and Go 1.9.7 Released — минорный релиз с исправлениями в GoCommand, crypto/tls, crypto/x509.
Go 1.11 Beta 1 Released — не поддерживает vgo (ожидается в beta 2), но поддерживает WebAssembly output. Draft release notes.
Go на
Tutorials & Articles
How to Start A Go Project in 2018
Binding Go Structures to JS References in WebAssembly
Web Assembly and Go: A Look to The Future
GopherJS vs WebAssembly for Go
Using Go for WebAssembly Applications
Using Interfaces and Dependency Injection to Future Proof Your Designs
Writing a Simple Shell in Go — еще один пример, который показывает, насколько хороша стандартная библиотека.
Storing Go Structs in Redis using ReJSON
Getting Started with GraphQL from Go
Using GraphQL with Microservices in Go — пример разработки интернет-магазина.
How to Create a Search Microservice — разработка поискового микросервиса с использованием ElasticSearch.
Realtime Chat with GraphQL Subscriptions in Go
Building a Microservice in Go Following the CQRS Pattern
Rendering a Triangle with Apple’s Metal API Using Go
An Exploration of Go Memory Management — обзор того, как работают Go allocators, и различных способов управления памятью.
Using Job Queues in Go for Resilient Systems — Proof-of-concept используя RabbitMQ.
Faster Test Driven Development With Go on macOS — используем fswatch и grc для автоматического запуска релевантных тестов при каждом изменении кода.
How to Write Bulletproof Code in Go
Backing Up GitHub and GitLab Repositories Using Go
Writing gRPC Interceptors in Go
How to Setup gRPC Service to Service Communication
Building Scalable Web Services in Go
Packaging a Go Application for macOS — „упаковка” Go приложений без использования Xcode.
Protecting API Access with JWT — пример использования JSON Web Tokens (JWT) для аутентификации API.
Rolling a Basic Go Microservice with MongoDB and Docker Multi-Stage Builds
A Step-by-Step Guide to Go Internationalization
Go Code Refactoring: The 23x Performance Hunt
Exploring The Landscape of Go Testing Frameworks
Компилятор Go: язык описания правил SSA оптимизаций
Посмотреть
High Performance Go — использование performance tools, встроенных в Go runtime, GC и GC-friendly код.
Getting Started with OAuth2 in Go
Understanding Running Go Programs through Profiling
justforfunc #36: Versions, build constraints, and ldflags
justforfunc #37: sync.Pool from the pool
GOTO 2018: Containers From Scratch
Инструменты и библиотеки
Топ 1000 Github репозиториев, отсортированных по количеству звезд
httpu: ’Terminal-First’ HTTP клиент.
ULID (Universally Unique Lexicographically Sortable Identifier): более эффективная альтернатива GUID / UUID.
Gaia: платформа для автоматизации, позволяющая создать мощные пайплайны. На основе HashiCorp’s go-plugin и gRPC поверх HTTP2.
Form: создание HTML форм при помощи Go Structs.
pb: Progress Bar для консольных приложений.
Fathom: аналитика для сайтов.
fastjson: еще одна библиотека для парсинга JSON.
Micro: nano-подобный текстовый редактор.
Remark: система комментариев не отслеживающая пользователей. Демо.
httpstat: визуализация статистики HTTP запросов.
xorm: ORM для Go с поддержкой MySQL, Postgres, TiDB, SQLite, MS SQL, и Oracle.
go-heroku: деплоймент Go в Heroku при помощи GitLab CI.
go-mysql-elasticsearch: синхронизация данных из MySQL в Elasticsearch.
recaptcha: Go обертка для reCAPTCHA.
WTF: информационный дашборд в терминале.
Golimit: распределенный и децентрализованный rate limiter.
php-parser: A PHP Parser, использующий goyacc
и golex
библиотеки для для парсинга PHP в AST. Демо.
stripe-go: библиотека для работы со Stripe API.
Pion WebRTC: имплементация WebRTC Native Api на Go.
Mort: S3 совместимое хранилище и сервер обработки изображение. Умеет делать resize, rotate и crop изображений, конвертировать в разные форматы.
Liman: Webapp для мониторинга Docker.
githubv4: библиотека для GitHub’s GraphQL API v4
sbr-go: Sequence-Based система прогнозирования
Blush: ’Цветной grep’. Утилита, позволяющая указать цвет для каждого совпадения.
jp: Bar charts, line charts, scatter plots, histograms в терминале.
consulacl: библиотека для работы с Consul ACLs
Pigo: Face Detection библиотека, основанная на подходе Pixel Intensity Comparison-based Object (PICO) detection.
← Предыдущий выпуск: Go дайджест #3.