Category : golang

golang
Тестируемый код в Golang

Когда я вижу очередную статью или видеоурок про тестирование кода, я почти уверен, что мне опять расскажут про моки.Создаётся впечатление, что это самый лучший и правильный способ писать тесты, и вообще, невозможно обойтись без моков. Это не так! Можно писать тестируемый код без моков. Более того, использование моков следует избегать и использовать их только в специфичных случаях.Концепция мок-объектовКонцепция мок-объектов была впервые представлена в статье Endo-Testing: Unit Testing with Mock…

  • среда, 25 июня 2025 г. в 00:00:07
golang
10 непривычных моментов в Go для Java разработчика

Несколько лет назад я начал добавлять Go в свой арсенал языков (будучи на тот момент Java разработчиком). Мне было очень непривычно. Более того, я принял язык не с первой попытки. Причём пришлось принять его больше из-за сложившихся обстоятельств, чем по собственному желанию.Но прошло время, Go стал моим основным языком и, рискну сказать, любимым. В статье ниже расскажу, почему язык казался мне непривычным, какие парадигмы мне пришлось поменять в своей голове и почему во многом это оказалось бо…

  • понедельник, 23 июня 2025 г. в 00:00:06
golang
Как привинтить Python к Go

Здравствуйте,Меня зовут Александр Певзнер, и я программирую на Си и Go. Go обычно ассоциируется с бакендом, микросервисами и вот этим вот всем. Но я использую его необычным образом: я пишу на нём системное ПО.Почему я это делаю именно на Go? Этот язык привлекает меня своей простотой, лаконичностью, ясной семантикой, прекрасной документацией и великолепной стандартной библиотекой.Одна из моих программ, ipp-usb, написанная на Go, входит во все дистрибутивы Linux и *BSD и делает возможным использо…

  • пятница, 20 июня 2025 г. в 00:00:06
golang
7 шаблонов конкурентности в Go, которые вам стоит знать

Конкурентность — одна из самых мощных возможностей Go, и её освоение критически важно для создания масштабируемых и эффективных приложений. В этой статье мы рассмотрим 7 шаблонов конкурентности в Go, которые помогут вам писать надёжный код.1. Пул воркеровОписание: Пул воркеров создаёт фиксированное количество горутин, которые обрабатывают задачи из общей очереди. Этот шаблон полезен для управления количеством одновременно выполняемых задач и оптимизации использования ресурсов.package main impo…

  • пятница, 20 июня 2025 г. в 00:00:05
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