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

Golang-дайджест № 14 (1 – 28 февраля  2022)

Golang-дайджест № 14 (1 – 28 февраля  2022) - 1

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

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

  • Выпущены Go 1.17.7 и 1.16.14

  • Go 1.18 Release Candidate 1: Заметки 

  • Самомодифицирующийся исполняемый файл на Go 

  • Go Workspaces в Go 1.18

  • Gambit - шахматы в терминале

  • Подкаст - обсуждаем дженерики от Go Get Podcast

  • FQ - Инструмент для работы с бинарными данными

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

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

  • Выпущены Go 1.17.7 и 1.16.14 [1] - включает исправлениями безопасности в cmd/go, math/big и crypto/elliptic

    • crypto/elliptic: [2]исправление IsOnCurve для значений big.Int, которые не являются допустимыми

      • Некоторые значения big.Int, которые не являются допустимыми могут привести к тому что Curve.IsOnCurve неправильно вернет значение, работа с этими значениями могут вызвать панику или недопустимую операцию с кривой

    • math/big: [3]потребления памяти в Rat.SetString

      • может вызвать неограниченный рост памяти в программе, использующей (*Rat).SetString

    • cmd/go: [4]исправление версии веток

      • Ветка имя которой напоминает тег версии (например, "v1.0.0" или "subdir/v2.0.0-dev") go может считать действительной версией

  • Предложение по улучшению go/doc форматирования [5]

  • proposal: arena: new package providing memory arenas [6]

    • Предложение добавить пакет arena в стандартную библиотеку Go. Пакет арены позволит выделить любое количество арен. Объекты произвольного типа могут быть выделены из памяти арены, а арена автоматически увеличивается в размерах по мере необходимости. Когда все объекты в арене больше не используются, арена может быть явно освобождена для эффективного освобождения памяти без общей сборки мусора. 

  • runtime: Не пора ли улучшить планировщик Go? [7]

  • Russ Cox: Разбирает статью от ZDNet «Устойчивое развитие с Rust» - почему эта статья вводит в заблуждение о Go [8]

  • Что будет в Go 1.18 [9] — краткий обзор, в основном посвященный дженерикам и фаззингу на высоком (хотя и техническом) уровне.

Awesome

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

Статьи

Инструменты

  • Платформа для создания приложений с удаленным доступом по ssh - wish v0.3.0 [50]

  • Библиотека которая генерирует краткие, URL-безопасные UUID - shortuuid v4.0.0 [51]

  • Сервер обработки изображений с поддержкой Docker  - imagor v0.8.11 [52]

  • Форк Cobra с большинством функций, но только с 4 зависимостями - coral v1.0.0 [53]

  • Распределенная реляционная база данных, построенная на SQLite - rqlite v7.3.1 [54]

  • Telegram Bot Framework - telebot 3.0 [55]

  • Игровой движок Pure Go - oak v3.3.0  [56]

  • Официальный клиент Go для Elasticsearch - go-elasticsearch v8.0 [57]

  • DNS-сервер, объединяющий плагины в цепочку - CoreDNS v1.9 [58]

  • Расширенный автономный планировщик заданий для PostgreSQL - pg_timetable v4.4.0 [59]

  • Играйте в шахматы в своем терминале - gambit v0.1.0 [60]

  • Библиотека логирования - zap v1.21.0 [61]

  • Инструмент для работы с бинарными данными - fq v0.05 [62]

  • Платформа TUI, вдохновленная Elm [63] - bubbletea v0.20.0 [64]

  • Инструмент для рендеринга монохромной графики в терминале с помощью специальных блочных символов Unicode - tcg v0.0.2 [65]

  • Библиотека для размещения значка/меню в области уведомлений - systray [66]

  • Утилита для сканирования некоторых новостных сайтов или других ресурсов и загрузки контента в pdf - newser [67]

  • Инструмент SAST для обнаружения секретов, паролей, ключей API и токенов в репозиториях git - gitLeaks v8.3 [68]

  • Платформа для создания облачных микросервисов - kratos v2.2.0 [69]

  • Фреймворк для создания сервисов LDAP - gldap [70]

  • Отслеживание позиций на биржах в терминале - ticker v4.5.0 [71]

Видео

Подкасты

Сообщества


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

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

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

[1] Go 1.17.7 и 1.16.14: https://groups.google.com/g/golang-announce/c/SUsQn0aSgPQ/m/gx45t8JEAgAJ

[2] crypto/elliptic: : https://github.com/golang/go/issues/50974

[3] math/big: : https://github.com/golang/go/issues/50699

[4] cmd/go: : https://github.com/golang/go/issues/35671

[5] Предложение по улучшению go/doc форматирования: https://github.com/golang/go/issues/51082

[6] proposal: arena: new package providing memory arenas: https://github.com/golang/go/issues/51317

[7] Не пора ли улучшить планировщик Go?: https://github.com/golang/go/issues/51071

[8] Разбирает статью от ZDNet «Устойчивое развитие с Rust» - почему эта статья вводит в заблуждение о Go: https://twitter.com/_rsc/status/1496352325157457922

[9] Что будет в Go 1.18: https://lwn.net/Articles/883602/

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

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

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

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

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

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

[16] Ссылки на учебные пособия по Go: https://mehdihadeli.github.io/awesome-go-education/

[17] The Darker Corners of Go: https://rytisbiel.com/2021/03/06/darker-corners-of-go/

[18] Серии видео уроков по Golang: https://www.youtube.com/c/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9%D0%A2%D1%83%D0%B7%D0%BE%D0%B2/videos

[19] Go 1.18 Release Candidate 1: Заметки: https://tip.golang.org/doc/go1.18

[20] Производительность Go от Go 1.2 до 1.18: https://benhoyt.com/writings/go-version-performance/

[21] Внутреннее устройство новой системы фаззинга в Go: https://jayconrod.com/posts/123/internals-of-go-s-new-fuzzing-system

[22] Оптимизация GoAWK с помощью компилятора байт-кода и виртуальной машины.: https://benhoyt.com/writings/goawk-compiler-vm/

[23] Создание игрушечного преобразователя DNS с помощью Go: https://jvns.ca/blog/2022/02/01/a-dns-resolver-in-80-lines-of-go/

[24] Создание быстрого графического интерфейса с помощью Fyne: https://convey.earth/conversation?id=48

[25] Проверка TLS: внедрение верификаторов OCSP и CRL в Go: https://www.cossacklabs.com/blog/tls-validation-implementing-ocsp-and-crl-in-go/

[26] Как мы пишем GitHub Actions: https://full-stack.blend.com/how-we-write-github-actions-in-go.html

[27] Различные способы инициализации структур Go: https://asankov.dev/blog/2022/01/29/different-ways-to-initialize-go-structs/

[28] История контроля версий Go.: https://research.swtch.com/govcs

[29] Непрерывная сборка и развертывание приложений Go с помощью Google Cloud Build: https://blog.cloud66.com/continuous-build-and-deployment-of-go-applications-with-google-cloud-build/

[30] Файловое тестирование в Go: https://eli.thegreenplace.net/2022/file-driven-testing-in-go/

[31] Шаблоны проектирования GoF, которые все еще имеют смысл в Go: https://dev.to/mauriciolinhares/gof-design-patterns-that-still-make-sense-in-go-27k5

[32] Как использовать даты и время в Go: https://www.digitalocean.com/community/tutorials/how-to-use-dates-and-times-in-go

[33] Самомодифицирующийся исполняемый файл на Go : https://muscar.eu/self-modify.html

[34] Встраивание NATS в Go: https://dev.to/karanpratapsingh/embedding-nats-in-go-19o

[35] RabbitMQ Streams для сбора и обработки телеметрии умного дома: https://habr.com/ru/company/otus/blog/653689/

[36] Как выбрать подходящий Go-роутер? (с блок-схемой): https://habr.com/ru/company/otus/blog/653009/

[37] Go, я создал: интегрируем Allure в Go красиво: https://habr.com/ru/company/ozontech/blog/652707/

[38] Беглый взгляд на Go Workspaces в Go 1.18: https://habr.com/ru/company/joom/blog/652103/

[39] Чистые транзакции в гексагональном Go: https://habr.com/ru/post/651799/

[40] Как не выстрелить себе в ногу, обрабатывая ошибки в голанге: https://habr.com/ru/company/first/blog/650187/

[41] Какие тесты выбрать для облака? Сравниваем варианты: https://habr.com/ru/company/ru_mts/blog/651663/

[42] Go-контексты и микросервисы. Как решить проблему с соединениями к базе при помощи контекстов: https://habr.com/ru/company/ispring/blog/650941/

[43] Колокол — система событий в Go или очередная event-system библиотека: https://habr.com/ru/post/651453/

[44] Golang пощупаем дженерики: https://habr.com/ru/post/651229/

[45] Анализируем bound checks в Go по CPU профилю: https://habr.com/ru/post/651203/

[46] Proof-of-Union — алгоритм консенсуса в блокчейн системах базируемый на сотрудничестве узлов: https://habr.com/ru/post/651187/

[47] Continuous integration в Go с GitHub Actions: https://habr.com/ru/company/otus/blog/650435/

[48] Как можно тестировать платформенные сервисы: https://habr.com/ru/company/oleg-bunin/blog/649553/

[49] IO_URING. Часть 3: https://habr.com/ru/company/itsoft/blog/649161/

[50] wish v0.3.0: https://github.com/charmbracelet/wish

[51] shortuuid v4.0.0: https://github.com/lithammer/shortuuid

[52] imagor v0.8.11: https://github.com/cshum/imagor

[53] coral v1.0.0: https://github.com/muesli/coral

[54] rqlite v7.3.1: https://github.com/rqlite/rqlite

[55] telebot 3.0: https://github.com/tucnak/telebot/releases/tag/v3.0.0

[56] oak v3.3.0 : https://github.com/oakmound/oak

[57] go-elasticsearch v8.0: https://github.com/elastic/go-elasticsearch

[58] CoreDNS v1.9: https://github.com/coredns/coredns

[59] pg_timetable v4.4.0: https://github.com/cybertec-postgresql/pg_timetable

[60] gambit v0.1.0: https://github.com/maaslalani/gambit

[61] zap v1.21.0: https://github.com/uber-go/zap

[62] fq v0.05: https://github.com/wader/fq

[63] Elm: https://guide.elm-lang.org/architecture/

[64] bubbletea v0.20.0: https://github.com/charmbracelet/bubbletea

[65] tcg v0.0.2: https://github.com/msoap/tcg

[66] systray: https://github.com/getlantern/systray

[67] newser: https://github.com/lnenad/newser

[68] gitLeaks v8.3: https://github.com/zricethezav/gitleaks

[69] kratos v2.2.0: https://github.com/go-kratos/kratos

[70] gldap: https://github.com/jimlambrt/gldap

[71] ticker v4.5.0: https://github.com/achannarasappa/ticker

[72] Unit Testing RESTful APIs: https://www.youtube.com/watch?v=tTz7b2AongA

[73] Fuzz Testing in Go: https://www.youtube.com/watch?v=w8STTZWdG9Y

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

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

[76] Выпуск #1: Обсуждаем Дженерики: https://gogetpodcast.ru/post/2022/02/16/%D0%B2%D1%8B%D0%BF%D1%83%D1%81%D0%BA-1-%D0%BE%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B0%D0%B5%D0%BC-%D0%B4%D0%B6%D0%B5%D0%BD%D0%B5%D1%80%D0%B8%D0%BA%D0%B8/

[77] Pointers or !Pointers, stack, and heap: https://go.transistor.fm/episodes/003-pointers-or-pointers-stack-and-heap

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