[Go] Golang-дайджест № 2 (1 – 28 февраля 2021)
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Свежая подборка новостей и материаловИнтересное в этом выпуске
- Веб-браузер
- Мониторинг почтовых служб
- Сканер уязвимостей
- Зашифрованная файловая система
Приятного чтения!Материалы для обучения
- Уроки для изучения Golang
- Введение в программирование на Go
- Go в примерах
- Маленькая книга о Go
- Руководство для начинающих по разумным абстракциям с использованием Golang
- Книга, посвященная синтаксису/семантике
- Go-patterns (паттерны проектирования с примерами на Golang)
Новости, события
- Модули включены по умолчанию в Go 1.16 – теперь go-команда по умолчанию создает пакеты в режиме с поддержкой модулей
- Профилирование блоков в Go – контролирует долю событий блокировки горутин
- Generic – предложение добавить дженерики принято
- Embed – новый пакет embed обеспечивает доступ к файлам, встроенным в программу во время компиляции, с помощью новой директивы //go:embed
- Unicode – пакет unicode и связанная с ним поддержка во всей системе были обновлены с Unicode 12.0.0 до Unicode 13.0.0, что добавляет 5930 новых символов, включая 4 новых скрипта и 55 новых эмодзи
Предложения по улучшению языка
- https://github.com/golang/go/issues/44221 - encoding/csv: Добавить возможность получения номера строки записиПредложение предлагает новый метод:
func (r *Reader) Line() int
- https://github.com/golang/go/issues/44253 Предложение добавить в дженерики тип и размер массива
type Array8[T any] interface {
type [8]T
}
type ArraysOfSomeSizes[T any] interface {
type [2]T, [4]T, [8]T, [16]T
}
предложение предлагает следующий синтаксис для выражения этой идеи:
type Array[T any] interface {type […]T}
- https://github.com/golang/go/issues/36460 - cmd/go: Отложенная загрузка модуля
- https://github.com/golang/go/issues/44551 Предложение добавить поддержку тестирования фаззинга
func FuzzMarshalFoo(f *testing.F) {
// Seed the initial corpus
f.Add("cat", big.NewInt(1341))
f.Add("!mouse", big.NewInt(0))
// Run the fuzz test
f.Fuzz(func(t *testing.T, a string, num *big.Int) {
t.Parallel() // seed corpus tests can run in parallel
if num.Sign() <= 0 {
t.Skip() // only test positive numbers
}
val, err := MarshalFoo(a, num)
if err != nil {
t.Skip()
}
if val == nil {
t.Fatal("MarshalFoo: val == nil, err == nil")
}
a2, num2, err := UnmarshalFoo(val)
if err != nil {
t.Fatalf("failed to unmarshal valid Foo: %v", err)
}
if a2 == nil || num2 == nil {
t.Error("UnmarshalFoo: a==nil, num==nil, err==nil")
}
if a2 != a || !num2.Equal(num) {
t.Error("UnmarshalFoo does not match the provided input")
}
})
}
- https://github.com/golang/go/issues/44412 Предложение добавить Time.UnixMilli и Time.UnixMicro
// UnixMilli returns the local Time corresponding to the given Unix time,
// msec milliseconds since January 1, 1970 UTC.
func UnixMilli(msec int64) Time {
if msec%1e3 < 0 {
return unixTime(msec/1e3-1, int32((msec%1e3)1e6)+1e9)
}
return unixTime(msec/1e3, int32((msec%1e3)1e6))
}
// UnixMicro returns the local Time corresponding to the given Unix time,
// usec milliseconds since January 1, 1970 UTC.
func UnixMicro(usec int64) Time {
if usec%1e6 < 0 {
return unixTime(usec/1e6-1, int32((usec%1e6)1e3)+1e9)
}
return unixTime(usec/1e6, int32((usec%1e6)1e3))
}
Статьи
- Рекомендации по безопасности для разработчиков Go
- Отправка и подделка писем с помощью пользовательских шаблонов в Golang
- CRUD с использованием инфраструктуры GOA
- Создание API CRUD
- Использовать указатель вместо копии структуры?
- Примеры работы с контекстом
- Логирование с использованием контекста
- Почему следует избегать ioutil.ReadAll
- Создание Swagger и пользовательского интерфейса SwaggerUI для фреймворка Echo
- Ручное управление памятью в языке Go
- Публикация Go-приложения в GitHub
- Отложенные задачи в рамках микросервисной архитектуры
- Telegram на go, часть 2: бинарный протокол
- Go & Kubernetes: быстро развивающиеся микросервисы Golang
- Понимание распределения в Go
- Как динамически вводить зависимости в структуру
- Внедрение зависимостей в GO
- Go, локдаун и новый MPD-клиент – встречайте Ymuse
- Создаем бессерверное приложение с помощью Azure Functions и Go
- Запускаем AssemblyScript в Go
- Популярные задачи для собеседований бэкенд-разработчиков на Go и их решения
Инструменты
- Пример реализации чистой архитектуры в проектах Go (Golang)
- Инструмент непрерывной доставки GitOps для Kubernetes Argo CD
- Сканирование для различных протоколов TCP, DNS, HTTP, File на основе шаблонов Nuclei – сканер уязвимостей
- Плагин для Terraform, который позволяет управлять полным жизненным циклом ресурсов AWS. Этот провайдер поддерживается внутри группы HashiCorp AWS Provider Terraform
- Высокопроизводительная библиотека по работе с json Замена "encoding / json"
- Инструмент обнаружения поддоменов. Обнаруживает поддомены для веб-сайтов с помощью пассивных онлайн-источников. Он имеет простую модульную архитектуру и оптимизирован по скорости Subfinder
- Кросс-платформенное прокси сервер/клиент с шифрованием Brook
- Настраиваемый механизм подсказок для любой оболочки, который может изменять строку подсказки с помощью функции или переменной Oh-my-posh
- Горизонтально масштабируемая и распределенная база данных GraphQL с бэкендом графа Dgraph
- Инструмент для изучения шахматных дебютов Chess-explorer-go
- Небольшой и простой компилятор Go Babygo
- Cli инструмент для выполнения sql запросов: поддержка sql, csv, ltsv, json, tbln Trdsql
- Инструмент для работы с типом файлов MP4 Go-mp4
- Платформа для создания приложений блокчейна на Golang Cosmos-SDK
- Мониторинг почтовых служб, получение писем, проверка аккаунтов Сheck-mail
- Высокопроизводительный, неблокирующий tcp фреймворк Nbio
- Быстрый и гибкий DNS-сервер CoreDns
- Веб-браузер умеет управлять cookie, историей, созданием вкладок, подменой юзер-агента Surf
- Зашифрованная файловая система GoCryptfs
- Консольное приложение для отслеживания и мониторинга статистики криптовалют в режиме реального времени Cointop
- Интерфейс командной строки git Bit
- Сервис собирает забавные сообщения о коммитах из Github Commits.lol
- Структура файловой системы, обеспечивающая простой, унифицированный и универсальный API Afero
- Реализация FrodoKEM, практическая инкапсуляция ключей с квантовой безопасностью FrodoKEM
- Симулятор движения мыши Busy
Видео
- Серия уроков «Разработка rest api Golang», автор Maksim Zhashkevych
- Серия трансляций по реализации сервисов Golang, автор comerc
Подкасты
Сообщества
- Вопросы по языку на русскоязычном StackOverflow
- Информация о митапах
- Форум в группах Google
- Канал в телеграм
===========
Источник:
habr.com
===========
Похожие новости:
- [Разработка под Android] Новости Android разработки 01.03.2021
- [Медийная реклама, Контент-маркетинг, Развитие стартапа, Лайфхаки для гиков] List your startup for free: a guide to Startup Digest
- [Java] Реализация мультиарендности с использованием Spring Boot, MongoDB и Redis (перевод)
- [Разработка мобильных приложений, Здоровье] Google открыла Android Sleep API, с которым разработчик приложений может отслеживать сон пользователя
- [Open source, Python, IT-инфраструктура, Хранение данных, Хранилища данных] HDB++ TANGO Archiving System (перевод)
- [Ненормальное программирование, Ruby, Программирование, Go] Запускаем скрипты Ruby из Go Lang
- [Гаджеты, Мониторы и ТВ, Умный дом] Функция базового Google TV превратит умный телевизор в обычный
- [IT-эмиграция, Карьера в IT-индустрии, Офисы IT-компаний, IT-компании] Сравниваем грейды IT-инженеров крупных зарубежных компаний: Google, Facebook, Uber и Booking
- [Тестирование IT-систем, Программирование, Java, MongoDB] Run MongoDB Atlas locally for testing
- [DevOps, Google Cloud Platform, Облачные сервисы] Google признала сложность Kubernetes, поэтому разработала режим «Автопилот» (перевод)
Теги для поиска: #_go, #_go, #_golang, #_digest, #_blog_kompanii_vseinstrumenty.ru (
Блог компании ВсеИнструменты.ру
), #_go
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 17:32
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Свежая подборка новостей и материаловИнтересное в этом выпуске
=========== Источник: habr.com =========== Похожие новости:
Блог компании ВсеИнструменты.ру ), #_go |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 17:32
Часовой пояс: UTC + 5