Forwarded from Код и Капуста
Отличная статья с заментками по оптимизации HTTP запросов в #golang. Бонусом - кастомная реализация HTTP библиотеки
How I sent 500 million HTTP requests to 2.5 million hosts
https://www.moczadlo.com/2024/how-i-sent-500-million-http-requests-in-under-24h
Реализация https://github.com/vidocsecurity/rawfasthttp
How I sent 500 million HTTP requests to 2.5 million hosts
https://www.moczadlo.com/2024/how-i-sent-500-million-http-requests-in-under-24h
Реализация https://github.com/vidocsecurity/rawfasthttp
👍2🔥2
Forwarded from Код и Капуста
Forwarded from Код и Капуста
100go.co - краткое содержание книги 100 Go Mistakes and How to Avoid Them в удобном формате
#golang
Спасибо за ссылку!
#golang
Спасибо за ссылку!
👍3
Forwarded from Код и Капуста
Практический туториал по написанию предохранителя на #golang
https://rednafi.com/go/circuit_breaker/
Кстати, такие полезные алгоритмы хорошо описаны в книге “Облачный GO” https://2my.site/hTEh0wQ
https://rednafi.com/go/circuit_breaker/
Кстати, такие полезные алгоритмы хорошо описаны в книге “Облачный GO” https://2my.site/hTEh0wQ
🔥3
Forwarded from 🇺🇦 Go performance channel (Oleg)
Go Production Performance Gotcha - GOMAXPROCS
https://metoro.io/blog/go-production-performance-gotcha-gomaxprocs #golang
https://metoro.io/blog/go-production-performance-gotcha-gomaxprocs #golang
metoro.io
Optimizing Go Performance with GOMAXPROCS
Learn how to solve unexpected performance issues in Go applications by correctly configuring the GOMAXPROCS parameter for optimal CPU usage in containers
👍3
Forwarded from Код и Капуста
Как-то я упустил этот замечательный проект и совсем ничего не писал про него этом канале
Temporal - это система, которая позволяет запускать долгоиграющие задачи максимально просто и прозрачно
Это что-то вроде cadenceworkflow но более человеческое
Есть возможность работать с клаудом или селф-хостед версией
Сайт https://temporal.io/
А вот набор статей про использование Temporal для обработки заказов
https://hungaikev.in/e-commerce-platform/part-1-setting-up-the-foundation/
Ах, да! Написано на #golang но клиенты есть для PHP, Java, Python, TypeScript и .Net
И еще бонусом видео про Temporal https://www.youtube.com/watch?v=wIpz4ioK0gI
Temporal - это система, которая позволяет запускать долгоиграющие задачи максимально просто и прозрачно
Это что-то вроде cadenceworkflow но более человеческое
Есть возможность работать с клаудом или селф-хостед версией
Сайт https://temporal.io/
А вот набор статей про использование Temporal для обработки заказов
https://hungaikev.in/e-commerce-platform/part-1-setting-up-the-foundation/
Ах, да! Написано на #golang но клиенты есть для PHP, Java, Python, TypeScript и .Net
И еще бонусом видео про Temporal https://www.youtube.com/watch?v=wIpz4ioK0gI
Forwarded from GitHub'ненько
jira-cli.gif
33.2 MB
jira-cli
JiraCLI is an interactive command line tool for Atlassian Jira that will help you avoid Jira UI to some extent. This tool may not be able to do everything, but it has all the essential features required to improve your day-to-day workflow with Jira.
🔥 Feature-rich interactive Jira command line.
#jira #cli #golang
https://github.com/ankitpokhrel/jira-cli
JiraCLI is an interactive command line tool for Atlassian Jira that will help you avoid Jira UI to some extent. This tool may not be able to do everything, but it has all the essential features required to improve your day-to-day workflow with Jira.
🔥 Feature-rich interactive Jira command line.
#jira #cli #golang
https://github.com/ankitpokhrel/jira-cli
# List recent issues
$ jira issue list
# List issues created in last 7 days
$ jira issue list --created -7d
# List issues in status "To Do"
$ jira issue list -s"To Do"
# List recent issues in plain mode
$ jira issue list --plain
# List issue in the same order as you see in the UI
$ jira issue list --order-by rank --reverse
# You can execute raw JQL within a given project context using `--jql/-q` option.
# For instance, the following command will list issues in the current project whose
# summary has a word cli.
$ jira issue list -q "summary ~ cli"
🔥6❤2
Forwarded from Код и Капуста
Обсервабилити
Неплохой гайд по обсервабилити Go приложений
#golang
https://www.lucavall.in/blog/opentelemetry-a-guide-to-observability-with-go
Неплохой гайд по обсервабилити Go приложений
#golang
https://www.lucavall.in/blog/opentelemetry-a-guide-to-observability-with-go
Forwarded from Код и Капуста
gRPC
Небольшой туториал как использовать gRPC в кубере
#golang
https://nyadgar.com/posts/scaling-grpc-with-kubernetes-using-go/
Небольшой туториал как использовать gRPC в кубере
#golang
https://nyadgar.com/posts/scaling-grpc-with-kubernetes-using-go/
Forwarded from GitHub Open Sauce
golangci/golangci-lint
Быстрый запускатель линтеров для Go
#golang
https://github.com/golangci/golangci-lint
Быстрый запускатель линтеров для Go
#golang
https://github.com/golangci/golangci-lint
Forwarded from Код и Капуста
Slog
Логирование в Go сильно эволюционировало. Долгое время мы использовали либо простенький стандартный log, либо подключали крутые сторонние библиотеки вроде zap и zerolog.
Но в Go 1.21 всё изменилось — появился log/slog, встроенный инструмент для структурированного логирования.
slog — это не просто очередной логгер. Это новый стандарт с удобным API, который делает логирование гибким и мощным.
В этой статье разберём slog от азов до продвинутых фишек и научимся делать логи по-настоящему полезными для отладки и мониторинга.
#golang
https://kodikapusta.ru/news/51u4-slog
Логирование в Go сильно эволюционировало. Долгое время мы использовали либо простенький стандартный log, либо подключали крутые сторонние библиотеки вроде zap и zerolog.
Но в Go 1.21 всё изменилось — появился log/slog, встроенный инструмент для структурированного логирования.
slog — это не просто очередной логгер. Это новый стандарт с удобным API, который делает логирование гибким и мощным.
В этой статье разберём slog от азов до продвинутых фишек и научимся делать логи по-настоящему полезными для отладки и мониторинга.
#golang
https://kodikapusta.ru/news/51u4-slog
👍3👎1🔥1
Forwarded from GitHub Open Sauce
9001/copyparty
Всё-в-одном файловом сервере: быстрые загрузки с докачкой, удаление дублей, WebDAV/FTP/TFTP, автоматическое обнаружение, медиа-каталог и превью - один компактный файл без сторонних компонентов
#golang
https://github.com/9001/copyparty
Всё-в-одном файловом сервере: быстрые загрузки с докачкой, удаление дублей, WebDAV/FTP/TFTP, автоматическое обнаружение, медиа-каталог и превью - один компактный файл без сторонних компонентов
#golang
https://github.com/9001/copyparty
👍3
Forwarded from GitHub Open Sauce
snail007/goproxy
Высокопроизводительный сервер, реализованный на Golang, который работает как HTTP(S) и SOCKS5 прокси, а также поддерживает проксирование для WEBSOCKET, TCP и UDP. В его функционал входит организация цепочек прокси-серверов (chain-style), проброс NAT между различными локальными сетями, перенаправление TCP и UDP портов, а также туннелирование через SSH
#golang
https://github.com/snail007/goproxy
Высокопроизводительный сервер, реализованный на Golang, который работает как HTTP(S) и SOCKS5 прокси, а также поддерживает проксирование для WEBSOCKET, TCP и UDP. В его функционал входит организация цепочек прокси-серверов (chain-style), проброс NAT между различными локальными сетями, перенаправление TCP и UDP портов, а также туннелирование через SSH
#golang
https://github.com/snail007/goproxy
👍4
Forwarded from GitHub Open Sauce
quii/learn-go-with-tests
Изучайте Go с помощью разработки через тестирование (TDD)
#golang
https://github.com/quii/learn-go-with-tests
Изучайте Go с помощью разработки через тестирование (TDD)
#golang
https://github.com/quii/learn-go-with-tests
👍5
Forwarded from GitHub Open Sauce
ddddddO/packemon
Packemon — инструмент TUI для отправки пакетов с произвольным вводом и мониторинга пакетов на любых сетевых интерфейсах (по умолчанию: eth0)
#golang
https://github.com/ddddddO/packemon
Packemon — инструмент TUI для отправки пакетов с произвольным вводом и мониторинга пакетов на любых сетевых интерфейсах (по умолчанию: eth0)
#golang
https://github.com/ddddddO/packemon
Forwarded from GitHub Open Sauce
Notifuse/notifuse
Notifuse - это современная самохостируемая платформа для электронной рассылки, которая позволяет отправлять новостные рассылки и транзакционные письма по значительно более низкой стоимости. Построенная на Go и React, она предоставляет функции корпоративного уровня в сочетании с гибкостью программного обеспечения с открытым исходным кодом.
#golang
https://github.com/Notifuse/notifuse
Notifuse - это современная самохостируемая платформа для электронной рассылки, которая позволяет отправлять новостные рассылки и транзакционные письма по значительно более низкой стоимости. Построенная на Go и React, она предоставляет функции корпоративного уровня в сочетании с гибкостью программного обеспечения с открытым исходным кодом.
#golang
https://github.com/Notifuse/notifuse
Forwarded from GitHub Open Sauce
litmuschaos/litmus
LitmusChaos — это платформа с открытым исходным кодом для инженерии хаоса, которая позволяет командам выявлять уязвимости и потенциальные сбои в инфраструктуре путём контролируемого проведения хаос-тестов.
#golang
https://github.com/litmuschaos/litmus
LitmusChaos — это платформа с открытым исходным кодом для инженерии хаоса, которая позволяет командам выявлять уязвимости и потенциальные сбои в инфраструктуре путём контролируемого проведения хаос-тестов.
#golang
https://github.com/litmuschaos/litmus
Forwarded from Код и Капуста
Конструктор рейт лимитеров
Обычно рейт лимитеры состоят из кучи правил, которые нужно как-то комбинировать, и всё быстро превращается в бардак. Поэтому автор задумал сделать rate limiter, который легко собирается как конструктор.
Что значит гибкость для рейт лимитера
- Правильные примитивы - базовые кирпичики, из которых можно собрать что угодно
- Чёткая композиция - чтобы сочетания правил не ломали мозг.
Читаем, просвещаемся
#golang
https://kodikapusta.ru/news/27ld-konstruktor-reit-limiterov
Обычно рейт лимитеры состоят из кучи правил, которые нужно как-то комбинировать, и всё быстро превращается в бардак. Поэтому автор задумал сделать rate limiter, который легко собирается как конструктор.
Что значит гибкость для рейт лимитера
- Правильные примитивы - базовые кирпичики, из которых можно собрать что угодно
- Чёткая композиция - чтобы сочетания правил не ломали мозг.
Читаем, просвещаемся
#golang
https://kodikapusta.ru/news/27ld-konstruktor-reit-limiterov
Forwarded from Код и Капуста
Отладка с pprof и k6
Про pprof наверняка все знают. В статье автор еще раз показывает как им пользоваться, но прикольно что он использует k6 для нагрузки своего сервиса. k6 - это тулза от разработчиков графаны, скрипты для нагрузки можно писать на js. А для ограничения ресурсов CPU используется cgroup - это интересный подход для локального нагрузочного тестирования
#golang
https://kodikapusta.ru/news/42i9-otladka-s-pprof-i-k6
Про pprof наверняка все знают. В статье автор еще раз показывает как им пользоваться, но прикольно что он использует k6 для нагрузки своего сервиса. k6 - это тулза от разработчиков графаны, скрипты для нагрузки можно писать на js. А для ограничения ресурсов CPU используется cgroup - это интересный подход для локального нагрузочного тестирования
#golang
https://kodikapusta.ru/news/42i9-otladka-s-pprof-i-k6