Category : golang

golang
Как я проверяю архитектурное мышление на собеседованиях одной задачей

Всем привет!Недавно мне нужно было нанять людей в команду по созданию системы на Python, Java, Go. Для меня крайне важны соблюдения принципов SOLID, Чистой архитектуры, Чистого кода.Я придумал задачу, которую спрашиваю на собеседованиях в свою команду. И мне хочется поделиться ею с вами.Надеюсь, она будет вам полезна!ЗадачаДля GoПредставь, у тебя есть структура, которая считает зарплату сотрудника: его KPI, премии и т. п., и создает PDF-отчет. Тебе нужно создать структуру для подсчета зарплаты …

  • пятница, 27 марта 2026 г. в 00:00:11
golang
Новый слабо централизованный мессенджер с E2E-шифрованием и групповыми чатами, написанный на Go при…

ВведениеМысль написать свой мессенджер у меня возникла ещё этак в прошлом году, почти четыре месяца назад. Тогда ещё трава была зеленее и Telegram нормально функционировал, без замедления и финального блокирования. Из-за работы, других проектов и в конце-концов лени я откладывал написание мессенджера до лучших худших времён. И вот такие времена настали, телеграм был полностью заблокирован и без использования VPN до него уже нормально не достучаться. С полыхающей пятой точкой и мотивацией Вергил…

  • пятница, 27 марта 2026 г. в 00:00:10
golang
Безопасный file upload в Go: 7 атак на загрузку файлов и как мы их закрывали

«Сделай форму загрузки PDF» – звучит как задача на полчаса. Claude/GPT напишет handler, мы добавим accept=".pdf" на фронте, multer на бэке – и вот у нас работающий upload. Можно деплоить.Проблема в том, что работающий upload и безопасный upload – это разные вещи. Разница между ними – несколько уязвимостей, каждая из которых может превратить ваш сервер в точку входа для атакующего.С распространением LLM-инструментов порог входа в разработку снизился радикально. Это прекрасно – больше люд…

  • пятница, 27 марта 2026 г. в 00:00:09
golang
Go и искусство ставить подножку разработчику: разоблачение

Язык проектировался простым, лёгким в освоении, готовым для написания веб-сервисов с первого дня. Он мог бы таким и остаться, если бы не одна проблема. Проблема отбора.Инженеры Google понимали, что без подводных камней, необходимости знать детали реализации языка и неконсистентного синтаксиса не о чем будет спрашивать на собеседовании.Явно ставилась задача — сделать язык достаточно простым, но не настолько, чтобы собеседование мог пройти любой новичок.ПреамбулаЭто первая статья из серии «Альтер…

  • четверг, 26 марта 2026 г. в 00:00:10
golang
Разбираем net/http на практике. Часть 2.3: Динамические маршруты, cookie-аутентификация и управлени…

Предисловие: статья является продолжением цикла «Разбираем net/http на практике». Здесь мы учимся создавать веб-приложения на чистом Go без сторонних веб-фреймворков и библиотек, совместно реализуя сервис мёртвой почты DeadDrop. Для понимания материала предлагаю ознакомиться с предыдущими статьями:Первая статья циклаПредыдущая статья циклаВведениеМы проделали огромный путь. В «Разбираем net/http на практике. Часть 2.1» мы заложили твёрдый фундамент – научились принимать и обрабатывать POST-запр…

  • среда, 25 марта 2026 г. в 00:00:09
golang
Некоторые мысли о проектировании библиотек (с примерами на Go)

Программисты много пользуются библиотеками. Но спроектировать библиотеку сложно. В этой статье я изложу некоторые соображения по поводу того, как создавать библиотеки. Для начала разграничим, чем нам приходится заниматься при программировании. Попробуем представить акты программирования как беседы. Далее разберём, какие основные виды деятельности складываются в «программирование», как его принято понимать. Всё это послужит нам основой для разработки более качественных программных библиотек.Итак…

  • среда, 25 марта 2026 г. в 00:00:08
golang
Как перестать наступать на грабли в Go: набор рабочих рецептов

Пишете на Go или только начинаете изучать язык? Эта шпаргалка точно сэкономит вам кучу времени. Никакой воды, абстрактных рассуждений и скучных введений. Мы пройдёмся по тем самым ситуациям, с которыми бэкендеры сталкиваются на каждом проекте: конкурентность, сеть, работа с JSON, обработка ошибок, тесты и дебаг.Можете смело добавлять это в закладки. Забыли синтаксис или паттерн, открыли нужный раздел, скопировали, адаптировали и поехали дальше.Каждый блок кода ниже — это самостоятельный пример.…

  • среда, 25 марта 2026 г. в 00:00:07
golang
Тоталитарный Golang

Всем привет! Сегодня я попробую вас убедить, что уникальным торговым предложением языка Go являются не горутины, скорость, минималистичность или современность, а "тоталитарность". Что?Преимуществами Go называют скорость, производительность, многопоточность, современность и удобность в микросервисах (чтобы это ни значило), и часто эти свойства выделяются как что-то уникальное.Но разве в Java нет горутин? Разве Python какой-то старый? Разве Rust не быстрее? Мои коллеги не правы, потому чт…

  • вторник, 24 марта 2026 г. в 00:00:07
golang
Когда нейросети общаются сами: эксперимент с диалогом двух LLM и графическая утилита на Go

Всем привет! Что будет, если задать двум LLM моделям одну тему и позволить вести диалог без участия человека? Я написал небольшую программу на Go, которая делает это автоматически. Рассказываю как она устроена и почему она может пригодиться каждому, кто работает с Ollama. Один интерфейс для двух моделейПрограмма представляет собой графическое приложение на Fyne. В верхней левой части окна настройка диалога. Выбираем две модели из списка, который программа получает командой ollama list. Можно за…

  • понедельник, 23 марта 2026 г. в 00:00:36