[Go] Golang-дайджест № 2 (1 – 28 февраля 2021)

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
01-Мар-2021 10:32


Свежая подборка новостей и материаловИнтересное в этом выпуске
  • Веб-браузер
  • Мониторинг почтовых служб
  • Сканер уязвимостей
  • Зашифрованная файловая система
Приятного чтения!Материалы для обучения Новости, события
  • Модули включены по умолчанию в 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)
  • Инструмент непрерывной доставки 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  
Видео Подкасты Сообщества
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_go, #_go, #_golang, #_digest, #_blog_kompanii_vseinstrumenty.ru (
Блог компании ВсеИнструменты.ру
)
, #_go
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 11:33
Часовой пояс: UTC + 5