- PVSM.RU - https://www.pvsm.ru -

Golang-дайджест № 10 (1 – 31 октября  2021)

Golang-дайджест № 10 (1 – 31 октября  2021) - 1

Свежая подборка новостей и материалов

Интересное в этом выпуске

  • Выпущены Go 1.17.2 и Go 1.16.9

  • Выпущен Ebiten 2.2.0 с поддержкой Nintendo Switch

  • Анонс опроса разработчиков Go в 2021 году

  • Какой роутер Go мне использовать?

  • GoPlus (Go +)

Приятного чтения!

Новости, события

  • Выпущены Go 1.17.2 и Go 1.16.9 [1]

    • устранены проблемы безопасности при вызове функций из модулей WASM.

  • Ebiten 2.2.0 выпущен с поддержкой Nintendo Switch [2] 

  • Предложение: не добавлять Generics [3] в базовые библиотеки Go в версии 1.18 - Rob Pike предлагает разместить новые версии базовых библиотек в экспериментальном пространстве имен

  • Анонс опроса разработчиков Go в 2021 году [4] - поделитесь своими мыслями и помогите сформировать язык - ваши ответы очень ценятся командой Go

  • Ожидания для Generics в Go 1.18 [5] - Расс объясняет, как общий код maps и slices будет в экспериментальном пакете для запуска, а также соответствующие предупреждения о слишком раннем использовании дженериков в продакшене.

  • Go 1.18 будет [6] встраивать информацию о версии исходного кода в двоичные файлы - добавляет информацию о состоянии источника, из которого был создан двоичный файл, приводя ее в соответствие с информацией о модуле, уже хранящейся там.

Предложения по улучшению языка

Awesome

Материалы для обучения

Статьи

Инструменты

  • Линтер для поиска HTTP-запросов - noctx [60]

  • Пакет для запуска команд распределенной оболочки Linux через SSH - mash v1.13.0 [61]

  • Инструмент для создания Go ORM - SQLBoiler v4.7.1 [62]

  • Ultimate Service: начальный код для написания веб-сервисов на Go [63]

  • Библиотека одновременных ограничителей скорости - RateLimiter v1.1.0 [64]

  • Одноразовый сервер веб-почты со встроенным SMTP, POP3 и др. - Inbucket v3.0.0 [65]

  • Быстрый и гибкий HTTP-маршрутизатор - BunRouter [66] v1.0.3

  • Инструмент запуска, сборки задач - task v3.9.0 [67]

  • Синтаксический анализатор, форматировщик и интерпретатор оболочки - sh v3.4.0 [68]

  • Фреймворк TUI - bubbletea v0.18.0 [69]

  • GoPlus (Go +) для инженерии, образования и науки о данных - gop [70]

  • Десятичные числа с фиксированной запятой произвольной точности - decimal v1.3.1 [71]

  • Framework Microservices - Kratos v2.1.1 [72]

  • Truthy Condition Testing с помощью Go Generics  [73]- Хотя это «немного шутка»

  • Библиотека позволяет отправлять повторяющиеся уведомления нескольким горутинам с гарантированной доставкой - broadcast v0.0.6 [74]

  • Инструмент для работы с hosts файлом - hostsfile v1.4 [75]

  • TCP-прокси для имитации «хаотического» состояния сети и системы - toxiproxy v2.2.0 [76]

  • Инструмент синтаксического анализа и отладки Panic Stack Trace - panicparse v2.2.0 [77]

  • Инструмент для создания URL-адресов Slug Creator с поддержкой нескольких языков - slug v1.11.0 [78]

  • Бибилиотека генерации UUID RFC-4122 - uuid v4.1.0 [79]

  • Сервер приложений PHP с высокой производительностью и балансировщик нагрузки - roadrunner v2.5.0 [80]

  • Набор инструментов для работы с API Apple/Mac и фреймворками в Go, состоящий как из привязок для Objective C, так и из упакованных версий определенных фреймворков - macdriver v0.2.0 [81]

  • Присоедините хуки к любому драйверу базы данных/sql - sqlhooks [82] v2.0.0

  • Инструмент для сбора и отображения статистики с запущенных серверов Postgres - pgmetrics [83] v1.12.0

  • Библиотека IMAP4 для клиентов и серверов - go-imap v1.2.0 [84]

  • Шахматный движок, написанный на go - blunder v7.1.0 [85]

  • K-сортируемые глобально уникальные идентификаторы (KSUID) - своего рода глобальный уникальный идентификатор, подобный RFC 4122 UUID, созданный для «естественной» сортировки по меткам времени генерации без какой-либо специальной логики с учетом типов - ksuid [86]

  • Инструмент для создания интерфейса командной строки - gofire v0.1.0 [87]

  • Платформа для разработки облачных микросервисов - micro v3.6.0 [88]

  • Пакет валидаторов и дезинфицирующих средств для строк, структур и коллекций. На основе validator.js [89] - https://github.com/asaskevich/govalidator [90] v11.0.0

Видео

Подкасты

Сообщества

Go дайджест в телеграм [100]

telegram: @GolangStack
telegram: @GolangStack

telegram: @GolangStack

Автор: tioffs

Источник [101]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/golang/369330

Ссылки в тексте:

[1] Выпущены Go 1.17.2 и Go 1.16.9: https://golangweekly.com/link/114695/web

[2] Ebiten 2.2.0 выпущен с поддержкой Nintendo Switch: https://ebiten.org/blog/v2.2.0.html

[3] Предложение: не добавлять Generics: https://github.com/golang/go/issues/48918

[4] Анонс опроса разработчиков Go в 2021 году: https://go.dev/blog/survey2021

[5] Ожидания для Generics в Go 1.18: https://groups.google.com/g/golang-dev/c/iuB22_G9Kbo/m/7B1jd1I3BQAJ?pli=1

[6] Go 1.18 будет: https://utcc.utoronto.ca/~cks/space/blog/programming/GoVersionOfYourSource

[7] Proposal: x/net/http2: add Transport.WriteByteTimeout: https://github.com/golang/go/issues/48830

[8] https://awesome-go.com/: https://awesome-go.com/

[9] https://github.com/guardrailsio/awesome-golang-security: https://github.com/guardrailsio/awesome-golang-security

[10] https://github.com/Binject/awesome-go-security: https://github.com/Binject/awesome-go-security

[11] https://gist.github.com/hbt/d6ab942b882d5b94f331c5257076d05e: https://gist.github.com/hbt/d6ab942b882d5b94f331c5257076d05e

[12] https://github.com/avelino/awesome-go: https://github.com/avelino/awesome-go

[13] Уроки для изучения Golang: https://golangify.com/

[14] Руководство Generics in Go: https://bitfieldconsulting.com/golang/generics

[15] awesome-go-style: Коллекция руководств по стилю Go: https://github.com/dgryski/awesome-go-style

[16] Правильная упаковка ошибок : https://errnil.substack.com/p/wrapping-errors-the-right-way

[17] Разница между Go и Rust: https://dominikbraun.io/blog/the-difference-between-go-and-rust/

[18] Основы: WebAssembly в golang: https://blog.suborbital.dev/foundations-wasm-in-golang-is-fantastic

[19] genqlient: действительно типобезопасный клиент Go GraphQL: https://blog.khanacademy.org/genqlient-a-truly-type-safe-go-graphql-client/

[20] Изменение AWS Lambda для создания австралийской поисковой системы: https://boyter.org/posts/abusing-aws-to-make-a-search-engine/

[21] Переписывание исходного кода Go с помощью AST: https://eli.thegreenplace.net/2021/rewriting-go-source-code-with-ast-tooling/

[22] Какой роутер Go мне использовать? : https://www.alexedwards.net/blog/which-go-router-should-i-use

[23] Три вещи нужны сейчас больше, чем дженерики?: https://betterprogramming.pub/three-things-go-needs-right-now-more-than-generics-a6225d62f76b

[24] Более быстрый анализ времени: https://philpearl.github.io/post/perf_time/

[25] Емкость и длина фрагмента в Go: https://gosamples.dev/capacity-and-length/

[26] «Hey linker, can you spare a meg?» : https://tailscale.com/blog/go-linker/

[27] GoReleaser теперь может создавать универсальные бинарные файлы macOS: https://goreleaser.com/customization/universalbinaries/

[28] Более безопасные перечисления в Go: https://threedots.tech/post/safer-enums-in-go/

[29] Где сталкиваются Go и GraphQL: за кулисами с genqlient: https://blog.khanacademy.org/where-go-and-graphql-collide-behind-the-curtain-with-genqlient/

[30] В этом пошаговом руководстве: https://towardsdatascience.com/how-to-implement-domain-driven-design-ddd-in-golang-2e2139beb09d

[31] как искать и исправлять утечки памяти: https://dev.to/googlecloud/finding-and-fixing-memory-leaks-in-go-1k1h

[32] Как использовать структурированное ведение журнала JSON в приложениях Go: https://betterprogramming.pub/how-to-use-structured-json-logging-in-golang-applications-7fc5e2751dbd

[33] как работает VPN: https://www.samlewis.me/2021/07/creating-mesh-vpn-tool-for-fun/

[34] Анализ производительности базы данных с помощью Ent и Google Sqlcommenter: https://entgo.io/blog/2021/10/19/sqlcomment-support-for-ent/

[35] Создание многофункциональных приложений CLI с помощью встроенных шаблонов Go: https://lakefs.io/building-rich-cli-applications-with-gos-built-in-templating/

[36] Вам не нужна библиотека для просмотра файлов в Go: https://engineering.kablamo.com.au/posts/2021/quick-comparison-between-go-file-walk-implementations

[37] Как запланировать задачу на определенное время в Go: https://stephenafamo.com/blog/posts/how-to-schedule-task-at-specific-time-in-go

[38] Почему вы должны использовать выделенные конструкторы в Go: https://web3.coach/golang-why-you-should-use-constructors

[39] Почему сетевые инженеры должны учить golang: https://darrenparkinson.uk/posts/2021-10-13-why-network-engineers-should-learn-go/

[40] Полное руководство по go generate: https://eli.thegreenplace.net/2021/a-comprehensive-guide-to-go-generate/

[41] Первые впечатления от Raspberry Pi Zero 2 W: https://blog.alexellis.io/raspberry-pi-zero-2/

[42]  OpenFaaS: https://www.openfaas.com/

[43] Что может пойти не так с mutex, или история профилирования Go: https://evilmartians.com/chronicles/what-could-go-wrong-with-a-mutex-or-the-go-profiling-story

[44] Сортировка графа зависимостей в Go: https://kendru.github.io/go/2021/10/26/sorting-a-dependency-graph-in-go/

[45] Организация запросов Postgres с использованием шаблонов в Go: https://www.migops.com/blog/2021/10/22/organizing-postgresql-codebase-using-templates-in-golang/

[46] Подробное объяснение создания pipelines: https://go.dev/blog/pipelines

[47] Как написать собственный прокси-сервер для модуля Go: https://betterprogramming.pub/how-to-write-your-own-go-module-proxy-ed2d861c577a

[48] Введение в информеры Go Kubernetes: https://golangweekly.com/link/115600/web

[49] Go: как изменяется размер стека горутины?: https://habr.com/ru/company/otus/blog/586108/

[50] Зачем и как хранить объекты на примере MinIO: https://habr.com/ru/company/ozontech/blog/586024/

[51] Автоматизация тестирования микросервисов: плюсы и минусы тестов на Go: https://habr.com/ru/company/oleg-bunin/blog/585766/

[52] CQRS на golang: https://habr.com/ru/company/karuna/blog/582814/

[53] Синхронизация системных настроек: https://habr.com/ru/post/585578/

[54] Разработка системы заметок с нуля. Часть 2: REST API для RESTful API Service + JWT + Swagger: https://habr.com/ru/post/582464/

[55] Система заметок с нуля. Часть 4: разработка микросервисов NoteService, TagService и UserService: https://habr.com/ru/post/583772/

[56] Система заметок с нуля. Часть 5: знакомство с объектным хранилищем MinIO и разработка микросервиса на Golang: https://habr.com/ru/post/585140/

[57] Тёмный маршрутизатор из Raspberry Pi: https://habr.com/ru/post/584558/

[58] Go и MySQL: настраиваем пул соединений: https://habr.com/ru/company/oleg-bunin/blog/583558/

[59] Перестаньте врать себе. Я middle, а вам нужен senior: https://habr.com/ru/post/583902/

[60] noctx: https://github.com/sonatard/noctx

[61] mash v1.13.0: https://github.com/DiscoRiver/massh

[62] SQLBoiler v4.7.1: https://github.com/volatiletech/sqlboiler

[63] Ultimate Service: начальный код для написания веб-сервисов на Go: https://github.com/ardanlabs/service

[64] RateLimiter v1.1.0: https://github.com/Narasimha1997/ratelimiter

[65] Inbucket v3.0.0: https://github.com/inbucket/inbucket

[66] BunRouter: https://bunrouter.uptrace.dev/

[67] task v3.9.0: https://github.com/go-task/task

[68] sh v3.4.0: https://github.com/mvdan/sh

[69] bubbletea v0.18.0: https://github.com/charmbracelet/bubbletea

[70] gop: https://github.com/goplus/gop

[71] decimal v1.3.1: https://github.com/shopspring/decimal

[72] Kratos v2.1.1: https://github.com/go-kratos/kratos

[73] Truthy Condition Testing с помощью Go Generics : https://github.com/carlmjohnson/truthy

[74] broadcast v0.0.6: https://github.com/teivah/broadcast

[75] hostsfile v1.4: https://github.com/kevinburke/hostsfile

[76] toxiproxy v2.2.0: https://github.com/Shopify/toxiproxy

[77] panicparse v2.2.0: https://github.com/maruel/panicparse

[78] slug v1.11.0: https://github.com/gosimple/slug

[79] uuid v4.1.0: https://github.com/gofrs/uuid

[80] roadrunner v2.5.0: https://github.com/spiral/roadrunner

[81] macdriver v0.2.0: https://github.com/progrium/macdriver

[82] sqlhooks: https://github.com/qustavo/sqlhooks

[83] pgmetrics: https://github.com/rapidloop/pgmetrics

[84] go-imap v1.2.0: https://github.com/emersion/go-imap

[85] blunder v7.1.0: https://github.com/algerbrex/blunder

[86] ksuid: https://github.com/segmentio/ksuid

[87] gofire v0.1.0: https://github.com/1pkg/gofire

[88] micro v3.6.0: https://github.com/micro/micro

[89] validator.js: https://github.com/chriso/validator.js

[90] https://github.com/asaskevich/govalidator: https://github.com/asaskevich/govalidator

[91] Вебинар "Golang против скриптов": https://www.youtube.com/watch?v=j3PGPLpT8YM

[92] Golang обучение с нуля | Паттерны проектирования: https://www.youtube.com/watch?v=o9sCFOv-uKE&list=PLxj7Nz8YYkVW5KHnsb9qWUDP2eD1TXl1N

[93] GenericTalks: https://soundcloud.com/generictalks

[94] Go Tim‪e‬: https://podcasts.apple.com/us/podcast/go-time/id1120964487

[95] Вопросы по языку на русскоязычном StackOverflow: https://ru.stackoverflow.com/questions/tagged/golang

[96] Страница Go на stackoverflow: https://stackoverflow.com/collectives/go

[97] Информация о митапах: https://www.meetup.com/ru-RU/pro/go

[98] Форум в группах Google: https://groups.google.com/forum/#!forum/Golang-ru

[99] https://t.me/vseins_tech: https://t.me/vseins_tech

[100] Go дайджест в телеграм: https://t.me/GolangStack

[101] Источник: https://habr.com/ru/post/586352/?utm_source=habrahabr&utm_medium=rss&utm_campaign=586352