Category : golang

golang
Писал мониторинг на Go «за выходные» — застрял на месяцы. Вот на чём

В этой статье я расскажу, на какие подводные камни я споткнулся при разработке своего пет‑проекта — мониторинга сайтов на Golang, аналог UptimeRobot. Начнем издалека... Я хотел разработать пет‑проект, но не банальный todolist, а что‑то свежее, интересное в плане архитектуры и реализации. Шерстя по просторам интернета, я наткнулся на UptimeRobot — сервис для мониторинга сайтов. Азарт и любопытство взяли верх и я начал продумывать, как буду разрабатывать «свой» UptimeRobot. Думал — делов на пару …

  • суббота, 13 июня 2026 г. в 00:00:08
golang
sqlh — SQL в Go без boilerplate: пишем CRUD за 50 строк

Zero-boilerplate SQL для Go. Опиши структуру тегами — и это всё.Если вы пишете на Go и работаете с SQL-базами, вы знаете эту боль. Каждый CRUD-запрос — ручной SQL-строка, rows.Scan для каждого поля, Begin/Commit/Rollback вокруг записи, и постоянная синхронизация DDL-схемы с кодом. Шаблонный код не заканчивается никогда.Это рассказ о sqlh — библиотеке, которая убирает всё это, оставаясь в «золотой середине» между raw SQL (слишком много работы) и тяжёлыми ORM (слишком много магии).§1. Проблема: G…

  • суббота, 13 июня 2026 г. в 00:00:07
golang
Пишем TCP-сканер портов на Go: goroutine, timeout и CSV-отчёт

Недавно знакомый попросил помочь с небольшой задачей по проверке внешнего периметра сети компании. Сразу уточню: речь шла об инфраструктуре, на проверку которой было разрешение.Под внешним периметром обычно понимают всё, что доступно из интернета: публичные IP-адреса, домены, поддомены, облачные или VPS-серверы, а также сервисы, которые слушают внешние порты.Задача была простой по формулировке, но интересной технически: нужно понять, какие адреса доступны извне и к каким портам можно подключить…

  • пятница, 12 июня 2026 г. в 00:00:24
golang
Как я веб-приложение на Go для архитектуры MIPS кросс-компилировал

ВведениеПривет, Хабр! Являюсь давним пользователем маршрутизаторов Keenetic/Netcraze. В свое время подкупили надежность устройств, широкие возможности программного обеспечения, оперативная техническая поддержка, большое сообщество пользователей возможность установки дополнительных пакетов через среду Entware. В относительно недавнем прошлом производитель строил свои устройства на базе mips/mipsel чипов, таким образом, несколько таких устройств оказались у меня в руках.Дополнительные пакеты в ре…

  • пятница, 12 июня 2026 г. в 00:00:22
golang
Натягиваем сову на глобус или оценка применимости TSI на другие языки

Привет, Хабр! В прошлых статьях я описала, как через нововведенный параметр TSI теоретически можно определить грейд разработчика. Для тех, кто пропустил первую часть: TSI (Topological Seniority Index) — это метрика, которая нивелирует мусор в вакансиях и позволяет отразить качественный скачок при переходе между грейдами. Она считается исходя из суммы взвешенной мощности стека, уровня ответственности и архитектурного признака в списке требований. Но до этого мы говорили только про один язык – C#…

  • пятница, 12 июня 2026 г. в 00:00:20
golang
sing-box-lx: как, почему и зачем я завёл fork сетевого ядра — XHTTP + AWG2 для всех

Если вы пользовались моим LxBox или десктопным лаунчером, то могли натыкаться на оранжевый баннер: «с этим узлом, скорее всего, не соединится». Так клиент честно сознаётся, что наткнулся на узел с транспортом XHTTP, а ядро sing-box, на котором всё крутится, его не умеет. В этот момент лаунчер тихо даунгрейдит конфиг до HTTPUpgrade.А еще сразу как я выпустил приложение пришли запросы с AWG/AWG2 и такие: сделай! а я сюдаВ какой-то момент я устал ждать и собрал свой форк ядра — sing-box-lx. Сегод…

  • четверг, 11 июня 2026 г. в 00:00:22
golang
Рецензия на книгу «Go: разработка приложений в микросервисной архитектуре»

Июнь — месяц рецензий на книги по языку Go в нашем блоге SSP SOFT. Сегодня разбираем книгу Юлии Поповой «Go: разработка приложений в микросервисной архитектуре с нуля».При этом, в названии позиционирование указано не очень четко, речь именно про процесс разработки микорсервисов с нуля, а не про нулевые навыки в Go. Книга в основном ориентирована на уже уверенных в своих знаниях языка начинающих разработчиков (джунов) на Go. Книга небольшая, 320 страниц, пять глав. И самое ценное в ней —  пример…

  • четверг, 11 июня 2026 г. в 00:00:21
golang
Мессенджер Ласточка. Мы в Rustore. Cобственный DSL и федеративная архитектура

Путь от идеи до работающего мессенджера с открытым кодом — в последнем отчёте.Я начал рассказывать о проекте «Ласточка» на Хабре чуть больше двух месяцев назад. Тогда это были вопросы нужен ли еще один мессенджер, которые переросли в твёрдое намерение построить честный российский мессенджер для обычной жизни — семьи, друзей, работы. Регистрация в RustoreЧерез некоторое время после публикации предпоследней статьи я получил вот такое письмоСкрин из почтыИ после нескольких модераций приложение одо…

  • четверг, 11 июня 2026 г. в 00:00:19
golang
Accept-driven development или давайте снова понимать свой код

Наверное, через это уже прошёл каждый из нас :)Где-то после полугода очень достаточно работы с агентами я стал принимать диффы быстрее, чем успеваю реально в них вникнуть, в итоге в один из я оказался в ситуации, что словил баг, а на поиски проблемы потратил чуть больше часа, а найдя ее, я понял, на сколько она была тривиальнойКороче говоря, то что мы используем агентов - конечно суперсила, но в итоге, мы все начинаем идти по “Accepted driven development” , а это уже начинает сильно отупливать …

  • четверг, 11 июня 2026 г. в 00:00:18