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

1415de64cbd13b262059db93092cf6ed.jpg

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

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

  • Поддержка ARM

  • Движок Diablo 2

  • Расшифровка паролей из браузеров

  • Сборщик js — аналог webpack

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

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

  • Исправлена ​​проблема, связанная с поиском PATH в ненадежных каталогах https://blog.golang.org/path-security

  • Выпущен релиз-кандидат 1 Go 1.16!

    • ARM в Go 1.16 — добавлена поддержка 64-битной ARM-архитектуры на MacOS М1

    • go get-insecure — флаг является устаревшим и будет удален в версии будущего

    • go get example.com/mod@patch — теперь хочет, чтобы какая-то версия example.com/mod уже требовалась для основного модуля (тем не менее go get -u=patch продолжает исправлять даже недавно добавленные зависимости)

    • GOVCS — новая переменная среды, ограничивающая инструменты управления версиями, которые go-команда может использовать для загрузки исходного кода

    • Добавлен пакет FS — определяет основные интерфейсы файловой системы. Файловая система может быть предоставлена ​​операционной системой хоста и другими пакетами

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

https://github.com/golang/go/issues/44022 Добавить оператор соответствия

func preprocess(example Example) *string
    return match (example.Value, example.Name) {
        0, "C" => {
             return "Zero"
        }
        -100 .. 0, "C" => {
           return "Ice"
       }
        0 .. 100, "C" =>
           return "Hell";
       }
       _, _ => {
            return "Unknown state";
       }
    }

https://github.com/golang/go/issues/44006 — syscall/js: Удалить тип Wrapper, чтобы избежать чрезмерного выделения памяти и улучшить производительность

type BadWrapper struct {
    Value js.Value
}

var escapeRoute *BadWrapper

// Implements js.Wrapper
func (this *BadWrapper) JSValue() js.Value {
    escapeRoute = this // escape to heap
    return this.Value
}

https://github.com/golang/go/issues/43823  Поддержка времени с десятичной запятой для дробных секунд, пример: 02/12/2019 15:45:48,746

https://github.com/golang/go/issues/43774 Потоковый интерфейс AEAD

https://github.com/golang/go/issues/43659 Объявление параметров типа и разделение экземпляров

https://github.com/golang/go/issues/43557 Значения функций как итераторы

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

Уроки для изучения GolangВведение в программирование на Go

Go в примерах

Маленькая книга о Go

50 оттенков Go: ловушки, подводные камни и распространенные ошибки новичков

Алан А.А. Донован, Брайан У. Керниган «Язык программирования Go»

Руководство для начинающих по разумным абстракциям с использованием Golang

Статьи

Инструменты

  • Приложение для просмотра, организации и обмена вашей коллекцией фотографий https://github.com/photoprism/photoprism

  • Игровой движок ARPG в том же духе, что и игры 2000-х годов и поддерживает игру в Diablo 2 https://github.com/OpenDiablo2/OpenDiablo2

  • Сервер Matrix второго поколения, написанный на Go. Призван предоставить эффективную,  надежную и масштабируемую альтернативу Synapse https://github.com/matrix-org/dendrite

  • Сборщик JS в 100 раз быстрее webpack https://github.com/evanw/esbuild

  • Модульная, мощная, высокопроизводительная среда разработки приложений корпоративного класса от Golang https://github.com/gogf/gf 

  • Официальная реализация протокола Ethereum на Golang https://github.com/ethereum/go-ethereum 

  • Инструмент с открытым исходным кодом, который может помочь вам расшифровать данные из браузера: пароли, закладки, файлы cookie, историю https://github.com/moonD4rk/HackBrowserData  

  • Slack API библиотека rest, websocket https://github.com/slack-go/slack 

  • Веб-фаззинг, предназначенный для обнаружения элементов и контента в веб-приложениях или веб-серверах https://github.com/ffuf/ffuf 

  • Инструменты для сканирования международных телефонных номеров с использованием только бесплатных ресурсов. Это позволяет сначала собрать стандартную информацию, такую ​​как страна, область, оператор и тип линии, на любом международном телефонном номере. Затем поискать следы в поисковых системах, чтобы попытаться найти провайдера VoIP или определить владельца https://github.com/sundowndev/PhoneInfoga

Видео

Небольшая серия «Пишем веб-приложение на Go»,  автор Сергей Гаврук

Серия из 26 видео на тему «Погружение в Google Go»,  автор Роман Левищенко

Серия из 17 уроков на тему «Уроки для начинающих»,  автор Лёша Маршал

Подкасты

Go Time: Англоязычные подкасты о GO

Live Shows: Предложения Go Language, о которых вы никогда не слышали (часть вторая)

GolangShow: Русскоязычный подкаст о Go

Сообщества

Форум в группах Google

Группа Golang RU в Telegram

Вопросы по языку на русскоязычном StackOverflow

Информация о митапах

© Habrahabr.ru