🚀 Быстрый линтер OpenAPI и Swagger
Vacuum — это легкий и супербыстрый линтер для OpenAPI, написанный на Go. Он совместим с правилами Spectral и предлагает автоисправление для пользовательских правил. Идеален для проверки качества спецификаций API.
🚀Основные моменты:
- Поддержка автоисправления ошибок в спецификациях
- Совместимость с существующими правилами Spectral
- Легкий и быстрый инструмент для CI/CD
- Многофункциональный интерфейс командной строки
- Поддержка Docker и различных платформ
📌 GitHub: https://github.com/daveshanley/vacuum
#go
Vacuum — это легкий и супербыстрый линтер для OpenAPI, написанный на Go. Он совместим с правилами Spectral и предлагает автоисправление для пользовательских правил. Идеален для проверки качества спецификаций API.
🚀Основные моменты:
- Поддержка автоисправления ошибок в спецификациях
- Совместимость с существующими правилами Spectral
- Легкий и быстрый инструмент для CI/CD
- Многофункциональный интерфейс командной строки
- Поддержка Docker и различных платформ
📌 GitHub: https://github.com/daveshanley/vacuum
#go
❤9👍7🔥4
🧠 UnisonDB - экспериментальная база, которая убирает боль синхронизации в распределённых системах
Главная идея простая, но мощная:
все узлы хранят одно и то же состояние, и оно автоматически синхронизируется без конфликтов — даже оффлайн.
Как это работает
- Используются CRDT — структуры данных, которые сами разрешают конфликты
- Вся система построена как event log (каждое изменение — событие)
- Данные сначала пишутся локально, потом догоняют сеть
- Нет «главного сервера» — каждый узел может быть источником истины
Что это даёт
- Мгновенные локальные обновления (даже без интернета)
- Автоматическая консистентность без ручных merge
- Идеально для приложений, которые должны работать оффлайн и в real-time
Где это полезно
- мобильные и edge-приложения
- коллаборативные редакторы
- распределённые системы без единого центра
- автономные агенты и IoT
Почему это интересно
Это не просто база данных - это попытка пересобрать модель хранения данных под эпоху распределённого ПО, где сеть ненадёжна, а приложение должно всегда работать.
https://github.com/ankur-anand/unisondb
#databases #crdt #distributedSystems #eventSourcing #edgecomputing #backend #systemdesign
Главная идея простая, но мощная:
все узлы хранят одно и то же состояние, и оно автоматически синхронизируется без конфликтов — даже оффлайн.
Как это работает
- Используются CRDT — структуры данных, которые сами разрешают конфликты
- Вся система построена как event log (каждое изменение — событие)
- Данные сначала пишутся локально, потом догоняют сеть
- Нет «главного сервера» — каждый узел может быть источником истины
Что это даёт
- Мгновенные локальные обновления (даже без интернета)
- Автоматическая консистентность без ручных merge
- Идеально для приложений, которые должны работать оффлайн и в real-time
Где это полезно
- мобильные и edge-приложения
- коллаборативные редакторы
- распределённые системы без единого центра
- автономные агенты и IoT
Почему это интересно
Это не просто база данных - это попытка пересобрать модель хранения данных под эпоху распределённого ПО, где сеть ненадёжна, а приложение должно всегда работать.
https://github.com/ankur-anand/unisondb
#databases #crdt #distributedSystems #eventSourcing #edgecomputing #backend #systemdesign
❤19👍13🔥4🤯2
Golang: открытый урок, веб-сокет сервер на 100K пользователей
Друзья, Devhands качает направление Golang - языка российских бигтехов! Кстати, это довольно уникальная ситуация на мировом рынке - Авито, Озон, Вайлдбериз, X5, Магнит и многие другие e-comm проекты активно используют именно golang. Ну тем лучше всем нам 🙂
В этот четверг, 13 ноября, в 20:30 МСК мы проведем стрим с Юрой Насретдиновым открытый урок по Golang в рамках запуска потока обучения “Go для продолжающих и свитчеров”.
Тема встречи — Вебсокет чат на Go на 100к пользователей.
Юра расскажет и покажет:
— Многопоточность в Go
— Обширные возможности стандартной библиотеки
— Пример (простого) чата, который может выдержать 100 000 одновременно активных пользователей
Вход свободный, нужно только быть авторизованным в Zoom.
Ссылка на Zoom: https://us06web.zoom.us/j/88271205778?pwd=R8Rasv6QZEaf1kMMltvLfyacuKjFng.1
Календарь (ics) в комментариях к посту.
Ждем вас!
🔥 за golang для websocket-сервера
👍 за java/dotnet/etc
Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqxKzzwr
Друзья, Devhands качает направление Golang - языка российских бигтехов! Кстати, это довольно уникальная ситуация на мировом рынке - Авито, Озон, Вайлдбериз, X5, Магнит и многие другие e-comm проекты активно используют именно golang. Ну тем лучше всем нам 🙂
В этот четверг, 13 ноября, в 20:30 МСК мы проведем стрим с Юрой Насретдиновым открытый урок по Golang в рамках запуска потока обучения “Go для продолжающих и свитчеров”.
Тема встречи — Вебсокет чат на Go на 100к пользователей.
Юра расскажет и покажет:
— Многопоточность в Go
— Обширные возможности стандартной библиотеки
— Пример (простого) чата, который может выдержать 100 000 одновременно активных пользователей
Вход свободный, нужно только быть авторизованным в Zoom.
Ссылка на Zoom: https://us06web.zoom.us/j/88271205778?pwd=R8Rasv6QZEaf1kMMltvLfyacuKjFng.1
Календарь (ics) в комментариях к посту.
Ждем вас!
🔥 за golang для websocket-сервера
👍 за java/dotnet/etc
Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqxKzzwr
🔥34❤9👍2🤬1
🔒 Защита контейнеров с Runtime Radar
Runtime Radar — это открытое решение для мониторинга событий безопасности в реальном времени в контейнеризованных средах. Оно предлагает доступные инструменты управления и защиту от угроз на уровне выполнения, упрощая интеграцию с другими системами безопасности.
🚀 Основные моменты:
- Гибкая настройка мониторинга событий с веб-интерфейсом.
- Централизованное управление для многокластерных установок.
- Интеграция с системами безопасности через syslog, SMTP и webhook.
- Написан на Go.
- Внутри удобные инструменты для анализа инцидентов в веб-интерфейсе.
📌 GitHub: https://github.com/runtime-radar/runtime-radar
Runtime Radar — это открытое решение для мониторинга событий безопасности в реальном времени в контейнеризованных средах. Оно предлагает доступные инструменты управления и защиту от угроз на уровне выполнения, упрощая интеграцию с другими системами безопасности.
🚀 Основные моменты:
- Гибкая настройка мониторинга событий с веб-интерфейсом.
- Централизованное управление для многокластерных установок.
- Интеграция с системами безопасности через syslog, SMTP и webhook.
- Написан на Go.
- Внутри удобные инструменты для анализа инцидентов в веб-интерфейсе.
📌 GitHub: https://github.com/runtime-radar/runtime-radar
👍5❤4🥰3
⚡️ Docker2exe превращает Docker-контейнеры в самодостаточные исполняемые файлы для Windows. Полезно, когда нужно быстро упаковать сервис и запустить его на машине без Docker.
Преимущества: простая развёртка, переносимость, удобно для тестов и демо.
Минусы и предостережения: убедитесь, что внутри контейнера нет секретных корчей и что вы выполняете только знакомый код.
https://github.com/rzane/docker2exe
Преимущества: простая развёртка, переносимость, удобно для тестов и демо.
Минусы и предостережения: убедитесь, что внутри контейнера нет секретных корчей и что вы выполняете только знакомый код.
https://github.com/rzane/docker2exe
🔥29🤔11👍9❤7
Они объединяют эффективность существующих высокоуровневых функций набора соединений с возможностью отмены через Dialer.DialContext — то есть будут быстрее и надёжнее при работе с сетевыми вызовами.
Для тех случаев, когда вы точно знаете сеть (TCP, UDP, IP или Unix-сокет) и хотите:
- минимальные расходы (без лишнего разрешения адресов)
- контроль таймаута/отмены через context
- современный тип адресов из netip
В целом это шаг к более гибкому, эффективному и контролируемому сетевому подключению в Go.
Пример использования:
var d net.Dialer
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
raddr := netip.MustParseAddrPort("127.0.0.1:12345")
conn, err := d.DialTCP(ctx, "tcp", netip.AddrPort{}, raddr)
if err != nil { log.Fatalf("Failed to dial: %v", err) }
defer conn.Close()
http://antonz.org/accepted/net-dialer-context/
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍64🔥14❤12
🎉 Go исполнилось 16 лет
Go отметился важной датой шестнадцатой годовщиной с момента когда язык впервые стал открытым. За эти годы Go превратился в один из самых надёжных и понятных инструментов для разработки и продолжает расти без потери своей философии простоты.
Что произошло за последний год
- вышли Go 1.24 и Go 1.25
- появился пакет testing synctest который помогает тестировать конкурентный код без боли
- улучшены механизмы работы внутри контейнеров что - делает Go ещё стабильнее в продакшене
- представлен экспериментальный сборщик мусора Green Tea который снижает затраты на GC до сорока процентов
криптографические пакеты проходят сертификацию и усиливают безопасность экосистемы
Что ждёт Go дальше
- оптимизация под многопроцессорные системы
более глубокая интеграция в инфраструктурные и ИИ сервисы
- усиление вклада сообщества при сохранении стабильного релиз-цикла
Шестнадцать лет спустя Go остаётся языком который ценят за скорость простоту и предсказуемость. И похоже он только начинает новый виток роста.
https://go.dev/blog/16years
@Golang_google
#golang
Go отметился важной датой шестнадцатой годовщиной с момента когда язык впервые стал открытым. За эти годы Go превратился в один из самых надёжных и понятных инструментов для разработки и продолжает расти без потери своей философии простоты.
Что произошло за последний год
- вышли Go 1.24 и Go 1.25
- появился пакет testing synctest который помогает тестировать конкурентный код без боли
- улучшены механизмы работы внутри контейнеров что - делает Go ещё стабильнее в продакшене
- представлен экспериментальный сборщик мусора Green Tea который снижает затраты на GC до сорока процентов
криптографические пакеты проходят сертификацию и усиливают безопасность экосистемы
Что ждёт Go дальше
- оптимизация под многопроцессорные системы
более глубокая интеграция в инфраструктурные и ИИ сервисы
- усиление вклада сообщества при сохранении стабильного релиз-цикла
Шестнадцать лет спустя Go остаётся языком который ценят за скорость простоту и предсказуемость. И похоже он только начинает новый виток роста.
https://go.dev/blog/16years
@Golang_google
#golang
👍56❤23🎉14🔥9🤯4
GO-разработчики, у вас спрашивали про DDD на собеседовании?
А вы не знали, что ответить — кроме «ну это про бизнес-логику»?
Пора закрыть пробелы.
На практическом курсе по DDD и архитектуре микросервисов для Go-разработчиков вы:
✅ Соберёте сервис «Диспетчеризации заказов» с нуля
✅ Реализуете Aggregate, Value Object, Domain Service
✅ Освоите Clean Architecture, gRPC, Kafka, CQS
✅ Получите проект в портфолио — и уверенность в собеседованиях
👨🏫 Курс ведёт Кирилл Ветчинкин — действующий архитектор в Авито, ex-Staff Engineer в Купер, работает с 2019 года.
Всё на Go — никакого отрыва от вашей среды.
12 модулей, 6 недель практики, ревью от эксперта и живые эфиры.
Уже более 350 разработчиков прошли — теперь очередь за вами.
🔗 Записаться на курс https://microarch.ru/courses/ddd/languages/go?utm_source=posev&utm_medium=erid:2Vtzqw7xBWg&utm_campaign=1
Реклама. ИП Ветчинкин К.Е. ИНН: 773376451099 Erid: 2Vtzqw7xBWg
А вы не знали, что ответить — кроме «ну это про бизнес-логику»?
Пора закрыть пробелы.
На практическом курсе по DDD и архитектуре микросервисов для Go-разработчиков вы:
✅ Соберёте сервис «Диспетчеризации заказов» с нуля
✅ Реализуете Aggregate, Value Object, Domain Service
✅ Освоите Clean Architecture, gRPC, Kafka, CQS
✅ Получите проект в портфолио — и уверенность в собеседованиях
👨🏫 Курс ведёт Кирилл Ветчинкин — действующий архитектор в Авито, ex-Staff Engineer в Купер, работает с 2019 года.
Всё на Go — никакого отрыва от вашей среды.
12 модулей, 6 недель практики, ревью от эксперта и живые эфиры.
Уже более 350 разработчиков прошли — теперь очередь за вами.
🔗 Записаться на курс https://microarch.ru/courses/ddd/languages/go?utm_source=posev&utm_medium=erid:2Vtzqw7xBWg&utm_campaign=1
Реклама. ИП Ветчинкин К.Е. ИНН: 773376451099 Erid: 2Vtzqw7xBWg
❤4👍1🔥1😁1
Подходит для игр, симуляций и любых проектов, где нужна быстрая и точная физика.
#golang
https://github.com/jakecoffman/cp
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍4🔥4
Golang Meetup от Wildberries & Russ — 27 ноября, 19:00
Приглашаем на митап про Go в продакшене: как писать быструю бизнес-логику, управлять памятью без просадок и строить масштабируемую событийную архитектуру.
В программе 3 доклада:
— Иерархические стейт-машины: инструмент для организации бизнес-логики
Сергей Шлянин, Go-разработчик в WB Bank
— 1000 в 1: единая платформа для событий Databus
Виктор Такташов, Trust & Safety
— Указатели в Go: от аллокации до GC — разбираем ошибки производительности на реальных примерах
Александр Бруяко, Медиа-сервисы
После — афтепати и нетворкинг с инженерами WB
Офлайн в Москве |Зарегистрироваться
Приглашаем на митап про Go в продакшене: как писать быструю бизнес-логику, управлять памятью без просадок и строить масштабируемую событийную архитектуру.
В программе 3 доклада:
— Иерархические стейт-машины: инструмент для организации бизнес-логики
Сергей Шлянин, Go-разработчик в WB Bank
— 1000 в 1: единая платформа для событий Databus
Виктор Такташов, Trust & Safety
— Указатели в Go: от аллокации до GC — разбираем ошибки производительности на реальных примерах
Александр Бруяко, Медиа-сервисы
После — афтепати и нетворкинг с инженерами WB
Офлайн в Москве |Зарегистрироваться
❤9🔥3👍2
package main
import "fmt"
func main() {
s := []int{1, 2, 3, 4}
t := s[1:3] // t = [2, 3]
t = append(t, 99) // возможно, меняет s[3]
s[2] = 42 // изменяем s напрямую
fmt.Println("s:", s)
fmt.Println("t:", t)
}
Ответ :
t: [2 42 99]
⚡️ Запустить код: https://go.dev/play/p/96RGE1ea6Sq
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24❤7🔥5🤔3
🧑💻 Все еще пишешь типовой код вручную?
Есть способ лучше. Кодогенерация в Go — это мощный инструмент, который автоматизирует рутину и расширяет возможности языка.
На открытом уроке «Кодогенерация в Go: код, который не пришлось писать» разберем, как это работает. Поговорим о том, когда кодогенерация уместна, какие механизмы Go ее позволяют и как это применяется в реальных проектах.
❗️Это тот случай, когда нейросети не заменят глубокого понимания механизмов языка. Практикующий разработчик с опытом в продакшене покажет, как избежать подводных камней и применять кодогенерацию в рабочих проектах. Ваш шанс научиться создавать более эффективные и лаконичные решения. Перестаньте тратить время на шаблонные задачи и начните генерировать код, который работает за вас.
🗓 Урок пройдет 19 ноября в 20:00 в преддверии старта курса «Golang Developer. Professional». Все участники вебинара получат скидку на обучение. Регистрируйтесь по ссылке, чтобы освоить один из самых перспективных навыков в Go: https://tglink.io/4bbad9261a34?erid=2W5zFJLY3mS
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Есть способ лучше. Кодогенерация в Go — это мощный инструмент, который автоматизирует рутину и расширяет возможности языка.
На открытом уроке «Кодогенерация в Go: код, который не пришлось писать» разберем, как это работает. Поговорим о том, когда кодогенерация уместна, какие механизмы Go ее позволяют и как это применяется в реальных проектах.
❗️Это тот случай, когда нейросети не заменят глубокого понимания механизмов языка. Практикующий разработчик с опытом в продакшене покажет, как избежать подводных камней и применять кодогенерацию в рабочих проектах. Ваш шанс научиться создавать более эффективные и лаконичные решения. Перестаньте тратить время на шаблонные задачи и начните генерировать код, который работает за вас.
🗓 Урок пройдет 19 ноября в 20:00 в преддверии старта курса «Golang Developer. Professional». Все участники вебинара получат скидку на обучение. Регистрируйтесь по ссылке, чтобы освоить один из самых перспективных навыков в Go: https://tglink.io/4bbad9261a34?erid=2W5zFJLY3mS
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
❤3
📚 Go Styleguide для эффективного программирования на Go ⚙️
Репозиторий предлагает рекомендации и лучшие практики для написания чистого и поддерживаемого кода на Go. Основывается на опыте и вдохновении от конференций, дополняя "Effective Go".
🚀Основные моменты:
- Структурированное логирование для упрощения отладки.
- Избегайте глобальных переменных для повышения тестируемости.
- Используйте семантическое версионирование для управления зависимостями.
- Применяйте линтеры и goimports для поддержания качества кода.
- Следуйте принципам тестирования и написания читаемого кода.
📌 GitHub: https://github.com/bahlo/go-styleguide
#go
Репозиторий предлагает рекомендации и лучшие практики для написания чистого и поддерживаемого кода на Go. Основывается на опыте и вдохновении от конференций, дополняя "Effective Go".
🚀Основные моменты:
- Структурированное логирование для упрощения отладки.
- Избегайте глобальных переменных для повышения тестируемости.
- Используйте семантическое версионирование для управления зависимостями.
- Применяйте линтеры и goimports для поддержания качества кода.
- Следуйте принципам тестирования и написания читаемого кода.
📌 GitHub: https://github.com/bahlo/go-styleguide
#go
❤13🔥1🥰1