Всем привет!Не так давно я выкладывал RoadMap для самостоятельного изучения Go. Но во время обучения всегда встаёт важный вопрос: «А что учить дальше и на каком я уровне?».Чтобы закрыть и его, я подготовил логичное продолжение — таблицу с вопросами и темами для самопроверки по грейдам (Junior, Middle, Senior).Что это такое и зачем нужно?Это не экзаменационный билет, а скорее навигатор для развития. В таблице собраны ключевые темы и вопросы, которые помогут вам подготовиться к собеседованиям. Та…
ВведениеSystemd-rc - это шим-утилита, которая даёт возможность использовать привычные команды в дистрибутивах Linux c OpenRC, Runit, Dinit и скоро S6. Написан на Go, но могут внедряться части модули на C++ и других языках, если это будет необходимо. Стоит упомянуть сразу - это не эмулятор, он только переводит systemctl в rc-service/rc-update/loginctl.Встроен в QuasarLinux.Смысл этого всего?Смысл есть и вот причины его:Новички могут не знать OpenRC команд.Некоторые скрипты хотят systemctl, но ег…
Этот суслик — Гофер, эмблема Го. Ни одно реальное животное не пострадало!ВведениеМногие программисты, начав работать с 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 так и в других ЯП являе…