TGViewer
Channel Public Channel
Go in Action

Go in Action

@go_in_action

Всё про язык программирования Go на русском и английском языке

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels
Subscribers
4.11K
Photos
2.4K
Videos
3
Links
4K

Showing posts older than #4646 · Back to latest

Older Posts 20 shown
Post #4645 190
5 способов и безопасная остановка time.Ticker в Go
В статье показаны варианты циклов с time.Ticker: простой цикл, игнорирование значения, немедленный старт (с и без значения) и корректное завершение горутины через select/done. Есть примеры кода и выводы.

Подробнее: https://gosamples.dev/5-different-ways-to-loop-over-a-time.ticker-in-go/

#en

@go_in_action | Другие наши каналы
GOSAMPLES ✨ 5 different ways to loop over a time.Ticker in Go Learn how to use the popular time.Ticker struct in loops
Post #4644 149
Шпаргалка по generics в Go — кратко: обзор generics в Go 1.18, типовые параметры и их ограничения, встроенные constraints (any, comparable), типовые множества с |, оператор ~ для допуска подтипов, а также generic‑типы на примере KV и вывод типов.

Подробнее: https://gosamples.dev/go-generics-cheatsheet/

#en

@go_in_action | Другие наши каналы
GOSAMPLES 👑 Go Generics cheatsheet Learn how to create type-independent functions
Post #4643 205
Таймаут HTTP-клиента в Go

В статье показаны три подхода: общий Timeout в http.Client, таймаут для отдельного запроса через context.WithTimeout и настройка Timeout у http.DefaultClient. Примеры кода и объяснения ошибок помогут не допустить блокировок приложения.

Подробнее: https://gosamples.dev/️-set-http-client-timeout-in-go/

#en

@go_in_action | Другие наши каналы
GOSAMPLES ⏱️ Set HTTP client timeout in Go Learn how to set a time limit for the execution of an HTTP request
Post #4642 187
Как поймать HTTP timeout в Go
Кратко: в статье показано использование os.IsTimeout() для определения таймаута запросов. Пример: клиент с Timeout=1ns вызывает ошибку context deadline exceeded; при нормальном таймауте (1m) запрос пройдет. Полезно для отладки сетевых ошибок.

Подробнее: https://gosamples.dev/handle-http-timeout-error-in-go/

#en

@go_in_action | Другие наши каналы
GOSAMPLES ⏰ Handle HTTP timeout error in Go Learn Golang programming by example. GOSAMPLES is a library of Golang code snippets that let you solve everyday code problems.
Post #4641 118
Recover в Go: как поймать panic и продолжить работу
В статье объясняется, как встроенная функция recover() останавливает паническую последовательность, возвращает значение panic и позволяет продолжить выполнение. Указано, что recover работает только в deferred и в той же горутине; приведены примеры. Две практики для Go: сравнение строк и обработка HTTP‑таймаутов

Кратко: советы по корректному сравнению строк в Go и по обработке ошибок HTTP‑таймаутов с примерами и рекомендациями для надежных сетевых приложений. Полезно для Go‑разработчиков.

Подробнее: https://gosamples.dev/️-recover-function-in-go/

#en

@go_in_action | Другие наши каналы
Post #4640 107
Сравнение строк в Go: операторы и strings.Compare

В статье показано, как сравнивать строки в Go: операторы ==, !=, <,, <=,= для лексикографического сравнения и функция strings.Compare, возвращающая -1/0/1. Отдельно описано сравнение без учёта регистра и приведены примеры.

Подробнее: https://gosamples.dev/how-to-compare-strings-in-go/

#en @go_in_action | Другие наши каналы
GOSAMPLES 🐾 How to compare strings in Go Learn Golang programming by example. GOSAMPLES is a library of Golang code snippets that let you solve everyday code problems.
Post #4639 73
Как узнать версию Go быстро

В статье объясняют, как командой go version и функцией runtime.Version() узнать версию Go, проверить версию бинарника (go version -m) и смотреть GOVERSION через go env, а также где искать решения проблем и как обновить Go. Ссылка на источник. Хронология релизов Go: 2015–2023

В статье собран полный список версий языка Go с датами релизов. Полезно для проверки поддержки и совместимости библиотек, а также для изучения эволюции языка по годам. Хронология релизов Go — В материале собрана последовательность выпусков Go от публичного анонса 10 ноября 2009 до go1.5 (19 августа 2015). Короткая сводка для понимания эволюции языка и совместимости старых версий.

Подробнее: https://gosamples.dev/how-to-check-your-go-version/

#en

@go_in_action | Другие наши каналы
GOSAMPLES How to check your Go version Learn how to check Go version in CLI, application, or script
Post #4638 89
Как корректно завершить приложение на Go: os.Exit() vs panic()

Кратко: os.Exit(code) немедленно завершает программу и не выполняет deferred; код 0 — успех, ненулевой — ошибка. panic() разворачивает стек и выполняет deferred. Подробности и примеры работы функций описаны в статье.

Подробнее: https://gosamples.dev/exit-an-app-in-go/

#en

@go_in_action | Другие наши каналы
GOSAMPLES 🛑 Exit an app in Go Learn Golang programming by example. GOSAMPLES is a library of Golang code snippets that let you solve everyday code problems.
Post #4637 109
Повтор строки в Go — strings.Repeat и подсчёт символов

Кратко: в статье объясняется использование strings.Repeat для повторения строки, предупреждается паника при отрицательном count и возможная переполняемость. Показывают, почему для подсчёта символов в UTF‑8 лучше применять utf8.RuneCountInString вместо len().

Подробнее: https://gosamples.dev/repeat-a-string-in-go/

#en

@go_in_action | Другие наши каналы
GOSAMPLES 🔁 Repeat a string in Go Learn Golang programming by example. GOSAMPLES is a library of Golang code snippets that let you solve everyday code problems.
Post #4636 105
Шпаргалка: Unix time в Go — быстро и понятно
Кратко: обзор методов time.Unix(), UnixMilli(), UnixMicro(), UnixNano() для получения текущего Unix‑времени и конвертации time.Time ↔ int64, примеры преобразования миллисекунд/микросекунд/наносекунд и парсинга строковых таймстемпов.

Подробнее: https://gosamples.dev/unix-time-in-go-cheatsheet/

#en

@go_in_action | Другие наши каналы
GOSAMPLES ⌚ Unix time in Go [cheatsheet] Learn how to get, convert and work with the Unix epoch time
Post #4635 99
CRUD-рейтинги сайтов на Go и PostgreSQL

В статье показано, как создать мини-рейтинги сайтов, реализовать CRUD через интерфейс Repository и три варианта реализации: database/sql, pgx и GORM. Полезно для изучения практической работы с БД в Go.

Подробнее: https://gosamples.dev/what-we-are-going-to-build/

#en

@go_in_action | Другие наши каналы
GOSAMPLES What we are going to build Learn Golang programming by example. GOSAMPLES is a library of Golang code snippets that let you solve everyday code problems.
Post #4634 111
Разработчики всё ещё путают JWT, JWKS, OAuth2 и OpenID Connect — разбираем на примерах. Часть 1

JWT, SSO, OAuth, OpenID Connect — названия знакомые каждому разработчику. Но стоит спросить: «Зачем в продакшене нужен JWKS?» или «Чем отличается OAuth2 от OpenID Connect?» — уверенность сразу исчезает.

В этой статье мы разберём как устроен JWT и его подпись, зачем нужны access и refresh токены, что такое JWKS и в чём отличие OAuth от OpenID Connect.

Вместо скучных стандартов и спецификаций протоколов в статье будет один наглядный образ на примере отелей и пропусков. Это позволит не только запомнить, но и прочувствовать на реальных примерах, избавиться от хаоса и путаницы в голове, когда речь заходит об аутентификации и авторизации. Цель статьи — не дать «рецепт внедрения», а дать возможность понять, как это работает внутри и «пощупать» эти темы на Go.


Читать: https://habr.com/ru/companies/ozontech/articles/976950/

#ru

@go_in_action | Другие наши каналы
Post #4633 109
Go + PostgreSQL: быстрое руководство

В этом руководстве показаны три подхода подключения Go к PostgreSQL, примеры CRUD-операций и создание слоя доступа к данным по паттерну Repository с принципами чистого кода. Полный код проекта доступен на GitHub.

Подробнее: https://gosamples.dev/summary/

#en

@go_in_action | Другие наши каналы
GOSAMPLES Summary Learn Golang programming by example. GOSAMPLES is a library of Golang code snippets that let you solve everyday code problems.
Post #4632 110
Как запустить демо pgx-репозитория в Go. В статье показано создание cmd/pgx/main.go, используется pgxpool.Pool вместо sql.DB, те же параметры подключения, отличия в импортах, как сбросить данные перезапуском PostgreSQL в Docker и пример вывода демо.

Подробнее: https://gosamples.dev/run-the-demo-procedure-for-pgx-based-repository/

#en

@go_in_action | Другие наши каналы
GOSAMPLES Run the demo procedure for pgx-based repository Learn Golang programming by example. GOSAMPLES is a library of Golang code snippets that let you solve everyday code problems.
Post #4631 126
Запуск демо GORM-репозитория

В статье показано, как создать cmd/gorm/main.go, подключить драйвер gorm.io/driver/postgres, открыть соединение через gorm.Open, создать PostgreSQLGORMRepository и выполнить демо (миграция, CRUD). Описаны очистка Docker‑базы и советы по экспериментам.

Подробнее: https://gosamples.dev/run-the-demo-procedure-for-gorm-repository/

#en

@go_in_action | Другие наши каналы
GOSAMPLES Run the demo procedure for GORM repository Learn Golang programming by example. GOSAMPLES is a library of Golang code snippets that let you solve everyday code problems.
Post #4630 125
Паттерн Repository — абстракция слоя доступа к данным

В статье объясняется, как Repository отделяет слой доступа и скрывает детали базы за интерфейсом, упрощая замену и поддержку БД. В материале показано, как правильно организовать слой доступа и зачем это нужно в проде.

Подробнее: https://gosamples.dev/repository-pattern/

#en

@go_in_action | Другие наши каналы
GOSAMPLES Repository pattern Learn Golang programming by example. GOSAMPLES is a library of Golang code snippets that let you solve everyday code problems.
Post #4628 129
Как обрабатывать ошибки репозитория в Go

В статье объяснены ErrDuplicate, ErrNotExist, ErrUpdateFailed и ErrDeleteFailed: когда их возвращать из Create/Update/GetByName/Delete и почему пользовательские ошибки важно обрабатывать отдельно от неожиданных сетевых сбоев.

Подробнее: https://gosamples.dev/repository-errors/

#en

@go_in_action | Другие наши каналы
GOSAMPLES Repository errors Learn Golang programming by example. GOSAMPLES is a library of Golang code snippets that let you solve everyday code problems.
Post #4627 136
Репозиторий на pgx: быстрее подключение к PostgreSQL

Кратко: обзор создания репозитория на pgx с использованием pgxpool.Pool вместо sql.DB. Методы pgx всегда принимают context.Context (Query, Exec и т.п.). Авторы pgx рекомендуют этот клиент как более производительный вариант.

Подробнее: https://gosamples.dev/repository-based-on-the-pgx-client/

#en

@go_in_action | Другие наши каналы
GOSAMPLES Repository based on the pgx client Learn Golang programming by example. GOSAMPLES is a library of Golang code snippets that let you solve everyday code problems.
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →