4️⃣ простых лайфхака при написании тестов на Go + testify
Хотя язык программирования Go идёт в комплекте со встроенным тестовым фреймворком, мне сложно себе представить написание всего того количества тестов, что я написал, без testify. В этой заметке я расскажу про несколько маленьких неочевидных трюков, которым я научился в процессе.
Читать дальше
GIt: https://github.com/stretchr/testify
@Golang_google
Хотя язык программирования Go идёт в комплекте со встроенным тестовым фреймворком, мне сложно себе представить написание всего того количества тестов, что я написал, без testify. В этой заметке я расскажу про несколько маленьких неочевидных трюков, которым я научился в процессе.
Читать дальше
GIt: https://github.com/stretchr/testify
@Golang_google
💻 Получаем IP-адрес (а) с помощью golang
Простой инструмент командной строки для получения IP-адреса vpn, внутреннего, внешнего адреса.
https://github.com/masum0813/getipinfo
@Golang_google
Простой инструмент командной строки для получения IP-адреса vpn, внутреннего, внешнего адреса.
https://github.com/masum0813/getipinfo
@Golang_google
Что выведет код?
Anonymous Quiz
39%
"write data" и "after write" в любом порядке
12%
только "write data" или "after write"
4%
только "write data"
45%
deadlock!
Идёт набор на летнюю стажировку в Яндексе!⚡️
Направление — бэкенд-разработка на Golang.
Мы ищем стажеров в команды Облака и Главной страницы Яндекса.
Летняя стажировка в Яндексе это:
— от 3 до 6 месяцев оплачиваемой работы;
— возможность выбрать занятость 20, 30 или 40 часов в неделю;
— работа в офисах Москвы и Санкт-Петербурга;
— оплата проезда и проживания в Москве иногородним стажёрам;
— плотное общение с ментором и командой;
— работа над реальными задачами компании;
— возможность подтянуть свои знания и прокачать скиллы.
👉 Откликнуться: https://clck.ru/i3fFe
Направление — бэкенд-разработка на Golang.
Мы ищем стажеров в команды Облака и Главной страницы Яндекса.
Летняя стажировка в Яндексе это:
— от 3 до 6 месяцев оплачиваемой работы;
— возможность выбрать занятость 20, 30 или 40 часов в неделю;
— работа в офисах Москвы и Санкт-Петербурга;
— оплата проезда и проживания в Москве иногородним стажёрам;
— плотное общение с ментором и командой;
— работа над реальными задачами компании;
— возможность подтянуть свои знания и прокачать скиллы.
👉 Откликнуться: https://clck.ru/i3fFe
Потоковая обработка данных в go
При использовании языка Go чувствуется нехватка хорошей библиотеки для работы с потоками данных. Имеющиеся библиотеки в основном написаны во времена до дженериков и имеют не очень удобный интерфейс.
С выходом Go 1.18 появилась возможность реализовать библиотеку потоковой обработки данных goio, вдохновлённую превосходными Scala-библиотеками cats-effect и fs2.
Потребности потоковых программ
При обработке данных, объём которых превышает объём памяти вычислительного узла, необходимо использовать технологии потоковой обработки данных. При этом данные загружаются в память по частям, выполняется их обработка, а затем данные выгружаются из памяти.
Читать дальше
@Golang_google
При использовании языка Go чувствуется нехватка хорошей библиотеки для работы с потоками данных. Имеющиеся библиотеки в основном написаны во времена до дженериков и имеют не очень удобный интерфейс.
С выходом Go 1.18 появилась возможность реализовать библиотеку потоковой обработки данных goio, вдохновлённую превосходными Scala-библиотеками cats-effect и fs2.
Потребности потоковых программ
При обработке данных, объём которых превышает объём памяти вычислительного узла, необходимо использовать технологии потоковой обработки данных. При этом данные загружаются в память по частям, выполняется их обработка, а затем данные выгружаются из памяти.
Читать дальше
@Golang_google
Forwarded from Go tests
🔍 Minecraft Scanner
Интересный проект, написанный на Go Minecraft Scanner , который серфит Интернет на наличие открытых серверов Minecraft.
Описание
Github
@Golang_google
Интересный проект, написанный на Go Minecraft Scanner , который серфит Интернет на наличие открытых серверов Minecraft.
Описание
Github
@Golang_google
📹 Загрузчик видео с YouTube на Golang.
Этот пакет представляет собой пакет для загрузки видео с Youtube.
Этот инструмент предназначен для загрузки контента под лицензией CC0, мы не поддерживаем и не рекомендуем использовать его для незаконных действий.
Установка
Установить через go get
go get github.com/kkdai/youtube/v2
Github
@Golang_google
Этот пакет представляет собой пакет для загрузки видео с Youtube.
Этот инструмент предназначен для загрузки контента под лицензией CC0, мы не поддерживаем и не рекомендуем использовать его для незаконных действий.
Установка
Установить через go get
go get github.com/kkdai/youtube/v2
Github
@Golang_google
🛠 Cache
A Go library to deal with mixed version of key:value store between in-memory cache and shared cache (i.e. Redis).
Функции
Простота в использовании: удобный интерфейс для работы с механизмами кэширования .
Поддерживает согласованность: удаляйте ключи между распределенными системами по шаблону Pub-Sub.
Сжатие данных.
Метрика: предоставление функций обратного вызова для измерения производительности.
Установка:
go get github.com/viney-shih/go-cache
Github
@Golang_google
A Go library to deal with mixed version of key:value store between in-memory cache and shared cache (i.e. Redis).
Функции
Простота в использовании: удобный интерфейс для работы с механизмами кэширования .
Поддерживает согласованность: удаляйте ключи между распределенными системами по шаблону Pub-Sub.
Сжатие данных.
Метрика: предоставление функций обратного вызова для измерения производительности.
Установка:
go get github.com/viney-shih/go-cache
Github
@Golang_google
Go против Rust — производительность вне конкуренции
В статье Наблюдение за выполнением конкурирующих задач в Go и Rust коллега cpmonster привёл весьма интересные результаты:
Программа на Rust показала намного большую производительность при вычислении членов возвратной последовательности, чем программа на Go: 367 млн. итераций в секунду против 44 млн.
Ну, в 1.5 раза… Ну, в 2 раза… Но семь гвардейцев за два дня — это слишком, тем более что тут "гвардейцев" больше восьми!
Или нет, не слишком? В общем, потенциал любопытства пересилил другие потенциалы и я провёл своё исследование.
Повторение — мать учения и основа научного метода
Для начала попробуем воспроизвести результаты. Нужны исходники, а также Go и Rust (у меня версии 1.18 и 1.61, соответственно).
Читать
@rust_code - канал для изучения Rust
В статье Наблюдение за выполнением конкурирующих задач в Go и Rust коллега cpmonster привёл весьма интересные результаты:
Программа на Rust показала намного большую производительность при вычислении членов возвратной последовательности, чем программа на Go: 367 млн. итераций в секунду против 44 млн.
Ну, в 1.5 раза… Ну, в 2 раза… Но семь гвардейцев за два дня — это слишком, тем более что тут "гвардейцев" больше восьми!
Или нет, не слишком? В общем, потенциал любопытства пересилил другие потенциалы и я провёл своё исследование.
Повторение — мать учения и основа научного метода
Для начала попробуем воспроизвести результаты. Нужны исходники, а также Go и Rust (у меня версии 1.18 и 1.61, соответственно).
Читать
@rust_code - канал для изучения Rust
Хабр
Go против Rust — производительность вне конкуренции
В статье Наблюдение за выполнением конкурирующих задач в Go и Rust коллега cpmonster привёл весьма интересные результаты: Программа на Rust показала намного большую производительность при вычислении...
🛠 Сканер портов, написанный на GO
gPScan — это простой инструмент командной строки для проверки того, открыты или закрыты определенные порты.
Чтобы установить/собрать бинарный файл, убедитесь, что у вас установлен компилятор go.
git clone https://github.com/alexpfaller/gPScan
cd gPScan
sudo make build
https://uproger.com/skaner-portov-napisannyj-na-go/
Github: https://github.com/alexpfaller/gPScan
@Golang_google
gPScan — это простой инструмент командной строки для проверки того, открыты или закрыты определенные порты.
Чтобы установить/собрать бинарный файл, убедитесь, что у вас установлен компилятор go.
git clone https://github.com/alexpfaller/gPScan
cd gPScan
sudo make build
https://uproger.com/skaner-portov-napisannyj-na-go/
Github: https://github.com/alexpfaller/gPScan
@Golang_google
Элегантная и современная библиотека BotAPI для GoLang.
Этот фреймворк представляет чистую реализацию на Go без каких-либо внешних библиотек.
Установка: go get -u github.com/Squirrel-Network/gobotapi
Код: https://github.com/Squirrel-Network/GoBotApiGenerator
@Golang_google
Этот фреймворк представляет чистую реализацию на Go без каких-либо внешних библиотек.
Установка: go get -u github.com/Squirrel-Network/gobotapi
Код: https://github.com/Squirrel-Network/GoBotApiGenerator
@Golang_google
Golang-дайджест № 17 (1 – 31 мая 2022)
- Выпущены версии 1.18.2 и 1.17.10.
- Результаты опроса разработчиков в Go GUI
- TinyGo v0.23.0: теперь с поддержкой Go 1.18
- Go является любимым и быстрорастущим языком на GitHub
- Заметки о практическом параллелизме в Go
Читать дальше
@Golang_google
- Выпущены версии 1.18.2 и 1.17.10.
- Результаты опроса разработчиков в Go GUI
- TinyGo v0.23.0: теперь с поддержкой Go 1.18
- Go является любимым и быстрорастущим языком на GitHub
- Заметки о практическом параллелизме в Go
Читать дальше
@Golang_google
🦫 Пример создания микросервиса на Go. с HTTP-сервером и клиентскими пакетами RabbitMQ.
Запуск:
docker-compose up -d mongodb rabbitmq
go build && ./service-golang
Github: https://github.com/gbeletti/service-golang
@Golang_google
Запуск:
docker-compose up -d mongodb rabbitmq
go build && ./service-golang
Github: https://github.com/gbeletti/service-golang
@Golang_google
wholeaked – инструмент для обмена файлами, с возможностью определения “виновного” в случае утечки/потери
@Golang_google | #Go #File #Interesting
@Golang_google | #Go #File #Interesting
This media is not supported in your browser
VIEW IN TELEGRAM
The Algorithms - Go — Алгоритмы, реализованные на GoLang
Репозиторий содержит собой коллекцию кода и демонстраций наиболее популярных алгоритмов, реализованных на Go.
Packages: ahocorasick, avl, binary, binarytree, caesar, catalan, coloring, combination, conversion, diffiehellman, dynamic, dynamicarray, factorial, gcd, generateparentheses, genetic, geometry, graph, hashmap, kmp, lcm, levenshtein, linkedlist, manacher, math, max, maxsubarraysum, min, modular, moserdebruijnsequence, nested, palindrome, pascal, password, permutation, pi, polybius, power, prime, pythagoras, queue, rsa, search, segmenttree, set, sort, stack, transposition, trie, xor
#Go #Algorithm
@Golang_google
Репозиторий содержит собой коллекцию кода и демонстраций наиболее популярных алгоритмов, реализованных на Go.
Packages: ahocorasick, avl, binary, binarytree, caesar, catalan, coloring, combination, conversion, diffiehellman, dynamic, dynamicarray, factorial, gcd, generateparentheses, genetic, geometry, graph, hashmap, kmp, lcm, levenshtein, linkedlist, manacher, math, max, maxsubarraysum, min, modular, moserdebruijnsequence, nested, palindrome, pascal, password, permutation, pi, polybius, power, prime, pythagoras, queue, rsa, search, segmenttree, set, sort, stack, transposition, trie, xor
#Go #Algorithm
@Golang_google