Golang-дайджест № 25 (1 – 31 января  2023)

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

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

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

  • Выпущен Go 1.20

    • Оптимизация на основе профиля (PGO) — это новая (в предварительной версии ) функция, использующая запуск профиля вашего приложения для оптимизации его будущей компиляции.

    • Правила преобразования типов Go были расширены, чтобы разрешить прямое преобразование из среза в массив

    • Команды go buildgo install, и другие команды, связанные со сборкой, теперь принимают -pgoфлаг, позволяющий выполнять оптимизацию на основе профиля, а также -coverфлаг для анализа покрытия всей программы

    • Новый crypto/ecdh пакет обеспечивает явную поддержку обмена ключами Диффи-Хеллмана на эллиптических кривых по кривым NIST и Curve25519

    • Новая функция errors.Join возвращает ошибку, упаковывающую список ошибок, который может быть получен снова, если тип ошибки реализует Unwrap() []error метод

    • Новый тип http.ResponseController обеспечивает доступ к расширенным функциям для каждого запроса, которые не обрабатываются интерфейсом http.ResponseWriter

    • Прокси-сервер httputil.ReverseProxy включает новую Rewrite функцию ловушки, заменяющую предыдущую Director

    • Новая функция context.WithCancelCause предоставляет способ отменить контекст с заданной ошибкой. Эту ошибку можно получить, вызвав новую context.Cause функцию

    • В os/exec.Cmd  добавлены поля Cancel и WaitDelay - определяют поведение контекста

    • Улучшения Perf в сборщике мусора.

    • 1.20 — это последний выпуск, который будет работать на macOS 10.13/10.14 или Windows 7/8.

    • Добавлен пакет Arena - экспериментальное решение для управления памятью (пример использования)

Awesome

  • https://awesome-go.com/ 

  • https://github.com/guardrailsio/awesome-golang-security 

  • https://github.com/Binject/awesome-go-security 

  • https://gist.github.com/hbt/d6ab942b882d5b94f331c5257076d05e 

  • https://github.com/avelino/awesome-go 

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

  • Уроки для изучения Golang

  • Gopherlings - изучайте Go, исправляя неправильные программы 

  • Алгоритмы, реализованные в Go (для обучения)

  • LearnGo: большая коллекция примеров, упражнений

Статьи

  • Криптография в Go 1.20 

  • Библиотеки, которые никогда нас не подводили

  • Что нового в Go 1.20, часть 1

  • Что нового в Go 1.20, часть 2

  • Что нового в Go 1.20, часть 3

  • Проектирование библиотек Go

  • Как создать многоразовый код Go с помощью Uber Fx

  • Игрушечный сервер Redis в Go

  • Создание диаграмм с помощью D2

  • Примеры проблем с целыми числами

  • Руководство разгневанных инженеров по IP-адресам в Go 

  • Mocktail: генератор строго типизированных mocks

  • Полное руководство по дженерикам в Go

  • Как использовать AVX512 в Golang через компилятор C

  • Bittorrent с нуля на Go

  • Kotlin/Golang работа в двух языках

  • Бесит, что err != nil: главные инсайты из опроса Go-разработчиков

  • Автоматизация go get — больше не нужно запоминать названия библиотек

  • TLS 1.3, только игрушечный

  • Бардак в main, стандартизация и uber.fx. Как сделать структуру кода понятнее для всех

  • Как построить WaitGroup на основе 32-разрядного целого числа

  • Умный дом на минималках

  • Generico! Дженерики в go или стоит ли оно того

  • Amazon IVS: как быстро добавить видеотрансляции в приложение или на сайт

  • Что такое фаззинг и зачем он нужен?

  • Fuzzing-тесты в Go после v1.18: знакомство и практика

  • Админка для Private Docker Registry (Registry Admin)

  • Моя попытка сделать утилиту для очистки Linux

  • Трейсинг в Go — это просто

  • Go 1.20 и арена памяти

  • Go: обобщенные алгоритмы и типы

Инструменты

  • gopher-lua 1.1.0 — виртуальная машина и компилятор для Lua в Go 

  • dicom 1.0.5 — анализ медицинских изображений DICOM с Go

  • ov 0.14.2 — многофункциональный терминальный пейджер

  • conc 0.2.0 — Более структурированный параллелизм.

  • bob 0.15.6 — SQL Query Builder и ORM/Factory Generator с поддержкой Postgres, MySQL и SQLite

  • vald 1.7.1 - Распределенная векторная поисковая система

  • d2 0.1.6 — система декларативного построения диаграмм.

  • permify 0.3.0 — служба авторизации для создания и поддержки детальной авторизации в ваших приложениях.

  • gobgp 3.11.0 — реализация протокола Border Gateway Protocol (BGP).

  • notify 0.38.0 — библиотека Go для отправки уведомлений в различные службы обмена сообщениями.

  • fiber 2.42.0 — веб-фреймворк вдохновлён Express.js.

  • imagor 1.4.0 — сервер обработки изображений с поддержкой Docker.

  • ebitengine 2.4.16 — игровой движок с открытым исходным кодом 2D-игр.

  • mirrord 3.24.0 — инструмент для запуска локальной службы в облачном (Kubernetes) контексте.

  • go-wiki 1.0.1 — клиент API Википедии Golang.

  • script 0.21.4 — библиотека для выполнения задач, чтение файлов, выполнение подпроцессов, подсчет строк, строгие строки и т.д.

  • yaegi 0.15.0 — интерпретатор, позволяющий использовать Go для написания сценариев в других приложениях.

  • yao 0.10.2 — движок с открытым исходным кодом, написанный на Golang в виде инструмента командной строки. Он подходит для разработки бизнес-систем, API веб-сайтов/приложений, панели администратора, самодельных платформ

  • cloudquery 1.0.3 — высокопроизводительная платформа интеграции данных с открытым исходным кодом , созданная для разработчиков.

  • chatgpt 0.2.1 — консольный клиент chatGPT

  • zitadel 2.19.2 — система управления пользователями, которая быстро настраивается, мультитенантность с настройкой фирменного стиля, безопасный вход в систему, самообслуживание, OpenID Connect, OAuth2.x, SAML2, беспарольный доступ с FIDO2 (включая пароли), OTP, U2F и неограниченный контрольный журнал

  • phoneinfoga 2.10.2 — инструмент для сканирования международных телефонных номеров. Это позволяет вам сначала собрать базовую информацию, такую ​​как страна, регион, оператор связи и тип линии, а затем использовать различные методы, чтобы попытаться найти провайдера VoIP или идентифицировать владельца

Видео

Источник: https://habr.com/ru/post/716560/


Интересные статьи

Интересные статьи

Как ускорить 1С БИТРИКС и снизить кол-во запросов к БД используя ядро D7.Пример выборки элементов IBlock с пользовательскими свойствами в один запрос.
В этой статье мы популярно объясняем на собственном опыте как организовать массовую выгрузку, обработку и загрузку фотографий товаров из Bitrix, используя Python и минимальное количество SQL. Для проч...
Хочу поделиться опытом автоматизации экспорта заказов из Aliexpress в несколько CRM. Приведенные примеры написаны на PHP, но библиотеки для работы с Aliexpress есть и для...
Приветствую вас (лично вас, а не всех кто это читает)! Сегодня мы: Создадим приложение (навык) Алисы с использованием нового (октябрь 2019) сервиса Yandex Cloud Functions. Настроим н...
Один из самых острых вопросов при разработке на Битрикс - это миграции базы данных. Какие же способы облегчить эту задачу есть на данный момент?