Иногда хочется написать простое API на Go и быстро отдать JSON-ответ. Но апи это не только про данные, но и про разные статус-коды — 200, 400, 500. Давайте сделаем это максимально минималистично.
Простой сервер с обработкой статусов:
package main
import (
"encoding/json"
"net/http"
)
type Response struct {
Status int `json:"status"`
Message string `json:"message"`
}
func handler(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodGet {
w.WriteHeader(http.StatusMethodNotAllowed)
json.NewEncoder(w).Encode(Response{Status: 405, Message: "Метод не поддерживается"})
return
}
w.WriteHeader(http.StatusOK)
json.NewEncoder(w).Encode(Response{Status: 200, Message: "Все ок!"})
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
В итоге у нас минималистичный сервер, который отвечает корректным статусом и JSON, а не просто «Hello world» в лоб.
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🥱9❤3😁1👾1
💬 Сколько у вас томатов в зарплате?
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
😁14👾4
У кого растут зарплаты в айтишечке? Не всё так радужно, как показывают отчёты: зарплаты растут на бумаге, но не в жизни.
Рассказываем в карточках, какие тренды определяют рынок IT-зарплат прямо сейчас.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🔧 Эффективное управление горутинами
Горутины — это то, что открывает перед нами огромные возможности. Однако, с большим количеством задач приходит и необходимость эффективно управлять ими.
Давайте представим ситуацию, когда вам нужно выполнить множество однотипных операций — например, обработку запросов к базе данных, массовую загрузку данных или параллельные вычисления.
С помощью Ants вы создаете пул горутин, который управляет числом параллельных задач, позволяя их выполнять только в пределах установленного лимита.
Например, если вы хотите ограничить количество одновременно выполняющихся горутин до 10:
Несмотря на то, что добавляем 20 задач, одновременно будут работать только 10, и по мере их завершения пул будет заполняться новыми задачами.
Что ещё умеет Ants:
• Пул горутин обрабатывает паники.
• Можно использовать контексты для отмены задач.
• Можно настраивать пул по ёмкости, числу параллельных задач и времени жизни горутин.
➡️ GitHub библиотеки
🐸 Библиотека Go-разработчика
#буст
Горутины — это то, что открывает перед нами огромные возможности. Однако, с большим количеством задач приходит и необходимость эффективно управлять ими.
Давайте представим ситуацию, когда вам нужно выполнить множество однотипных операций — например, обработку запросов к базе данных, массовую загрузку данных или параллельные вычисления.
С помощью Ants вы создаете пул горутин, который управляет числом параллельных задач, позволяя их выполнять только в пределах установленного лимита.
Например, если вы хотите ограничить количество одновременно выполняющихся горутин до 10:
package main
import (
"fmt"
"sync"
"time"
"github.com/panjf2000/ants/v2"
)
func main() {
pool, _ := ants.NewPool(10) // Создаем пул с 10 горутинами
defer pool.Release() // Освобождаем ресурсы по завершению
var wg sync.WaitGroup
for i := 0; i < 20; i++ { // Добавляем 20 задач
wg.Add(1)
pool.Submit(func() {
defer wg.Done()
fmt.Println("Задача выполняется")
time.Sleep(1 * time.Second) // Симуляция работы
})
}
wg.Wait() // Ждем завершения всех задач
fmt.Println("Все задачи завершены!")
}
Несмотря на то, что добавляем 20 задач, одновременно будут работать только 10, и по мере их завершения пул будет заполняться новыми задачами.
Что ещё умеет Ants:
• Пул горутин обрабатывает паники.
• Можно использовать контексты для отмены задач.
• Можно настраивать пул по ёмкости, числу параллельных задач и времени жизни горутин.
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🤔1
Мы сделаем вам предложение, от которого невозможно отказаться 🤌
Вы покупаете себе курс «Математика для Data Science» от преподавателей ВМК МГУ, а мы дарим второй такой же курс вашему другу.
Предложение действует только до 1 сентября. Ничего личного, просто математика.
👉 Принять предложение
Вы покупаете себе курс «Математика для Data Science» от преподавателей ВМК МГУ, а мы дарим второй такой же курс вашему другу.
Предложение действует только до 1 сентября. Ничего личного, просто математика.
👉 Принять предложение
Please open Telegram to view this post
VIEW IN TELEGRAM
😁35❤1
📢 Какой сетап идеально подойдёт для разработки AI-агента?
Голосуйте за свой вариант и пишите в комментариях, в каком режиме вы реально кодите.
❤️ — 1
👍 — 2
⚡️ — 3
👏 — 4
🔥 — 5
🎉 — 6
😁 — 7
😍 — 8
🤩 — 9
Какой бы сетап ни был, без AI-агентов в 2025 всё равно далеко не уедешь.
👉 Научим, как строить агентов, которые кодят с тобой
Голосуйте за свой вариант и пишите в комментариях, в каком режиме вы реально кодите.
❤️ — 1
👍 — 2
⚡️ — 3
👏 — 4
🔥 — 5
🎉 — 6
😁 — 7
😍 — 8
🤩 — 9
Какой бы сетап ни был, без AI-агентов в 2025 всё равно далеко не уедешь.
👉 Научим, как строить агентов, которые кодят с тобой
❤25👍16🎉13🤩12⚡11
Если вы работаете с базами данных или просто интересуетесь эффективными способами масштабирования, то для вас мы нашли интересный материал.
Показывают, как создать свой прокси-сервер на Go, который перехватывает SQL запросы и изменяет их в реальном времени.
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👾5
Изучение алгоритмов — важнейшая часть подготовки к работе с программированием. Тема не из простых, особенно для начинающих.
Вот и подписчик хочет разобраться:
С чего начать изучение алгоритмов на Go?
Прежде чем углубляться в выбор алгоритмов, стоит понять базовые концепты. Go — это язык, который идеально подходит для работы с алгоритмами, поскольку он обладает отличной производительностью и встроенными библиотеками для работы с коллекциями данных.
Прекрасной отправной точкой для изучения являются официальные пакеты Go, такие как
container/list
, container/heap
и sort
, которые уже реализуют множество необходимых алгоритмов и структур данных.#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
⚡️ Укротители рутины
В разработке на Go мы много времени тратим на одно и то же: запуск go run, тесты, линтеры, сборку бинарников. Всё это быстро превращается в рутину.
Алиасы — простой способ ускорить работу. Один раз настроил — и больше не пишешь длинные команды на автомате:
Начните с таких маленьких оптимизаций — и каждый день будешь экономить десятки минут.
🐸 Библиотека Go-разработчика
#буст
В разработке на Go мы много времени тратим на одно и то же: запуск go run, тесты, линтеры, сборку бинарников. Всё это быстро превращается в рутину.
Алиасы — простой способ ускорить работу. Один раз настроил — и больше не пишешь длинные команды на автомате:
alias grun="go run main.go" # Запуск проекта
alias gtest="go test ./..." # Все тесты
alias gcover='go test ./... -coverprofile=coverage.out && go tool cover -html=coverage.out' # Покрытие кода
alias gbuild="go build -o app" # Сборка бинарника
alias gtidy="go mod tidy" # Чистка зависимостей
Начните с таких маленьких оптимизаций — и каждый день будешь экономить десятки минут.
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🥱4
🎧 Величайший Cup o' Go всех времён
В этом эпизоде ведущие обсуждают мероприятия для гоферов: встречи на GopherCon в Нью-Йорке, возможный митап в Сан-Франциско и GoConf 12 сентября в Москве.
Также выходит GopherJS 1.19 с generics, а в короткой рубрике Lightning Round упоминаются интересные инструменты и статьи: GoAT (Go ASCII Tool) и пост про работу с срезами в Go.
➡️ Слушать подкаст
🐸 Библиотека Go-разработчика
#свежак
В этом эпизоде ведущие обсуждают мероприятия для гоферов: встречи на GopherCon в Нью-Йорке, возможный митап в Сан-Франциско и GoConf 12 сентября в Москве.
Также выходит GopherJS 1.19 с generics, а в короткой рубрике Lightning Round упоминаются интересные инструменты и статьи: GoAT (Go ASCII Tool) и пост про работу с срезами в Go.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
💻 Пишете на Go, но всё еще не уверены в интерфейсах?
📅 3 сентября в 20:00 на открытом вебинаре OTUS эксперт по Go разложит интерфейсы на атомы. Вы узнаете, как устроен тип interface изнутри и почему этот инструмент незаменим в современном Go-коде. Разберём самые распространённые ошибки и расскажем, как избегать panic при использовании интерфейсов.
Получите навыки и уверенность, чтобы писать чистый и безопасный код, избегая типичных ловушек языка. Вебинар проходит в преддверие курса «Golang Developer. Professional».
🔴 Регистрируйтесь прямо сейчас и прокачайте свой код на Go: https://otus.ru/lessons/golang-professional/?utm_source=telegram&utm_medium=cpm&utm_campaign=go&utm_term=goproglib&utm_content=mql_lesson_03-09-2025_usp-go_go_aitext_no-headline_aida_short_aibanner_aibanner-hl2_white_standart&erid=2VtzqushepS#event-6101
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
📅 3 сентября в 20:00 на открытом вебинаре OTUS эксперт по Go разложит интерфейсы на атомы. Вы узнаете, как устроен тип interface изнутри и почему этот инструмент незаменим в современном Go-коде. Разберём самые распространённые ошибки и расскажем, как избегать panic при использовании интерфейсов.
Получите навыки и уверенность, чтобы писать чистый и безопасный код, избегая типичных ловушек языка. Вебинар проходит в преддверие курса «Golang Developer. Professional».
🔴 Регистрируйтесь прямо сейчас и прокачайте свой код на Go: https://otus.ru/lessons/golang-professional/?utm_source=telegram&utm_medium=cpm&utm_campaign=go&utm_term=goproglib&utm_content=mql_lesson_03-09-2025_usp-go_go_aitext_no-headline_aida_short_aibanner_aibanner-hl2_white_standart&erid=2VtzqushepS#event-6101
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Правильно организованный корпоратив — это способ поднять мотивацию и улучшить атмосферу в компании.
Если продумать всё заранее, коллеги будут уходить не уставшими, а вдохновлёнными, с ощущением, что время проведено не зря.
В карточках пять конкретных действий и советов, которые помогут избежать хаоса и не огорчить коллег.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔1