Высокопроизводительная библиотека RCX (Remote Command Execution), применяющая паттерн проектирования Command к архитектуре клиент-сервер и поддерживающая функции reconnect и keepalive.
•Github
•Пример
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3🔥2
🟡 Дайджест полезных материалов из мира Golang за неделю
Почитать:
— Хакните HL и заработайте 125.000 рублей
- Шбалон стратегия в Go
— Используем Hashicorp Vault для хранения секретов
— От C до Go. Как Golang объединил лучшие черты своих предшественников
— Отранжированные и смешные: создаем систему выстраивания пользовательской ленты
— В Go 1.21 существенно расширяется стандартная библиотека
— Как протестировать код на Go с базой данных?
— Golang — архитектурный линтер
— Сравниваем скорость и оверхеды библиотек Deep Copy для Go
— Добавляем Starlark в приложение на Go
— Как построить систему, способную выдерживать нагрузку в 5 млн rps
— Understanding the Singleton Pattern in Go
— Bringing Go Templates everywhere
— Minimum Cost for Tickets LeetCode
— Using Golang for your AWS Lambda Functions
— Unlocking AI Potential: Integrating OpenAI API into GoLang Microservices
— Designing Microservices RESTful API using Go with CRUD Operations: A Practical Guide
— Actors and Workflows: Building a Customer Loyalty Program with Temporal
— S1E3: Mastering Concurrency with Worker Pool in GoLang: A Scalable Solution for Efficient Task Processing
— Inspection, on the go
— Resolving type parameter ambiguities
Посмотреть:
🌐 Уроки Golang с нуля /#20 - Методы (⏱ 6:54)
Хорошего дня!
@Golang_google
Почитать:
— Хакните HL и заработайте 125.000 рублей
- Шбалон стратегия в Go
— Используем Hashicorp Vault для хранения секретов
— От C до Go. Как Golang объединил лучшие черты своих предшественников
— Отранжированные и смешные: создаем систему выстраивания пользовательской ленты
— В Go 1.21 существенно расширяется стандартная библиотека
— Как протестировать код на Go с базой данных?
— Golang — архитектурный линтер
— Сравниваем скорость и оверхеды библиотек Deep Copy для Go
— Добавляем Starlark в приложение на Go
— Как построить систему, способную выдерживать нагрузку в 5 млн rps
— Understanding the Singleton Pattern in Go
— Bringing Go Templates everywhere
— Minimum Cost for Tickets LeetCode
— Using Golang for your AWS Lambda Functions
— Unlocking AI Potential: Integrating OpenAI API into GoLang Microservices
— Designing Microservices RESTful API using Go with CRUD Operations: A Practical Guide
— Actors and Workflows: Building a Customer Loyalty Program with Temporal
— S1E3: Mastering Concurrency with Worker Pool in GoLang: A Scalable Solution for Efficient Task Processing
— Inspection, on the go
— Resolving type parameter ambiguities
Посмотреть:
🌐 Уроки Golang с нуля /#20 - Методы (⏱ 6:54)
Хорошего дня!
@Golang_google
🔥22❤4👍4
This media is not supported in your browser
VIEW IN TELEGRAM
gophernotes позволяет использовать Go в интерактивном режиме в браузере, ноутбуке или десктопном приложении.
Можно использовать инструмент для создания и обмена документами, которые содержат код Go, уравнения, визуализации и пояснительный текст.
go install github.com/gopherdata/[email protected]
mkdir -p ~/.local/share/jupyter/kernels/gophernotes
cd ~/.local/share/jupyter/kernels/gophernotes
cp "$(go env GOPATH)"/pkg/mod/github.com/gopherdata/[email protected]/kernel/* "."
chmod +w ./kernel.json # in case copied kernel.json has no write permission
sed "s|gophernotes|$(go env GOPATH)/bin/gophernotes|" < kernel.json.in > kernel.json
▪ Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥3❤1
🦫Создание оркестратора для событийно-ориентированного приложения с Golang и RabbitMQ
Определение требований
Номера в гостинице бронируются по мере доступности.
• Создадим конвейер передачи запроса на бронирование номера по различным сервисам: резервирования, проверки, зачисления средств, бронирования.
Сервисам не нужно ждать ответа друг от друга — они даже не «знают», откуда запрос: у каждого сервиса только одна задача, и он хорошо с ней справляется. Это называется снижением связанности. Не нужно задумываться о причине запроса и ждать ответа других сервисов — используем все преимущества архитектуры микросервисов.
Сначала создадим блок-схему: показано в картинке.
Как видите, всего четыре этапа:
1. Проверка: в некоторых сценариях гостиницами обслуживаются не все желающие, например кому-то закрыт доступ или определенный номер резервируется только для конкретной группы. Это сложные правила, отделим их от веб-API.
2. Резервирование: одновременное бронирование номера несколькими людьми предотвращается глобальной блокировкой, подобной Redis.
3. Списание: зарезервировав номер, списываем средства.
4. Бронирование: завершив процесс списания, удаляем резервирование и бронируем номер.
Но в любом сервисе случаются ошибки.
Оркестрация — отличное подспорье для создания стабильного потока запросов, обработки ошибок и соответственных действий.
Действия требуются при очевидных ошибках:
• Недостаточно средств: удаляем резервирование.
• Ошибка при бронировании: возвращаем средства и удаляем резервирование.
Настройка RabbitMQ
Не знакомы с RabbitMQ? Посмотрите руководство для начинающих, хотя основы мы разберем.
RabbitMQ, как и Apache Kafka, — это приложение с отправителями и получателями сообщений. В приложении-чате отправителями сообщение отправляется, получателями — получается.
Как сообщению попасть к моему другу, а не случайному человеку в другой группе? Это сложная часть.
📌 Читать
@Golang_google
Определение требований
Номера в гостинице бронируются по мере доступности.
• Создадим конвейер передачи запроса на бронирование номера по различным сервисам: резервирования, проверки, зачисления средств, бронирования.
Сервисам не нужно ждать ответа друг от друга — они даже не «знают», откуда запрос: у каждого сервиса только одна задача, и он хорошо с ней справляется. Это называется снижением связанности. Не нужно задумываться о причине запроса и ждать ответа других сервисов — используем все преимущества архитектуры микросервисов.
Сначала создадим блок-схему: показано в картинке.
Как видите, всего четыре этапа:
1. Проверка: в некоторых сценариях гостиницами обслуживаются не все желающие, например кому-то закрыт доступ или определенный номер резервируется только для конкретной группы. Это сложные правила, отделим их от веб-API.
2. Резервирование: одновременное бронирование номера несколькими людьми предотвращается глобальной блокировкой, подобной Redis.
3. Списание: зарезервировав номер, списываем средства.
4. Бронирование: завершив процесс списания, удаляем резервирование и бронируем номер.
Но в любом сервисе случаются ошибки.
Оркестрация — отличное подспорье для создания стабильного потока запросов, обработки ошибок и соответственных действий.
Действия требуются при очевидных ошибках:
• Недостаточно средств: удаляем резервирование.
• Ошибка при бронировании: возвращаем средства и удаляем резервирование.
Настройка RabbitMQ
Не знакомы с RabbitMQ? Посмотрите руководство для начинающих, хотя основы мы разберем.
RabbitMQ, как и Apache Kafka, — это приложение с отправителями и получателями сообщений. В приложении-чате отправителями сообщение отправляется, получателями — получается.
Как сообщению попасть к моему другу, а не случайному человеку в другой группе? Это сложная часть.
📌 Читать
@Golang_google
👍20❤4🔥3
🗺 Google maps scraper
Это Golang парсер, на основе фреймворка scrapemate который позволяет удобно парсить данные из Google Maps.
Он автоматизирует просмотр веб-страниц и позволяет извлекать: имя, адрес, номер телефона, URL-адрес веб-сайта, рейтинг и количество отзывов для каждого выбранного вами места.
Все данные сохраняются в файл CSV для удобства анализа и обработки.
Содержит код для быстрого запуска с использованием Docker.
▪Github
@Golang_google
Это Golang парсер, на основе фреймворка scrapemate который позволяет удобно парсить данные из Google Maps.
Он автоматизирует просмотр веб-страниц и позволяет извлекать: имя, адрес, номер телефона, URL-адрес веб-сайта, рейтинг и количество отзывов для каждого выбранного вами места.
Все данные сохраняются в файл CSV для удобства анализа и обработки.
Содержит код для быстрого запуска с использованием Docker.
▪Github
@Golang_google
👍10❤5🔥2
Goblin позволяет использовать команду curl для установки бинарников Go без самого Go.
Инструмент позволяет устанавливать бинарные файлы Go, указывая желаемую версию и другие параметры.
Это особенно полезно, если вы хотите быстро установить библиотеку без установки всего Go SDK.
curl -sf https://goblin.run/<package>[@version] | [...options] sh
Ставь 👍, если пользовался, только старым Go Binaries.
•Проект
•Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21👎4❤1🔥1
🎨 Awesome Software Architecture
Полезный список статей и ресурсов для изучения и применения на практике архитектуры, паттернов и принципов программного обеспечения.
https://awesome-architecture.com/
@Golang_google
Полезный список статей и ресурсов для изучения и применения на практике архитектуры, паттернов и принципов программного обеспечения.
https://awesome-architecture.com/
@Golang_google
👍16🔥3❤2
🟡 Дайджест полезных материалов из мира Golang за неделю
Почитать:
— Expr: простой и мощный ЯП на Go
— Можем ли мы сохранить животных с помощью Golang?
— Из кладовщика в разработчики
— Понимание паттерна Options в Go
— Список популярных утечек с GitHub: Анализ репозиториев компаний
— How to build a URL Shortener with Go
— Channels in Go
— Golang Database Migration With Golang Migrate and Sqlc
— What are interfaces in Go?
— Introducing Goctopus: open-source, state-of-the-art GraphQL endpoint discovery & fingerprinting tool.
— Limitar Gorutinas Con Semáforos
— Pratique com APIs de verdade - ClimaTempo
— Non-blocking sequential processing in Go using infinite (unbounded) buffered channel
— Caching Git Repos: A Deep Dive into OpenSauced’s ‘Pizza Oven’ Service
— Testing with AWS SDK for Go V2 without interface mocks
❓Quiz
Посмотреть:
🌐 Уроки Golang с нуля /#21 - iota/ паттерн перечисления
🌐 Go 1.21 RELEASED!!!! | Prime News
🌐 Второй этап Golang собеса на 950к в месяц
Хорошего дня!
❤️ Лайк, если полезно
@Golang_google
Почитать:
— Expr: простой и мощный ЯП на Go
— Можем ли мы сохранить животных с помощью Golang?
— Из кладовщика в разработчики
— Понимание паттерна Options в Go
— Список популярных утечек с GitHub: Анализ репозиториев компаний
— How to build a URL Shortener with Go
— Channels in Go
— Golang Database Migration With Golang Migrate and Sqlc
— What are interfaces in Go?
— Introducing Goctopus: open-source, state-of-the-art GraphQL endpoint discovery & fingerprinting tool.
— Limitar Gorutinas Con Semáforos
— Pratique com APIs de verdade - ClimaTempo
— Non-blocking sequential processing in Go using infinite (unbounded) buffered channel
— Caching Git Repos: A Deep Dive into OpenSauced’s ‘Pizza Oven’ Service
— Testing with AWS SDK for Go V2 without interface mocks
❓Quiz
Посмотреть:
🌐 Уроки Golang с нуля /#21 - iota/ паттерн перечисления
🌐 Go 1.21 RELEASED!!!! | Prime News
🌐 Второй этап Golang собеса на 950к в месяц
Хорошего дня!
❤️ Лайк, если полезно
@Golang_google
❤17👍8🔥4🤩1
Pattern Matching библиотека для Go.
Pattern Matching - метод анализа и обработки структур данных, основанный на выполнении определённых инструкций в зависимости от совпадения исследуемого значения с тем или иным образцом, в качестве которого может использоваться константа, предикат, тип данных или иная поддерживаемая языком конструкция.
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤2🔥1
Shiori - это простой менеджер закладок, написанный на языке Go. Представляет собой простой клон Pocket. Его можно использовать как приложение командной строки или как веб-приложение.
Приложение распространяется в виде одного бинарного файла, что позволяет легко установить и использовать его.
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍3🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
gat — полноценная альтернатива cat, написанная на Go и с дополнительными функциями: подсветки синтаксиса на разных языках, поддержки разных тем и форматирования.
$ go install github.com/koki-develop/gat@latest
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33🔥7❤3🤔1
✔ Redis Explained
Глубокое техническое погружение во все тонкости Redis.
В статье рассматриваются различные топологии Redis, персистентность данных и форкинг процессов.
Отличная иллюстрированная статья для глубокого понимания Redis.
▪Читать
@Golang_google
Глубокое техническое погружение во все тонкости Redis.
В статье рассматриваются различные топологии Redis, персистентность данных и форкинг процессов.
Отличная иллюстрированная статья для глубокого понимания Redis.
▪Читать
@Golang_google
👍18🔥9❤5
Новая ORM библиотека для Go, поддерживающая PostgreSQL, MySQL. Вскоре авторы обещают добавить SQLite.
go get github.com/evantbyrne/rem
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23👎14🔥3❤2
Универсальный набор инструментов для сбора и управления OSINT-данными с удобным веб-интерфейсом.
Seekr позволяет объединить все ваши любимые OSINT-инструменты в одном. Бэкэнд написан на языке Go с использованием BadgerDB в качестве базы данных и предлагает широкий спектр возможностей для сбора, управления и анализа данных.
git clone https://github.com/seekr-osint/seekr
cd seekr
go generate ./...
tsc --project web
go run main.go
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4🔥2
Принцип работы реляционных баз данных. В этой статье рассказывается о том, как работают индексы и транзакции внутри реляционных баз данных.
Отличная иллюстрированная статья для глубокого понимания реляционных баз данных.
▪Читать
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍4❤2
In-memory SQL библиотека на Go sql/driver, которая хорошо подходит для тестирования.
go get github.com/proullon/ramsql
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤3🔥2