👣 Почему сообщество #golang старается не использовать сторонние библиотеки?
Некоторые причины исторические (до
Безопасность - когда вы добавляете зависимость, вы добавляете разработчика (или команду разработчиков), с которым вы никогда не взаимодействовали, в качестве участника вашего проекта. Вы должны проанализировать библиотеку, как если бы она была написана собственными силами, и убедиться, что она соответствует вашим задачам и не несет никакого риска.
Сложность в поддержке - теперь вы и ваша команда должны поддерживать добавленную библиотеку в актуальном состоянии.
Воспроизводимые сборки - Вы можете добиться этого с помощью библиотек сторонних производителей, но чем меньше вам придется об этом беспокоиться, тем лучше.
Просто нет необходимости - Это одна из лучших причин. В Go есть замечательная стандартная библиотека, и вы можете добиться очень многого, используя ее.
Так когда же следует обращаться к библиотеке?
Если то, что вы хотите реализовать, является функционально сложным, имеет приемущества от поддержки сообществом и берется из надежного источника, то использование библиотеки может быть хорошим вариантом.
Примерами библиотек, которые, на мой взгляд, являются достойными для внимания:
- Библиотеки шин сообщений (Kafka, RabbitMQ и т.д.)
- Библиотеки БД (Mongo, Postgres).
- Сложные криптографические вещи алгоритмы, которые не поддерживаются стандартной библиотекой.
👇 Напишите в комментаряих о ваших любимых сторонних библиотеках.
@golangprofi
Некоторые причины исторические (до
Go 1.11
в Go была довольно печальная история управления зависимостями), некоторые культурные (сообщество Go пропагандирует простоту и самодостаточность), но некоторые из них, я бы сказал, являются хорошей практикой независимо от используемого языка.Безопасность - когда вы добавляете зависимость, вы добавляете разработчика (или команду разработчиков), с которым вы никогда не взаимодействовали, в качестве участника вашего проекта. Вы должны проанализировать библиотеку, как если бы она была написана собственными силами, и убедиться, что она соответствует вашим задачам и не несет никакого риска.
Сложность в поддержке - теперь вы и ваша команда должны поддерживать добавленную библиотеку в актуальном состоянии.
Воспроизводимые сборки - Вы можете добиться этого с помощью библиотек сторонних производителей, но чем меньше вам придется об этом беспокоиться, тем лучше.
Просто нет необходимости - Это одна из лучших причин. В Go есть замечательная стандартная библиотека, и вы можете добиться очень многого, используя ее.
Так когда же следует обращаться к библиотеке?
Если то, что вы хотите реализовать, является функционально сложным, имеет приемущества от поддержки сообществом и берется из надежного источника, то использование библиотеки может быть хорошим вариантом.
Примерами библиотек, которые, на мой взгляд, являются достойными для внимания:
- Библиотеки шин сообщений (Kafka, RabbitMQ и т.д.)
- Библиотеки БД (Mongo, Postgres).
- Сложные криптографические вещи алгоритмы, которые не поддерживаются стандартной библиотекой.
👇 Напишите в комментаряих о ваших любимых сторонних библиотеках.
@golangprofi
❤2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
👣 Roboden-game
Создать RTS, которая бы хорошо работала в браузере с помощью #golang, сложная задача, но возможная.
Игра написана с использованием движка Ebitengine и даже доступна в Steam.
•Github
•Проект
#ebitengine #gamedev #golang
Создать RTS, которая бы хорошо работала в браузере с помощью #golang, сложная задача, но возможная.
Игра написана с использованием движка Ebitengine и даже доступна в Steam.
•Github
•Проект
#ebitengine #gamedev #golang
👍12
⚡️ Выпущен Go-HTML 1.0
Go-HTML предоставляет платформу для программирования интерактивных компонентов пользовательского интерфейса с использованием Go (вместо JavaScript) для веб-приложений.
##golang #htmx #javascript #программирование #релиз #webdev
Go-HTML может использовать компоненты Templ.
- https://go.dev/
- https://htmx.org/
- https://templ.guide/
▪️ Github
👉 Golang Юниор | #golang
Go-HTML предоставляет платформу для программирования интерактивных компонентов пользовательского интерфейса с использованием Go (вместо JavaScript) для веб-приложений.
##golang #htmx #javascript #программирование #релиз #webdev
Go-HTML может использовать компоненты Templ.
- https://go.dev/
- https://htmx.org/
- https://templ.guide/
▪️ Github
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2👎2
Будет полезно начинающим гоферам;
здесь наглядно показывается, как работают слайсы, какие они имеют методы и как взаимодействуют с разными функциями
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2
Проект чистой архитектуры Go Backend с Chi (стандартный net/http), MongoDB, JWT Authentication Middleware, Test и Docker.
#golang
▪️Github
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👎2❤1
Масштабируемый сервис транскодирования (конвертация видеофайлов из одного кодека или формата в другой.) видео, созданный с использованием Golang, Gin, AWS, Pulumi, MongoDB и Redis.
git clone https://github.com/yourusername/video-transcoding-service.git
cd video-transcoding-service
#golang
▪️ Github
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
▪️Github
Please open Telegram to view this post
VIEW IN TELEGRAM
👎4👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Легкий инструмент на GO для проверки электронной почты с помощью синтаксической проверки и проверки домена.
#golang #email
git clone https://github.com/zeeshanahmad0201/email_verification_tool.git
▪️ Github
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤🔥1❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Быстрый клиент Golang Redis, который выполняет автоматическую конвейерную обработку и поддерживает кэширование на стороне клиента.
package main
import (
"context"
"github.com/redis/rueidis"
)
func main() {
client, err := rueidis.NewClient(rueidis.ClientOption{InitAddress: []string{"127.0.0.1:6379"}})
if err != nil {
panic(err)
}
defer client.Close()
ctx := context.Background()
// SET key val NX
err = client.Do(ctx, client.B().Set().Key("key").Value("val").Nx().Build()).Error()
// HGETALL hm
hm, err := client.Do(ctx, client.B().Hgetall().Key("hm").Build()).AsStrMap()
}
▪️ Github
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🎉2❤1🗿1
Goravel - мощный и масштабируемый фреймворк, созданный для быстрой и удобной разработки веб-приложений на языке Go в стиле легендарного Laravel.
Фреймворк вдохновлен популярным фреймворком Laravel, что делает его очень понятным для PHP-разработчиков, начинающим работать с Go.
Goravel предлагает широкий спектр встроенных возможностей, включая управление конфигурацией, HTTP-обработку, аутентификацию, авторизацию, ORM, миграции, логирование, кэширование и многое другое.
Благодаря своей гибкости и набору готовых решений, Goravel позволяет значительно ускорить процесс разработки веб-приложений.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁17🤡6👍2🤮2
—
go get github.com/caddyserver/certmagic
Certmagic позволяет полностью управлять выдачей и обновлением TLS-сертификатов, для этого нужно добавить в приложение буквально 1 строку:
certmagic.HTTPS([]string{"example.com"}, mux)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Carbon - A Lightweight In-Memory Cache for High Throughput
Свежая легкая и высокопроизводительная библиотека кэширования в оперативной памяти для Go, разработанная с учетом требований API, требующих быстрого и эффективного кэширования данных.
#golang
Github
@golangprofi
Свежая легкая и высокопроизводительная библиотека кэширования в оперативной памяти для Go, разработанная с учетом требований API, требующих быстрого и эффективного кэширования данных.
#golang
go get github.com/scott-mescudi/carbon
Github
@golangprofi
Golang + Gin + Postgres + Docker + gRPC + NGINX
Реализация gRPC на основе Go с Gin, PostgreSQL, Docker и NGINX
#golang
Github
Чат с Go вакансиями
Реализация gRPC на основе Go с Gin, PostgreSQL, Docker и NGINX
#golang
go install github.com/golang/mock/mockgen@v1.6.0
Github
Чат с Go вакансиями
👍5❤2👎1
Go + HTMX-шаблон, содержащий все Необходимые Инструменты для создания веб-приложений.
▪️ Github
#golang #htmx #javascript #programming #webdev
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
📚Библиотеки и инструменты для создания и отправки электронной почты на 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
Вакансии для Golang-разработчиков за последние 14 дней:
✓ Go Developer. Удалёнка (РФ, РБ), 70–100 т.р.
✓ Golang Developer. Удалёнка (РФ), 100–140 т.р.
✓ C++/Go-разработчик. Гибрид (Новосибирск)
✓ Golang Developer. Удалёнка (РФ), 150–250 т.р.
✓ Golang Developer. Гибрид (Москва), 200–450 т.р.
✓ Golang разработчик. Гибрид (Москва), ЗП обсуждается
✓ Golang Developer. Гибрид/Офис (Тбилиси), 400–800 т.р.
#подборка #golang #go
✓ Go Developer. Удалёнка (РФ, РБ), 70–100 т.р.
✓ Golang Developer. Удалёнка (РФ), 100–140 т.р.
✓ C++/Go-разработчик. Гибрид (Новосибирск)
✓ Golang Developer. Удалёнка (РФ), 150–250 т.р.
✓ Golang Developer. Гибрид (Москва), 200–450 т.р.
✓ Golang разработчик. Гибрид (Москва), ЗП обсуждается
✓ Golang Developer. Гибрид/Офис (Тбилиси), 400–800 т.р.
#подборка #golang #go
🔥2
Media is too big
VIEW IN TELEGRAM
Go (или Golang) — современный язык программирования от Google, который сочетает в себе простоту синтаксиса, высокую производительность и надёжную многопоточность. Ниже собрана хронология ключевых этапов его эволюции.
1. Зачатки идеи (2007)
- Место и время: Google, 2007 год
- Инициаторы: Роберт Гриземер, Роб Пайк и Кен Томпсон
- Мотивация:
- Устранить избыточную сложность C++ и Java
- Сохранить статическую типизацию и скорость компиляции
- Сделать параллелизм «из коробки» через модель CSP (Communicating Sequential Processes)
2. Первый публичный релиз (2009)
- 10 ноября 2009
- Запуск официального сайта [golang.org]
- Публикация открытого исходного кода
- Появление интерактивного «Tour of Go» для знакомства с основами языка
3. Go 1.0 — стабилизация и гарантия совместимости (2012)
- 28 марта 2012
- Выход Go 1.0 с обещанием: любая программа, скомпилированная под Go 1.0, будет работать без изменений во всех версиях Go 1.x
- Это решение укрепило доверие сообщества и заложило фундамент для расширения экосистемы
4. Ключевые промежуточные релизы
- Go 1.1 (13 мая 2013)
- Оптимизации компиляции и улучшения runtime
- Go 1.5 (19 августа 2015)
- Полный перенос компилятора и инструментов на Go (убрана зависимость от C)
- Существенно улучшен сборщик мусора
- Go 1.6 (17 февраля 2016)
- Ускорение стандартной библиотеки и улучшенные средства отладки
5. Gopher — талисман и бренд
- 2009: дизайнер Рене Френч создаёт милого Gopher-грызуна
- Ноябрь 2016: выпуск фирменных шрифтов Go и Go Mono
- Апрель 2018: обновлён логотип, подчёркивающий динамику и простоту
6. Система модулей (Go 1.11–1.13)
- Go 1.11 (август 2018): официальная поддержка модулей для управления зависимостями
- Go 1.13 (середина 2019): модули становятся режимом по умолчанию, заменяя устаревший GOPATH
7. Появление обобщённостей (generics) в Go 1.18
- 15 марта 2022
- Введение Generics — долгожданной возможности писать типобезопасный и переиспользуемый код
- Встроенные инструменты для фуззинга
- Новый режим workspace для одновременной работы над несколькими модулями
8. Современное состояние (Go 1.24 и далее)
- Апрель 2025: выход Go 1.24 с новыми оптимизациями компилятора, улучшениями runtime и расширенными инструментами профилирования
- Применение: Docker, Kubernetes, микросервисные архитектуры, высоконагруженные системы
- Сообщество: десятки тысяч публикаций, конференций GopherCon по всему миру, активная разработка экосистемы
> Go прошёл путь от внутреннего эксперимента Google до одного из самых популярных языков для инфраструктурного и высокопроизводительного ПО. Его главные преимущества — лаконичность, надёжность и встроенный параллелизм — делают Go незаменимым инструментом в эпоху многопроцессорных систем.
https://youtube.com/shorts/-lkVgKwrPM4?feature=share
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Вакансии для Golang-разработчиков за последние 14 дней:
✓ Junior Golang Developer. Удалёнка, 75–100 т.р.
✓ Golang Developer. Удалёнка, 100–140 т.р.
✓ Go Developer. Удалёнка
✓ Программист FullStack/Java script/Go. Удалёнка, 2000$–4000$
✓ Go Developer. Удалёнка
✓ Senior Go Developer. Офис/Удалёнка (Москва), 350–400 т.р.
#подборка #golang #go
✓ Junior Golang Developer. Удалёнка, 75–100 т.р.
✓ Golang Developer. Удалёнка, 100–140 т.р.
✓ Go Developer. Удалёнка
✓ Программист FullStack/Java script/Go. Удалёнка, 2000$–4000$
✓ Go Developer. Удалёнка
✓ Senior Go Developer. Офис/Удалёнка (Москва), 350–400 т.р.
#подборка #golang #go