Этот суслик — Гофер, эмблема Го. Ни одно реальное животное не пострадало!ВведениеМногие программисты, начав работать с Go, удивляются, что скомпилированная программа работает со скоростью Python-скрипта. Как так может получиться, ведь Go — это компилируемый язык?Разработчики, пишущие многопоточный код, с удивлением замечают, что Go частенько не может нагрузить все ядра процессора более 50-60%.В этой статье мы рассмотрим некоторые оптимизации, которые могут пригодиться при создании высокопроизво…
Многие не понимают, зачем проходить бесплатные части курсов. Кажется: ну что там можно узнать за пару часов? У нас в Практикуме бесплатная часть — это не просто демо, а полноценный мини-курс. Вы не просто посмотрите на код со стороны, а напишете первые программы сами, поймёте логику языка и оцените, подходит ли вам профессия. Сегодня покажем, что ждёт вас в бесплатной части курса «Go-разработчик с нуля». Спойлер: за несколько часов вы напишете свой первый код, разберётесь с переменными и типами…
В этом техническом разборе рассмотрим, как инженеры Harness обнаружили и исправили критическую утечку памяти в Go: переназначение переменной контекста в циклах воркеров порождало невидимые цепочки, мешавшие сборщику мусора освобождать память в тысячах горутин, из-за чего их сервис-делегат CI/CD в итоге потреблял гигабайты памяти.Загадка: тревожная корреляция между CPU и памятьюВ нашем стейджинг-окружении, которое обрабатывает ежедневные CI/CD-процессы всех разработчиков Harness, наш Hosted Harn…
Привет! Меня зовут Егор Козлов, я работаю NLP-инженером в red_mad_robot. Мы активно внедряем в бизнес AI-агентов — автономных и полуавтономных программных сущностей, которые самостоятельно выполняют задачи и принимают решения в интересах бизнеса. В статье расскажу о принципах работы AI-агентов — с особым вниманием к workflow-агентам и мультиагентным системам (MAS). И поделюсь практическим кейсом внедрения мультиагентной среды для автоматического анализа и исправления уязвимостей в коде.Агент ил…
Привет, Хабр! Сегодня мы поговорим о том, как справиться с синхронизацией данных в офлайн‑режиме так, чтобы не сваливать на пользователя головную боль слияния конфликтов. Вы наверняка замечали, что многие современные приложения — будь то заметки, менеджеры задач или вики‑редакторы — позволяют работать оффлайн на нескольких устройствах, а при подключении к сети автоматически объединяют изменения. Задача разработчика в таком случае сделать максимально гладкую синхронизацию одновременно изменённых…
Команда Go for Devs подготовила перевод статьи о том, как грамотно организовать маршруты в Gin. Автор показывает, как группировка маршрутов помогает писать чистый, масштабируемый и легко поддерживаемый код. Если вы строите веб-API на Go — это навык, который стоит освоить.Как разработчик, который создавал и поддерживал несколько веб-API на Gin, я особенно ценю важность чистого, структурированного и масштабируемого кода. Один из самых мощных инструментов для этого — группировка маршрутов в Gin. Е…
Всем привет!Сегодня хочу поделиться с вами заметкой о своем опыте написания с нуля примитивов синхронизации на чистом Go, совместимых c реализациями из стандартной библиотеки. Цель заметки - на понятных примерах посмотреть как работает под капотом то чем мы пользуемся регулярно как разработчики, а также разобраться с популярными проблемами возникающими при написании многопоточных программ.Введение. Пишем собственный MutexСамым популярным примитивом синхронизации как в Go так и в других ЯП являе…
Оно работает!... или может ли ИИ заменить программиста? Сейчас со всех сторон долбят про то, как ИИ помогает в жизни и вообще, если ты не используешь ИИ, то ты в отстающих и лузер. Я к этому отношусь спокойно, ибо мои занятия совершенно не допускают использование ИИ из-за очень большой цены ошибки, но долбежка все-таки делает свое дело. Плюс как-то внезапно обнаружил, что у (не реклама) cloud.ru доступны Foundation Models (они же БЯМ, они же LLM) без оплаты. Понятное дело, тестовый период и про…
Команда Go for Devs подготовила перевод статьи о том, как в Go устроено управление скоростью работы сборщика мусора. TL;DR: даже при тысячах горутин GC подстраивается под нагрузку, выбирая между меньшим числом долгих пауз и большим числом коротких. Итог — разработчику почти не нужно вручную «крутить» настройки, рантайм сам находит оптимальный ритм.ПрелюдияЭто третья статья из серии из трёх статей, цель которой — помочь вам понять механику и семантику работы сборщика мусора в Go. В этой статье р…