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 на 3-му місці серед найбільш популярних мов програмування в "Hacker News's Hiring Trends".
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 Applications WebAssembly
Using Interfaces and Dependency Injection to Your Future Proof Designs
Writing a Simple in Shell 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 Go in Following the Pattern CQRS
Rendering a Triangle with apple's Metal API Using Go
An Exploration of Go Memory Management — огляд того, як працюють Go allocators, і різних способів керування пам'яттю.
Using Job Queues Go in 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.
Storing Go Structs in Redis using ReJSON
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 — використання tools performance, вбудованих в 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-парсер: 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 .
Опубліковано: 14/07/18 @ 07:00
Розділ Безпека
Рекомендуємо:
Що почитати: огляд Telegram-каналів українських IT-фахівців
Поради сеньйорів: як прокачати знання junior C++
В ІТ без диплома: історії Technical Architect, Front-end Dev, Product Manager та інших
Centers of Excellence – майбутнє аутсорсингу?
Ruby/Rails дайджест #19: нові версії фреймворку Sinatra, реліз Ruby 2.6.0-preview2, матеріали з RubyKaigi 2018