Telegram
Книги это свет.📚
💩2🔥1🤮1🎅1
This media is not supported in your browser
VIEW IN TELEGRAM
huh — инструмент для создания интерактивных форм с использованием библиотеки Bubble Tea, которая применяется для построения текстовых пользовательских интерфейсов (TUI) на языке Go!
Основная цель huh — упростить создание форм с различными полями ввода, обработкой ошибок и возможностями навигации между группами полей.
Инструмент предоставляет готовую структуру для построения форм, поддерживает настройку тем, горячих клавиш и адаптацию для экранных читалок (режим доступности). Также он содержит возможности для обработки данных форм и их интеграции в текстовые интерфейсы, что может быть полезно для CLI-приложений или других текстовых интерфейсов.
🔐 Лицензия: MIT
Github
Junior Вакансии Go тут
Основная цель huh — упростить создание форм с различными полями ввода, обработкой ошибок и возможностями навигации между группами полей.
Инструмент предоставляет готовую структуру для построения форм, поддерживает настройку тем, горячих клавиш и адаптацию для экранных читалок (режим доступности). Также он содержит возможности для обработки данных форм и их интеграции в текстовые интерфейсы, что может быть полезно для CLI-приложений или других текстовых интерфейсов.
🔐 Лицензия: MIT
Github
Junior Вакансии Go тут
🌐 Как ускорить API
#инфографика про основные методы улучшения производительности API
💬 Какой из методов вы уже используете? Делитесь в комментариях! 👇
Junior Вакансии Go тут
#инфографика про основные методы улучшения производительности API
💬 Какой из методов вы уже используете? Делитесь в комментариях! 👇
Junior Вакансии Go тут
Dynamic Notification System — это проект на Go, разработанный для создания масштабируемого и гибкого планировщика уведомлений!
Он поддерживает отправку уведомлений через различные каналы, такие как Slack, Email, SMS, Webhook и другие. Система позволяет легко добавлять новые платформы с помощью динамической архитектуры плагинов, не требуя перезапуска приложения.
🔐 Лицензия: MIT
Github
Junior Вакансии Go тут
Он поддерживает отправку уведомлений через различные каналы, такие как Slack, Email, SMS, Webhook и другие. Система позволяет легко добавлять новые платформы с помощью динамической архитектуры плагинов, не требуя перезапуска приложения.
🔐 Лицензия: MIT
Github
Junior Вакансии Go тут
❤1
Linux: эффективная многопроцессорность
Используем Go
Автор: Олег Цилюрик
Год издания: 2024
#go #linux #ru
Скачать книгу
Используем Go
Автор: Олег Цилюрик
Год издания: 2024
#go #linux #ru
Скачать книгу
👎4👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Zasper — это IDE, разработанная с нуля для поддержки массового параллелизма!
Она разработана на языке Go для обеспечения высокой параллельности и эффективности использования ресурсов. Zasper отличается низким потреблением памяти и процессора, позволяя работать с большими объемами данных на локальных машинах. Она доступен как в виде приложения Electron, так и как веб-приложение.
🔐 Лицензия: AGPL-3.0
Github
@golangprofi
Она разработана на языке Go для обеспечения высокой параллельности и эффективности использования ресурсов. Zasper отличается низким потреблением памяти и процессора, позволяя работать с большими объемами данных на локальных машинах. Она доступен как в виде приложения Electron, так и как веб-приложение.
🔐 Лицензия: AGPL-3.0
Github
@golangprofi
😱2
Техника проверки if got != want { t.Errorf(...) } в тестах Go — это простой и эффективный способ проверки значений, который полностью соответствует философии языка. Она не требует сторонних библиотек, остаётся прозрачной и легко читаемой, что особенно важно для минималистичного и понятного кода.
Благодаря своей простоте, этот подход легко масштабируется: от проверки одного значения до сложных сценариев с таблицами тестирования. Кроме того, стандартный вывод ошибок в Go обычно достаточно информативен, чтобы быстро понять, что пошло не так.
Согласны?
Junior Вакансии Go тут
Please open Telegram to view this post
VIEW IN TELEGRAM
mtlynch.io
if got, want: A Simple Way to Write Better Go Tests
There’s an excellent Go testing pattern that too few people know. I can teach it to you in 30 seconds.
Instead of writing Go tests like this:
// The common, unrefined way.
username := GetUser()
if username != "dummyUser" {
t.Errorf("unexpected username:…
Instead of writing Go tests like this:
// The common, unrefined way.
username := GetUser()
if username != "dummyUser" {
t.Errorf("unexpected username:…
👍6
📦 Пакет embed в Go
Если вы когда-либо работали с Go, то знаете, как важно уметь управлять статическими ресурсами. Пакет embed (представленный в Go 1.16) решает эту задачу элегантно: он позволяет встраивать файлы прямо в исполняемый бинарный файл, что делает приложение автономным и упрощает его развертывание.
💡 Зачем использовать embed?
С помощью директивы //go:embed вы можете встроить файлы (например, HTML, CSS, конфигурационные файлы или изображения) прямо в бинарный файл. Это исключает необходимость поставлять эти файлы отдельно, и ваши приложения становятся более компактными и безопасными.
🛠 Как это работает?
Вы указываете директиву //go:embed перед переменной.
Используете типы данных string для текстовых файлов, []byte для бинарных данных или embed.FS для работы с целыми директориями.
🚀 Пример использования:
В этом примере файл hello.txt встроен в приложение, и его содержимое доступно как строка.
Почему стоит использовать embed?
✅ Удобство развертывания: всё в одном файле — не нужно беспокоиться о поставке отдельных файлов.
✅ Безопасность: встроенные файлы не могут быть изменены после компиляции.
✅ Автономность: ваши приложения не зависят от внешних файлов и легко переносятся между окружениями.
Когда не стоит использовать embed?
❌ Когда нужно работать с динамически изменяющимися файлами (например, конфигурациями, которые могут меняться в процессе работы приложения).
❌ Для очень больших файлов, так как это увеличивает размер бинарника.
Чат с Go вакансиями
Если вы когда-либо работали с Go, то знаете, как важно уметь управлять статическими ресурсами. Пакет embed (представленный в Go 1.16) решает эту задачу элегантно: он позволяет встраивать файлы прямо в исполняемый бинарный файл, что делает приложение автономным и упрощает его развертывание.
С помощью директивы //go:embed вы можете встроить файлы (например, HTML, CSS, конфигурационные файлы или изображения) прямо в бинарный файл. Это исключает необходимость поставлять эти файлы отдельно, и ваши приложения становятся более компактными и безопасными.
🛠 Как это работает?
Вы указываете директиву //go:embed перед переменной.
Используете типы данных string для текстовых файлов, []byte для бинарных данных или embed.FS для работы с целыми директориями.
🚀 Пример использования:
package main
import (
"embed"
"fmt"
)
//go:embed hello.txt
var hello string
func main() {
fmt.Println(hello)
}
В этом примере файл hello.txt встроен в приложение, и его содержимое доступно как строка.
Почему стоит использовать embed?
Когда не стоит использовать embed?
Чат с Go вакансиями
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍4❤🔥1
Go + HTMX-шаблон, содержащий все Необходимые Инструменты для создания веб-приложений.
▪️ Github
#golang #htmx #javascript #programming #webdev
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6😨3🙊1
Kubernetes, Platform as a Service (PaaS) и CI/CD - это мощные решения, но иногда они оказываются сложнее, чем требуется вашему проекту. Если вам нравится управлять своим сервером, использование Airo может быть значительно дешевле и обеспечит больший контроль над техническими деталями вашего проекта.
Он предоставляет удобный интерфейс и расширяемые возможности.
▪️ Простота использования: Благодаря интуитивно понятному интерфейсу, начать работать с Airo можно без длительного изучения сложной документации.
▪️ Гибкость и настройка: Инструмент легко адаптируется под специфические требования любого проекта, позволяя интегрировать дополнительные модули и плагины по мере необходимости.
▪️ Оптимизированный код Airo обеспечивает быструю обработку задач, что особенно важно при работе с большими объемами данных или в условиях сжатых сроков разработки.
▪️ По сравнению с аналогичными инструментами, Airo предлагает оптимальное сочетание скорости, удобства и расширяемости, что позволяет разработчикам работать эффективнее и достигать лучших результатов.
git clone https://github.com/yourusername/airo.git
cd airo
make install
airo deploy
▪️ GitHub: https://github.com/bypirob/airo
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Please open Telegram to view this post
VIEW IN TELEGRAM
👎3❤1👍1
👣 Высокопроизводительное кэширование с помощью Redis и Go
Go - отличный язык для создания высокопроизводительных веб-приложений, а высокопроизводительные веб-приложения часто требуют централизованного кэширования.
Стандартом де-факто для централизованного кэширования является Redis, но, популярные сегодня библиотеки Go не поддерживают потоковую передачу данных, эффективных с точки зрения памяти.
Вместо этого они предлагают
Этот паттерн работает хорошо, если вы кэшируете небольшие объекты, но если вы кэшируете объекты размером более 1 кб, []byte-ориентированные API работют не так хорошо.
В протоколе Redis нет ничего такого, что мешало бы создать потоковый API. Поэтому пердставляем redjet, библиотеку Redis, ориентированную на производительность.
С помощью redjet вы можете написать приведенный выше код следующим образом:
Код стал проще и эффективнее.
▪️Github
▪️Читать дальше
▪️Бенчмарки
@golangprofi
Go - отличный язык для создания высокопроизводительных веб-приложений, а высокопроизводительные веб-приложения часто требуют централизованного кэширования.
Стандартом де-факто для централизованного кэширования является Redis, но, популярные сегодня библиотеки Go не поддерживают потоковую передачу данных, эффективных с точки зрения памяти.
Вместо этого они предлагают
[]byte API,
с которыми вы взаимодействуете следующим образом:// В этом коде используется https://github.com/redis/go-redis, но те же
// ограничения действуют для Rueidis и Redigo.
func redisHandler(w http.ResponseWriter, r *http.Request) {
ctx := context.Background()
// Extract key from RequestURI
key := strings.TrimLeft(r.RequestURI, "/")
// Get the value from Redis as a byte slice
val, err := rdb.Get(ctx, key).Bytes()
if err == redis.Nil {
http.Error(w, "Key not found in Redis", http.StatusNotFound)
return
} else if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
_, err = w.Write(val)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
}
Этот паттерн работает хорошо, если вы кэшируете небольшие объекты, но если вы кэшируете объекты размером более 1 кб, []byte-ориентированные API работют не так хорошо.
В протоколе Redis нет ничего такого, что мешало бы создать потоковый API. Поэтому пердставляем redjet, библиотеку Redis, ориентированную на производительность.
С помощью redjet вы можете написать приведенный выше код следующим образом:
func redisHandler(w http.ResponseWriter, r *http.Request) {
ctx := context.Background()
// Извлечение ключа из RequestURI
key := strings.TrimLeft(r.RequestURI, "/")
// Передаем значение непосредственно из Redis в ответ.
_, err := rdb.Command("GET", key).WriteTo(w)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
}
Код стал проще и эффективнее.
go get github.com/coder/redjet@latest
▪️Github
▪️Читать дальше
▪️Бенчмарки
@golangprofi
GitHub
GitHub - redis/go-redis: Redis Go client
Redis Go client. Contribute to redis/go-redis development by creating an account on GitHub.
👍5🤔2❤🔥1👎1👌1
📚Библиотеки и инструменты для создания и отправки электронной почты на GO.
▪️chasquid - SMTP-сервер, написанный на Go.
▪️douceur - CSS-инлайнер для ваших HTML-писем.
▪️email - Надежная и гибкая библиотека работы с электронной почтой на Go.
▪️email-verifier - Библиотека Go для проверки электронной почты без отправки писем.
▪️go-dkim - Библиотека DKIM для подписи и проверки электронной почты.
▪️go-email-normalizer - Библиотека Golang для нормализации электронной почты.
▪️go-email-validator - Модульный валидатор электронной почты для проверки синтаксиса, содержания, smtp и т. д..
▪️go-imap - Библиотека IMAP для клиентов и серверов.
▪️go-mail - Простая библиотека Go для отправки писем на Go.
▪️go-message - Потоковая библиотека для Internet Message Format и почтовых сообщений.
▪️go-premailer - Встраиваемая стилизация для HTML-почты в Go.
▪️go-simple-mail - Очень простой пакет для отправки электронной почты с SMTP Keep Alive и двумя таймаутами: Connect и Send.
▪️Hectane - Легкий SMTP-клиент, предоставляющий API.
▪️hermes - Пакет Golang, генерирующий HTML-письма.
▪️Maddy - Почтовый сервер "все в одном" (SMTP, IMAP, DKIM, DMARC, MTA-STS, DANE).
▪️mailchain - Отправка зашифрованных писем на адреса блокчейна, написанная на Go.
▪️mailgun-go - Библиотека Go для отправки почты с помощью Mailgun API.
▪️MailHog - тестирование электронной почты и SMTP с веб-интерфейсом и API.
▪️Mailpit - Инструмент тестирования электронной почты и SMTP для разработчиков.
▪️mailx - Mailx - это библиотека, которая упрощает отправку электронной почты по SMTP. Она является расширением стандартной библиотеки golang net/smtp.
▪️SendGrid - Go-библиотека SendGrid для отправки электронной почты.
▪️smtp - Машина состояний протокола SMTP-сервера.
▪️smtpmock - Легкий настраиваемый многопоточный тестовый SMTP-сервер. Имитирует любое поведение SMTP в вашей тестовой среде.
▪️truemail-go - Настраиваемый валидатор/верификатор электронной почты на языке Golang. Проверяет почту через Regex, DNS, SMTP и многое другое.
👉 Golang Юниор | #golang
▪️chasquid - SMTP-сервер, написанный на Go.
▪️douceur - CSS-инлайнер для ваших HTML-писем.
▪️email - Надежная и гибкая библиотека работы с электронной почтой на Go.
▪️email-verifier - Библиотека Go для проверки электронной почты без отправки писем.
▪️go-dkim - Библиотека DKIM для подписи и проверки электронной почты.
▪️go-email-normalizer - Библиотека Golang для нормализации электронной почты.
▪️go-email-validator - Модульный валидатор электронной почты для проверки синтаксиса, содержания, smtp и т. д..
▪️go-imap - Библиотека IMAP для клиентов и серверов.
▪️go-mail - Простая библиотека Go для отправки писем на Go.
▪️go-message - Потоковая библиотека для Internet Message Format и почтовых сообщений.
▪️go-premailer - Встраиваемая стилизация для HTML-почты в Go.
▪️go-simple-mail - Очень простой пакет для отправки электронной почты с SMTP Keep Alive и двумя таймаутами: Connect и Send.
▪️Hectane - Легкий SMTP-клиент, предоставляющий API.
▪️hermes - Пакет Golang, генерирующий HTML-письма.
▪️Maddy - Почтовый сервер "все в одном" (SMTP, IMAP, DKIM, DMARC, MTA-STS, DANE).
▪️mailchain - Отправка зашифрованных писем на адреса блокчейна, написанная на Go.
▪️mailgun-go - Библиотека Go для отправки почты с помощью Mailgun API.
▪️MailHog - тестирование электронной почты и SMTP с веб-интерфейсом и API.
▪️Mailpit - Инструмент тестирования электронной почты и SMTP для разработчиков.
▪️mailx - Mailx - это библиотека, которая упрощает отправку электронной почты по SMTP. Она является расширением стандартной библиотеки golang net/smtp.
▪️SendGrid - Go-библиотека SendGrid для отправки электронной почты.
▪️smtp - Машина состояний протокола SMTP-сервера.
▪️smtpmock - Легкий настраиваемый многопоточный тестовый SMTP-сервер. Имитирует любое поведение SMTP в вашей тестовой среде.
▪️truemail-go - Настраиваемый валидатор/верификатор электронной почты на языке Golang. Проверяет почту через Regex, DNS, SMTP и многое другое.
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - aymerick/douceur: A simple CSS parser and inliner in Go
A simple CSS parser and inliner in Go. Contribute to aymerick/douceur development by creating an account on GitHub.
❤3👍2👌1
This media is not supported in your browser
VIEW IN TELEGRAM
Enola Holmes
Это усовершенствованная версия утилиты Sherlock и современный CLI-инструмент, написанный на Go, который позволяет находить учетные записи в социальных сетях по имени пользователя.
go install github.com/theyahya/enola/cmd/enola@latest
▪️ Github
👉 Golang Юниор | #golang
Это усовершенствованная версия утилиты Sherlock и современный CLI-инструмент, написанный на Go, который позволяет находить учетные записи в социальных сетях по имени пользователя.
go install github.com/theyahya/enola/cmd/enola@latest
▪️ Github
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚1
Подборка книг по Go на русском языке.
Скачивайте и читайте.
Программирование на языке Go
Автор: Саммерфильд Марк
Go. Рецепты программирования
Автор: Аарон Торрес
Black Hat Go
Автор: Том Стил
Облачный Go
Автор: Титмус М. А.
Практический Go
Автор: Амит Саха
Golang для профи
Автор: Михалис Цукалос
#подборка #ru
Скачивайте и читайте.
Программирование на языке Go
Автор: Саммерфильд Марк
Go. Рецепты программирования
Автор: Аарон Торрес
Black Hat Go
Автор: Том Стил
Облачный Go
Автор: Титмус М. А.
Практический Go
Автор: Амит Саха
Golang для профи
Автор: Михалис Цукалос
#подборка #ru
❤10