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