Golang вопросы собеседований
13.6K subscribers
643 photos
6 videos
1 file
452 links
@notxxx1 - админ

@Golang_google - Golang для разработчиков

@itchannels_telegram - 🔥лучшие из ит

@golangl - chat

@golangtests - golang tests

@golang_jobsgo - go chat jobs

@ai_machinelearning_big_data - AI

@data_analysis_ml

РКН: clck.ru/3FmtKd
加入频道
🐿️ 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
Media is too big
VIEW IN TELEGRAM
МТС приглашает разработчиков на масштабную ИТ-конференцию True Tech Day 6 июня. Участие бесплатное.

В программе — спикеры российского и международного ИИ-рынка, лидеры бигтехов и ученые.

Тебя ждут 4 трека и 40+ докладов. Какие темы будем обсуждать:
— GPT для роботов: как ИИ учится взаимодействовать с реальным миром.
— Мультиагенты — главный AI-тренд 2025. Речь не просто о чат-ботах, а о системах, которые умеют спорить, сотрудничать и достигать целей.
— Автоматизация архитектурных аудитов с помощью ИИ: создание архитектурного datalake для сбора данных из Git, Kubernetes, мониторинга и других источников.
— Новая архитектура под AI: что приходит на смену микросервисам и как архитектор становится дизайнером когнитивного интерфейса.
— Архитектура «as code»: как автоматизировать проверку актуальности схем и генерировать их из реальной инфраструктуры, чтобы разработка всегда соответствовала замыслу архитектора.
— Разбор RAG: что это, зачем нужно, архитектурные подходы и их слабые места, как измерять качество и избегать ложных метрик.

Среди спикеров:
Иван Оселедец (AIRI), Пабло дель Веккио (NTT DATA), Кен Чжун Ли (Kyung Hee University), Алексей Друца (Яндекс), Александр Абрамов (Сбер), Павел Бабин (MWS GPT), Валентин Малых (MTS AI), Антон Скогорев (Т-Банк), Артем Якимчук (Сколтех) и другие эксперты.

Тебе точно стоит быть, если ты:
— разработчик, архитектор или технический руководитель;
— хочешь понять, что реально работает, а что — хайп.

Когда: 6 июня
Где: Москва, МТС Live Холл и онлайн
Регистрация по ссылке.
📁 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