Category : golang

golang
Масштабирование stateful приложений

Всем привет! В этой статье я хочу разобрать довольно-таки интересную и в то же время сложную тему - "Поддержание консистентного состояния в stateful сервисах при масштабировании". Введение Когда мы пишем сервисы у которых есть свое состояние нам рано или поздно необходимо начинать задумываться о том, что же будет когда нагрузка на наше приложение вырастет. Ответ - масштабироваться. При горизонтальном масштабировании мы увеличиваем количество реплик сервиса, однако такой подход в statefu…

  • четверг, 17 июля 2025 г. в 00:00:10
golang
Строим PaaS внутри крупной компании: опыт ВКонтакте

Со временем в каждой крупной IT-компании накапливается критическая масса однотипных решений для рутинных задач, а также сервисы и библиотеки, написанные на разных языках. Сначала кажется, что это круто: каждый волен выбирать инструменты под себя и свою задачу. А потом становится очевидно, что разнообразие — это хорошо, но не для поддержки и развития десятков, а то и сотен сервисов. Мы ВКонтакте остро ощутили это сейчас, когда масштабно перестраиваемся и переходим к сервисной архитектуре. Отвеча…

  • четверг, 17 июля 2025 г. в 00:00:10
golang
Каналы(channels) в Go

Каналы — инструмент для передачи данных между горутинами. Это фундаментальная концепция, на которой строится вся модель параллелизма в языке, и одна из ключевых особенностей, которая делает Go уникальным среди современных языков программирования. За внешней простотой синтаксиса ch <- value и <-ch скрывается сложная реализация, которая включает в себя кольцевые буферы, системы очередей, механизмы блокировки и тесную интеграцию с планировщиком горутин. В этой статье разберем их внутреннее …

  • среда, 16 июля 2025 г. в 00:00:09
golang
Приложение на Go шаг за шагом. Часть 3: форматирование и обёртывание ответов JSON

Привет! Я Владислав Попов, автор курса «Go-разработчик с нуля» в Яндекс Практикуме. В серии статей я хочу помочь начинающим разработчикам упорядочить знания и написать приложение на Go с нуля: мы вместе пройдём каждый шаг и создадим API для получения информации о книгах и управления ими. В прошлых частях мы создали сервер с тремя эндпоинтами, добавили базовую конфигурацию, логгер и обновили обработчики для возврата ответов в формате JSON. В этой статье будем продолжать развивать наш сервис и уз…

  • среда, 16 июля 2025 г. в 00:00:08
golang
Как добавить GigaChat в проект за 3 шага. Гайд и опенсорс-инструмент

Привет, Хабр!В последнее время все больше разработчиков экспериментируют с большими языковыми моделями. GigaChat от Сбера — одна из самых доступных и мощных моделей на российском рынке. У нее есть подробное REST API, которое позволяет интегрировать нейросеть в любой продукт: от телеграм-ботов до сложных корпоративных систем.Однако, как и при работе с любым серьезным API, прямая интеграция требует решения нескольких рутинных, но важных задач: нужно управлять аутентификацией, обрабатывать жизненн…

  • среда, 16 июля 2025 г. в 00:00:06
golang
Валидация данных в Go с go-playground/validator: полное руководство

Зачем нужна валидацияВалидация входных данных — критически важная часть любого приложения. Без неё ваше приложение подвержено:паникам и ошибкам из-за неожиданных nil или невалидных значений,некорректной работе бизнес-логики при обработке невалидных данных,уязвимостям безопасности (SQL-инъекции, XSS и др.),сложностям в отладке из-за непредсказуемого поведения.Проблемы ручной валидацииРассмотрим типичный подход к валидации без специализированных библиотек:type User struct { Name string …

  • среда, 16 июля 2025 г. в 00:00:06
golang
Алгоритмы для работы с большими данными в Go: HyperLogLog и Count-Min Sketch

Всем привет! Для начала давайте разберем что такое вообще Алгоритмы для работы с большими данными, основная суть алгоритмов для работы с большими данными  — это эффективная обработка огромных объёмов информации при минимальных вычислительных ресурсах (памяти, CPU, диске). Их суть — жертвовать точностью ради скорости и масштабируемости. Примеры:Потоковая обработкаРаспределённые системы (агрегация на многих узлах).Реал‑тайм аналитика (быстрые ответы на лету).Главные алгоритмы и их сутьАлгоритмЧто…

  • понедельник, 14 июля 2025 г. в 00:00:06
golang
Большой разбор Строк Go -> «Типы и структуры данных Go»

Доброе утро/день/вечер/ночь!Меня зовут Рома и это вторая часть цикла «Типы и структуры данных Go». В этот раз будем разбираться с внутренностями строк. В первой части этого цикла я уже говорил, что какое-то время назад я захотел изучить всю внутрянку Go, заглянуть в исходники языка и понять, почему все устроено так, как устроено. В этот самый момент я обнаружил, что на просторах интернета практически отсутствуют материалы, которые подробно разбирают типы данных, их вспомогательные функции, дета…

  • суббота, 12 июля 2025 г. в 00:00:07
golang
Большой разбор Слайсов Go -> «Типы и структуры данных Go»

Привет, меня зовут Рома! Какое-то время назад я захотел изучить всю внутрянку Go, заглянуть в исходники языка и понять, почему все устроено так, как устроено. В этот самый момент я обнаружил, что на просторах интернета практически отсутствуют материалы, которые подробно разбирают типы данных, их вспомогательные функции, детали реализации рантайма и так далее. Поэтому мной было принято решение сделать это самостоятельно. Изначально я занимался этим для себя, но позже решил, что стоит поделиться …

  • пятница, 11 июля 2025 г. в 00:00:10