Category : golang

golang
net/http: Разбираем работу сервера «под капотом»

В мире разработки веб‑приложений (да, да, это тот самый хайп про «хайлоад», «легковесные потоки», «io‑bound нагрузки» и другое) Go завоевал популярность благодаря своей производительности, легкости и надежности. Одним из ключевых компонентов экосистемы Go является стандартный пакет net/http, который предоставляет инструменты для создания HTTP‑серверов и клиентов. Однако, несмотря на кажущуюся простоту использования этого пакета, понимание внутренних механизмов работы сервера может значительно п…

  • четверг, 19 июня 2025 г. в 00:00:14
golang
Разгоняем Go TLS до 100 Gbps с сервера: опыт Kinescope

Современные пользователи ожидают, что видео загрузится мгновенно, не зависнет на 47-й секунде и будет защищено от посторонних глаз. При этом большинство из них не догадывается, кто именно доставляет этот контент, и где начинается «магия» — а где инженерия.Мы в Kinescope — те, кто эту магию делает. Видео, которое вы смотрите в интернете, вполне может идти через нашу инфраструктуру — пусть даже вы об этом не знаете. Под капотом у нас: высоконагруженные сервисы, сотни тысяч RPS, терабиты трафика и…

  • среда, 18 июня 2025 г. в 00:00:10
golang
Ваш девопс не виноват, а база данных — тем более. Ищем кто жрет память с pprof на Go

Ваше приложение на Go начало тормозить. Первая мысль? Наверное, база данных медленно отвечает. Вторая? Может, сеть лагает. Мы начинаем строить догадки, добавлять кэши, оптимизировать запросы, переписывать SQL-конструкции, дергать девопсов... и часто бьем мимо цели. Мы тратим часы, а то и дни, на оптимизацию того, что и так работало нормально, в то время как настоящая проблема прячется в совершенно неожиданном месте нашего собственного кода. Знакомая боль, не правда ли? Чтобы перейти от предпол…

  • вторник, 17 июня 2025 г. в 00:00:06
golang
RoadMap по Go: с нуля до middle

RoadMapВсем привет! В последнее время мои знакомые стали меня часто спрашивать, как вкатиться в разработку на Go, и каждому я отвечал +- одно и то же, скидывал +- одни и те же материалы, которыми пользовался когда-то сам. И чтобы постоянно не повторяться, я решил составить простой и понятный алгоритм действий: «Учишь это шаг за шагом и становишься Go-разработчиком».По мере накидывания шагов я начал прикреплять материалы по теме, которые смотрел сам или советовал другим. В итоге получился полноц…

  • воскресенье, 15 июня 2025 г. в 00:00:02
golang
Автоматизация контента: как я сделал умного Tg-бота для публикации видео из VK (очередь, дедупликац…

Маскот проекта, стала уже традициейЗдравствуйте, коллеги!Хочу поделиться опытом проектирования и реализации production-ready Telegram-бота, который автоматически собирает и публикует свежий видеоконтент из паблика ВКонтакте — и делает это без дублей, с гарантией доставки и мемными подписями на базе OpenAI. В статье я покажу архитектуру, приведу примеры кода и расскажу о фишках, таких как очередь ссылок на видео (NutsDB), проверка на уникальность (deduplication), скачивание через yt-dlp и интегр…

  • суббота, 14 июня 2025 г. в 00:00:03
golang
Обработка ошибок в Go

Обработка ошибок — это один из самых важных аспектов написания надёжного кода. В Go к этому вопросу подошли нестандартно: вместо традиционного механизма try/catch, как в Java или Python, ошибки просто возвращаются как значения. Изначально это может показаться странным, но на практике этот подход делает обработку ошибок более явной и честной.В этой главе мы разберёмся с тем, когда стоит использовать panic , какие есть распространённые ошибки при его использовании и как правильно обрабатывать иск…

  • пятница, 13 июня 2025 г. в 00:00:10
golang
TUI-интерфейсы не обязаны быть болью. Я написал свой с мышкой

Я давно пишу на Go, но раньше у меня был довольно плотный опыт во фронтенде. Поэтому, когда я захожу в терминальные интерфейсы, я всё ещё ожидаю какого-то базового UX — чтобы было понятно, что происходит, что можно нажимать, и что именно ты сейчас делаешь.Но каждый раз, когда мне нужно было поработать с TUI — особенно в задачах, вроде удаления файлов по фильтру, — я чувствовал, как мой мозг вытекает через уши.Мои страданияНедавно мне просто нужно было удалить старые тяжелые и всякий мусор из, …

  • четверг, 12 июня 2025 г. в 00:00:05
golang
OCP из SOLID

Знаю, что тема уже изъезжана вдоль и поперек, но я хотел бы поделиться своим видением Open/Close Principle из всеми любимым SOLID подходу к построении архитектуры софта. Ведь дядюшка Боб херни не посоветует, все таки опыта ему не занимать, поскольку он с 70х годов в разработке и знает базу, что нам и нужно. Да, современный софт ушел далеко от того какой он был в 70-х, когда писали логические цепочек на перфокартах, делая дырки в картоне и компиляция занимала прямо пропорционально количеству эти…

  • среда, 11 июня 2025 г. в 00:00:06
golang
Вероятно, вам не нужен DI-фреймворк

Я считаю, что при работе с Go в контексте нашей отрасли внедрение зависимостей (dependency injection, DI) часто имеет плохую репутацию из-за DI-фреймворков. Но сама по себе DI как техника довольно полезна. Просто её объясняют слишком большим количеством ОО-жаргона, что приводит к ПТСР у тех, кто перешёл на Go, чтобы сбежать из культа банды четырёх.Внедрение зависимостей — это 25-долларовый термин для 5-центовой концепции.— Джеймс ШорПо сути, DI означает передачу значений в конструктор вместо то…

  • среда, 11 июня 2025 г. в 00:00:05