Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Свежая подборка новостей и материалов со ссылками
Интересное в этом выпуске
Поддержка 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
Статьи
Пишем хештейбл с дженериками
Пишем свой BitTorrent-клиент на Go
Безопасное использование unsafe
HTTP(S) прокси на Go в 100 строчек кода
Подходит ли Golang для новичков
Оптимизация микросервиса на Go на живом примере
Освобождение ресурсов в GO
GoLand 2020.3 — дамп горутин, запуск табличных тестов, расширенная поддержка Testify
Краткий анализ недавнего проекта предложения по добавлению дженериков в Golang – что включено, что исключено и как это повлияет на язык
Почему Go так быстро компилируется
Инструменты
Приложение для просмотра, организации и обмена вашей коллекцией фотографий 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
Информация о митапах