Telegram Group Search
🗂️ gokv — универсальный интерфейс для key-value хранилищ на Go. В отличие от специфичных клиентов вроде go-redis, он абстрагирует детали реализации, позволяя писать код один раз, а затем подключать нужное хранилище через конфиг.

Особенность проекта в автоматической сериализации структур в JSON/gob/protobuf без ручного упорядочивания. Например, можно сохранить сложный struct в Redis или S3, а затем прочитать его из PostgreSQL — всё через стандартные методы Set()`/`Get(). Проект пока в стадии активной разработки (v0.x), но уже используется в middleware для Gin и других пакетах, где важна гибкость выбора хранилища.

🤖 GitHub

@golang_interview
👣 yamux — это библиотека для мультиплексирования соединений в языке Go!

🌟 Она позволяет создавать несколько потоков на одном физическом соединении (например, TCP или Unix-сокет), обеспечивая эффективное и безопасное использование ресурсов. Yamux поддерживает двухсторонние потоки, контроль потока, а также keep-alive для поддержания постоянных соединений. Это полезно для приложений, где требуется большое количество логических потоков с минимальными накладными расходами.

🔐 Лицензия: MPL-2.0

🖥 Github

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
🖥Увлекательная история создания и развития Go

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
🚀 Go-Json-Rest — минималистичный фреймворк для JSON API на Go. Этот проект предлагает необычно простой способ создания RESTful API без лишней сложности.

В отличие от тяжёлых фреймворков, он работает как тонкая прослойка над стандартным net/http, добавляя лишь необходимое. Также инструмент имеет архитектуру с middleware-стеком, с помощью которой можно гибко добавлять функциональность вроде CORS или авторизации, сохраняя минимализм кода.

🤖 GitHub

@golang_interview
🐿️ Gin-Gonic Starter — готовый шаблон для API на Golang. Этот проект демонстрирует полноценное бэкенд-приложение на Go с фреймворком Gin. В отличие от минималистичных примеров, здесь продуманная структура с разделением на модели, валидаторы, middleware и сериализаторы.

Инструменот будет удобен для изучения реальных паттернов: например, как выносить бизнес-логику в отдельные слои или работать с GORM. Тесты и CI уже настроены, а в TODO интересные планы вроде добавления ProtoBuf.

🤖 GitHub

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
📝 Как составить резюме, чтобы попасть в Magnificent 7: анализ кейса

Недавно инженер поделился своим резюме, которое помогло ему получить предложение работы от одной из rjvgfybb Magnificent 7 (Apple, Microsoft, Google, Amazon, Meta, Nvidia, Tesla).

Magnificent 7 (в переводе — «Великолепная семёрка») — это современное неофициальное название семи крупнейших и самых влиятельных технологических компаний США, которые лидируют на фондовом рынке, в инновациях и в масштабе бизнеса.

Разберём, что сделало его резюме успешным и чему можно научиться.

📌 Главные выводы из резюме:

1. Фокус на достижениях, а не обязанностях.

Многие кандидаты в резюме просто перечисляют, *что они делали*, например:

- “Разрабатывал API”
- “Поддерживал базу данных”
- “Писал скрипты для автоматизации”

⚠️ Это описывает обязанности, но не показывает ценность или результат работы.

В успешном резюме инженер вместо этого написал, чего он достиг благодаря своей работе:

“Разработал API, который сократил время обработки данных на 30%”
“Оптимизировал запросы к базе данных, уменьшив среднее время ответа с 2 секунд до 0.5 секунд”
“Автоматизировал процесс деплоя, снизив количество ошибок на 15%”

Такой подход показывает, как конкретно ваша работа помогла команде или бизнесу.
Работодатель видит результаты, которые вы приносите, а не просто описание того, что вы делали.

💡 Почему это важно?

Big Tech-компании ищут инженеров, которые:

- Умеют оценивать влияние своей работы
- Думают о метриках успеха
- Приносят измеримый результат

Если в резюме нет цифр, улучшений или влияния на процесс — работодатель сам должен это додумывать.
А успешное резюме снимает вопросы и сразу показывает: “Вот что я сделал, вот как я улучшил продукт/процесс/результат.”


2. Лаконичность и компактность.

1 страница
Чёткая структура: “Опыт”, “Навыки”, “Образование”
Без фото, графиков, цветных рамок — чистый текст

3. Цифры везде, где это возможно.

Любое достижение сопровождается конкретной метрикой: улучшение производительности, сокращение времени, рост количества пользователей.
Даже небольшие улучшения указаны численно.

4. Поддержка через проекты с открытым кодом.

Инженер приложил ссылку на GitHub с реальными проектами — это усилило доверие к нему Как с специалисту.

5. Навыки — только релевантные вакансии.

В разделе Skills нет «MS Word» или «PowerPoint».
Только языки, технологии, инструменты, которые нужны для позиции (Python, Kubernetes, CI/CD, etc.).

6. Интерншипы и стажировки — это опыт.

Каждый опыт, даже в рамках стажировки, описан с результатами.
Вакансии в топ-компаниях ценят любую практику в реальной команде.

---

🎯 Что важно для Big Tech:

Результаты > Задачи.
Цифры.
1 страница.
GitHub/портфолио.
Релевантные навыки.

---

🔥 Совет:

Ваше резюме — это реклама вас как продукта.
Покажите пользу, которую вы можете принести, а не просто список обязанностей.

➡️ Статья
Please open Telegram to view this post
VIEW IN TELEGRAM
🐿️ Gin-Swagger — автоматическая документация для Gin API. Этот инструмент генерирует OpenAPI-спецификацию прямо из аннотаций в коде — достаточно добавить специальные комментарии к обработчикам роутов.

После установки и запуска swag init в проекте появляется папка docs с готовой спецификацией. Достаточно подключить роут /swagger/*any и интерактивная документация будет доступна через браузер. Особенно инструмент будет удобен для проектов, где API часто меняется: документация обновляется автоматически при изменении кода.

🤖 GitHub

@golang_interview
⚙️ Option Pattern в Go: гибкая и читаемая настройка объектов

В статье Leapcell ["Option Pattern in Go: Advanced Parameter Handling"](https://dev.to/leapcell/option-pattern-in-go-advanced-parameter-handling-15hf) рассматривается эффективный способ управления параметрами функций и конструкторов в Go.:contentReference[oaicite:7]{index=7}

## 🧩 Проблема

:contentReference[oaicite:9]{index=9}:contentReference[oaicite:11]{index=11}


func NewServer(addr string, port int, timeout time.Duration, maxConn int, protocol string) *Server {
// ...
}


Недостатки:
- :contentReference[oaicite:13]{index=13}
- :contentReference[oaicite:16]{index=16}
- :contentReference[oaicite:19]{index=19}
- :contentReference[oaicite:22]{index=22}:contentReference[oaicite:24]{index=24}

## 💡 Решение: Option Pattern

:contentReference[oaicite:26]{index=26}:contentReference[oaicite:28]{index=28}


type Server struct {
addr string
port int
timeout time.Duration
maxConn int
protocol string
}

type Option func(*Server)

func WithTimeout(t time.Duration) Option {
return func(s *Server) {
s.timeout = t
}
}

func WithMaxConn(max int) Option {
return func(s *Server) {
s.maxConn = max
}
}



:contentReference[oaicite:30]{index=30}:contentReference[oaicite:32]{index=32}


func NewServer(addr string, opts ...Option) *Server {
s := &Server{
addr: addr,
port: 8080,
timeout: 30 * time.Second,
maxConn: 100,
protocol: "tcp",
}

for _, opt := range opts {
opt(s)
}
return s
}


Использование:


server := NewServer("localhost",
WithTimeout(60*time.Second),
WithMaxConn(500),
)


## 🛠️ Дополнительные возможности

- Валидация параметров:


func WithPort(port int) Option {
return func(s *Server) {
if port < 0 || port > 65535 {
panic("invalid port number")
}
s.port = port
}
}


- Группировка опций:


type NetworkOptions struct {
Protocol string
Timeout time.Duration
}

func WithNetworkOptions(opts NetworkOptions) Option {
return func(s *Server) {
s.protocol = opts.Protocol
s.timeout = opts.Timeout
}
}


Преимущества

- :contentReference[oaicite:34]{index=34}
- :contentReference[oaicite:37]{index=37}
- :contentReference[oaicite:40]{index=40}
- :contentReference[oaicite:43]{index=43}:contentReference[oaicite:45]{index=45}

:contentReference[oaicite:47]{index=47}:contentReference[oaicite:49]{index=49}

📌 Читать
👣 В Go 1.24 есть много поводов для восторга: поддержка постквантовой криптографии, полноценная поддержка псевдонимов для обобщённых типов, а также ряд улучшений производительности в рантайме Go, которые значительно снижают нагрузку на CPU в большинстве приложений.

Узнайте, что нового, что ожидается в будущем и как использовать Go для создания масштабируемых, безопасных и надёжных приложений — в том числе для задач генеративного ИИ.

https://io.google/2025/explore/pa-keynote-17

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Полный гид по GPU-экосистеме — без воды и маркетинга

Если ты путаешься в CUDA, OpenCL, SYCL и HIP — этот гайд от ENCCS расставит всё по полочкам. Это не просто обзор, а чёткое объяснение, как устроен мир GPU-программирования сегодня.

🧠 Что ты узнаешь:

🔹 Как и почему GPU радикально отличается от CPU
🔹 Из чего состоит стек GPU-технологий:
 — CUDA и его аналоги (HIP, SYCL, OpenCL)
 — Директивы: OpenMP, OpenACC
🔹 Какие языки и стандарты поддерживают какую архитектуру
🔹 NVIDIA, AMD, Intel — кто что умеет и чем отличается
🔹 Модели памяти, исполнения, и что влияет на производительность

📌 Гайд подходит для:
• Разработчиков HPC и научных расчётов
• Инженеров ML/AI, желающих копнуть глубже
• Всех, кто хочет разобраться в низкоуровневом GPU-стеке без маркетингового тумана

📖 Читать:
https://enccs.github.io/gpu-programming/2-gpu-ecosystem/

🔥 Один из самых понятных и системных разборов GPU-мира на сегодня.

#GPU #CUDA #OpenCL #HIP #SYCL #HPC #AI #HighPerformanceComputing
📁 doublestar — расширенная поддержка glob-паттернов в Go

Альтернатива стандартному path/filepath.Glob в Go, с поддержкой:

• ** — рекурсивных поддиректорий
• Расширенных классов символов ([[:alpha:]], [[:digit:]])
• Исключающих шаблонов (!(pattern), @(pattern), ?(pattern))
• Более гибких масок в стиле Bash/Zsh

go get github.com/bmatcuk/doublestar/v4

🔧 Использование:


matches, err := doublestar.Glob("**/*.go")


📦 Подходит для написания CLI-инструментов, сборщиков, тулов для анализа кода и всего, где важна гибкость файловых шаблонов.

👉 Если filepath.Glob не хватает — doublestar легко заменяет его, не ломая привычный интерфейс.

github.com/bmatcuk/doublestar
🌀 RLX OS — минималистичная Linux-операционка, написанная на Go, запускаемая из одного файла

Проект — это легковесная, контейнерно-ориентированная Linux-система, которую можно запустить как один исполняемый файл. Идеально подходит для embedded-устройств, безопасных сред и DevOps-экспериментов.

### ⚙️ Основные особенности:

🚀 Монолитный исполняемый образ — всё в одном .efi`- или .iso`-файле
🧱 Immutable by design — неизменяемая, безопасная структура
📦 App Containers — встроенная поддержка запуска приложений как изолированных контейнеров
🌐 Zero-dependency init system — простая и быстрая загрузка
🛡️ Фокус на минимуме, скорости и контроле
💡 Поддержка Live Boot, конфигурации через YAML и кастомных сборок

📦 Отличный выбор для:
• DIY-дистрибутивов
• Специализированных рабочих станций
• Безопасной разработки без зависимости от сторонних пакетов

🔗 Репозиторий

@golang_interview
⚡️ Thunder — минималистичный фреймворк для API на Go

[Thunder](https://github.com/Raezil/Thunder) — это лёгкий и быстрый инструмент для создания API-серверов на Go. Он фокусируется на простоте, читаемости и строгой типизации без лишних абстракций.

🧩 Ключевые особенности:

🧼 Чистая архитектура — без лишнего "магического" кода
💡 Использует Go-дженерики для гибкости и типобезопасности
⚙️ Простое подключение middleware и обработчиков
🧪 Упрощённое тестирование маршрутов
🪶 Низкий порог входа и лёгкая интеграция в существующие проекты


👨‍💻 Пример:


thunder.Get("/ping", func(c thunder.Context) error {
return c.JSON(200, "pong")
})


Всё просто и по-Goшному.


📦 Подходит для:
• Быстрой сборки REST API
• Микросервисов и CLI-инструментов
• Тех, кто хочет full-control без тяжёлых фреймворков

🔗 GitHub
🧮 Парсим `lsblk` и анализируем диски на Go — без зависимостей

Вместо тяжёлых утилит можно легко написать парсер для анализа дисков прямо на Go.
В блоге Rezmoss показано, как создать свой анализатор дисков и разделов, используя lsblk и стандартную библиотеку Go.

🔍 Что делает утилита:
• Запускает lsblk -J и получает JSON
• Парсит структуру блок-устройств и их монтирования
• Выводит дерево разделов, меток и точек монтирования
• Работает без сторонних зависимостей

📦 Используются только:
os/exec для запуска lsblk
encoding/json для разбора вывода
• Стандартные структуры Go для представления дисков

🧠 Полезно для:
• CLI-утилит по управлению хранилищем
• системных тулов в Linux
• кастомных мониторингов и автоконфигурации

🔗 Читай подробнее: rezmoss.com/blog/disk-partition-analyzer-in-go/

#golang #linux #sysadmin #devtools #cli
🔥 7 000+ упражнений на 76 языках программирования

Exercism — бесплатная платформа для прокачки навыков программирования с нуля. Каждый язык — отдельный путь, наполненный практическими задачами.

Главный плюс — обратная связь от опытных менторов. Ответы здесь не быстрые, зато по делу и без токсичности, как это бывает на Stack Overflow.

https://exercism.org/
📦 Nubo — репозиторий формальных доказательств для Dedukti

Если вы работаете с формальными доказательствами и Dedukti — Nubo упрощает жизнь.

🔹 Это централизованный репозиторий библиотек с метаданными: имя, версия, зависимости, синтаксис, флаги.
🔹 Поддерживает загрузку (make download), проверку (make check) и упаковку (make package).
🔹 Работает через Makefile-сборку, автоматически управляя зависимостями и структурами.
🔹 Стандартизирует хранение и верификацию библиотек, пригоден для масштабирования и CI.

👨‍🔬 Полезно для исследователей, разработчиков Dedukti и формальных систем.

🔗 GitHub: https://github.com/nubolang/nubo
Вакансиb для Golang-разработчиков в Otello!

1️⃣ Разрабатываем сервис бронирования, где команда сама отвечает за архитектуру, консистентность данных и деплой.

2️⃣ Максимум ответственности и развитияТы сам проектируешь фичи, принимаешь решения и доводишь их до продакшена. У нас нет бюрократии и долгих согласований — есть автономные команды и возможность проявить лидерские качества.

3️⃣ Технологический стек, который радуетGo, PostgreSQL, Clickhouse, Kafka, Kubernetes, Prometheus, Grafana и многое другое. Пишем гексагональные REST-сервисы, разворачиваемся в четырех датацентрах. Любим архитектурные обсуждения, но технологии для нас — не самоцель, а инструмент.

4️⃣ Процесс, который не бесит. Работаем по Shape Up, поэтому без бесконечных таск-трекеров и бесцельных стендапов. Всегда задаем себе вопрос "Зачем?" и находим лучшие ответы на "Как?".

5️⃣ Классная команда и атмосфера. Мы ценим простые и эффективные решения, любим обсуждать архитектуру и масштабирование, а еще умеем работать динамично и с кайфом.

🔥 Если тебе близко —откликайся!
🚀 Production Go API Template — готовый шаблон для продакшн-бэкенда на Go

Репозиторий trakora/production-go-api-template — это минималистичный и структурированный старт для разработки API‑сервисов на Go, с учётом лучших практик.

📦 Что внутри:
• Чистая архитектура и модульная структура
• Поддержка PostgreSQL, Redis, миграций и хранилищ
• Встроенная обработка ошибок, логгирование, тесты
• JWT-аутентификация, конфигурация через .env
• Готовность к деплою в Docker и CI/CD

💡 Подходит для:
• Быстрого запуска продакшн‑сервисов
• MVP, стартапов, микросервисов
• Разработчиков, которые хотят "не изобретать велосипед"

🔗 GitHub: https://github.com/trakora/production-go-api-template

#golang #backend #api #webdev #goproject #архитектура
Офер в VK для бэкенд-разработчиков — попадите в команду за выходные

28–29 июня пройдёт VK Weekend Offer. Всего за 2 дня вы сможете пройти весь путь от знакомства с командами до приглашения на работу: встретиться с лидами, пройти технические собеседования и получить офер.

Языки программирования — Java, Go, Python, C++. Главное требование — от 3 лет реального опыта в бэкенде.

Читайте подробности на сайте и подавайте заявку до 25 июня!
2025/06/18 15:56:22
Back to Top
HTML Embed Code: