home.social

#горутины — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #горутины, aggregated by home.social.

fetched live
  1. Питон не проглотит суслика: почему Go и Python обречены делить один прод

    Гипотеза, с которой я начинала, звучала максимально прямолинейно: Go компилируется в машинный код, питон интерпретируется, значит Go быстрее примерно везде, и заменить им питон можно в любой момент, было бы желание. Проверять ее я решила замерами и заодно вести счет, как на ринге: за каждый раунд, в котором язык выигрывает по заранее выбранной метрике, ему достается очко. Раундов в итоге набралось восемь, и трещать по швам гипотеза начала уже на втором.

    habr.com/ru/articles/1085406/

    #python #go #golang #numpy #openblas #asyncio #горутины #GIL #cgo #бенчмарк

  2. Статьи по Go, которые стоит почитать

    Если посмотреть на самые обсуждаемые публикации Go-сообщества последних месяцев, можно заметить любопытную закономерность. Среди них почти нет материалов про новые конструкции языка, generics или очередные изменения синтаксиса. Зато много статей про диагностику утечек горутин, профилирование памяти, внутреннее устройство рантайма, особенности современных процессоров и эксплуатацию высоконагруженных PostgreSQL-кластеров. В 2026 году экосистема Go значительно «повзрослела». Сама спецификация языка уже стабилизировалась, и фокус инженерного внимания сместился в сторону эксплуатации (Production Engineering) — предсказуемости памяти, автоматической диагностики рантайма, управлению ресурсами железа и устойчивости баз данных под высокой нагрузкой. На связи команда Golang-инженеров Авито , а ниже — несколько публикаций, которые хорошо показывают этот сдвиг.

    habr.com/ru/companies/avito/ar

    #go #postgresql #GOEXPERIMENT #горутины #утечки_горутин #профилирование #Golang #SIMD

  3. Утёкшие горутины теперь ищет сборщик мусора. Проверил, где он молчит

    В Go 1.27 профиль goroutineleak вышел из эксперимента: рантайм научился доказывать, что горутину уже некому разбудить. Собрал тулчейн из исходников, прогнал десяток программ и замерил, что детектор находит, где он молчит и во что обходится вызов.

    habr.com/ru/articles/1076654/

    #golang #горутины #pprof #сборка_мусора #утечки_памяти #runtime #go_127 #отладка

  4. [Перевод] Fire‑and‑forget в Go: практический гайд по управляемым фоновым задачам

    У go func() есть неприятная особенность: вместе с результатом выполнения легко потерять контроль над самой задачей. Разберём, как пропускать такую работу через единый пул воркеров, отвязывать её от контекста запроса и при этом гарантированно дождаться уже принятых задач при штатной остановке сервиса. Разобрать решение

    habr.com/ru/companies/otus/art

    #Go #горутины #конкурентность #многопоточность #каналы #фоновые_задачи #воркеры #контекст #производительность #архитектура_приложений

  5. System Design на практике: создаем микросервис генерации уникальных идентификаторов

    Привет! Это вторая часть серии статей, посвященной проектированию реальной системы сокращения ссылок. В [прошлой статье] мы спроектировали общую микросервисную архитектуру нашего будущего высоконагруженного сервиса. Мы разделили монолит на независимые компоненты, определили зоны ответственности и настроили их взаимодействие. Сегодня мы переходим от теории к практике и займемся сердцем любого сокращателя ссылок — микросервисом генерации уникальных идентификаторов (ID) . Почему это отдельная проблема? На первый взгляд задача кажется тривиальной: взять случайную строку или автоинкремент из базы данных. Но когда система сталкивается с масштабами миллионов запросов в секунду (RPS), стандартные подходы ломаются:

    habr.com/ru/articles/1068960/

    #микросервисная_архитектура #сокращатель_ссылок #асинхронная_обработка_ошибок #горутины #каналы_go #grpc_серверы #graceful_shutdown

  6. Чем Go полезен при разработке AI-агентов

    Всем привет! Меня зовут Илья Данилкин , я тимлид в Авито Авто . AI-агенты обычно живут рядом с Python, но всё же немало команд выбирают язык Go. Дело в том, что агенты большую часть времени не заняты сложными математическими расчётами, а ждут ответа модели или результата инструмента. А ещё работают в режиме бесконечных параллельных запусков. И если пользователь останавливает задачу, его запрос и следующие вызовы инструментов тоже нужно остановить. Поэтому при выборе языка важны не только библиотеки для работы с моделями, но и то, как язык справляется с одновременными задачами, отменяет операции и насколько просто доставить готовое приложение пользователю. В Go для этого есть дешёвые горутины, context.Context и сборка в один бинарник. В статье на примерах и материалах из Go-сообщества разберу пять сценариев, когда эти и другие свойства Go очень и очень нужны.

    habr.com/ru/companies/avito/ar

    #go #Golang #AIагенты #MCP #contextContext #горутины #llamacpp #локальные_LLM

  7. Книга: «Основы Go»

    Привет, Хаброжители! Язык Go востребован в разработке облачных сервисов и распределенных систем благодаря простоте, высокой производительности и встроенной поддержке конкурентности. Книга выходит за рамки синтаксиса и фокусируется на проектировании гибких и масштабируемых архитектур. Вы сразу приступите к созданию проекта, который будет постепенно изменяться и усложняться от простых скриптов до полноценного клиент-серверного приложения. В процессе работы вы познакомитесь с конкурентным программированием с использованием горутин, работой с SQLite, написанием тестов, обработкой ошибок, работой с файловой системой, а также с объектно-ориентированным подходом.

    habr.com/ru/companies/piter/ar

    #sqlite #тестирование_itсистем #облачные_сервисы #микросервисы #devops #serverless #параллельное_программирование #горутины #ооп

  8. Go прощает меньше, чем кажется: восемь ошибок, на которых спотыкается каждый новичок

    Привет, Хабр! Go специально сделали маленьким языком. Ключевых слов немного, конструкций мало, за неделю осваиваешь синтаксис и начинаешь писать. Именно из-за этой простоты возникает ложное ощущение, что тут негде ошибиться — код компилируется, значит всё правильно. А потом оказывается, что компилятор пропускает целый класс вещей, которые в других языках он бы отловил или которые просто устроены не так, как ты привык. Цикл, который выдаёт не те значения. Слайс, который меняется сам собой. Горутина, которая молча теряет ошибку. Всё это компилируется и запускается, а ведёт себя не так, как ожидаешь. Собрал восемь ошибок, через которые проходит примерно каждый, кто приходит в Go из другого языка. Все — реальные, все встречаются в чужом (и своём) коде постоянно.

    habr.com/ru/companies/otus/art

    #golang #go #ошибки_новичков #горутины #управление_памятью #обработка_ошибок #слайсы

  9. История корутин: появление, развитие, спад и возрождение

    Привет, Хабр! Меня зовут Дмитрий Попов, я Android‑разработчик в ПСБ. В какой‑то момент мне захотелось разобраться — что такое корутина и откуда они вообще взялись. Погрузившись в различные статьи и видео, я узнал много нового, рассказал коллегам внутри команды, а теперь решил рассказать и вам. Все, что важно знать о корутинах, по моему скромному мнению, — в этой статье!

    habr.com/ru/companies/psb/arti

    #корутины #корутины_kotlin #горутины #горутина #eventloop #история_it #история_ит

  10. Go без мифов: переход с C++, highload, рынок, зарплаты и путь разработчика — интервью с Владимиром Балуном

    Go часто называют простым языком. Но простота синтаксиса не отменяет конкурентности, рантайма, сборщика мусора, интерфейсов, особенностей памяти и реального production-опыта. Я, Александр, автор телеграм-канала « Shulepov Code », поговорил с Владимиром Балуном — разработчиком на C++ и Go, автором YouTube-канала « Владимир Балун » о программировании и основателем школы программирования. В этом выпуске мы разбираем, почему Go стал таким востребованным, кому он подходит, как на него переходить, а также сильные и слабые стороны языка. Обсуждаем реальные проекты, особенности конкурентности, память, сборку мусора и production-опыт.

    habr.com/ru/articles/1059838/

    #Go #Golang #C++ #highload #горутины #Observability #backend #микросервисы #карьера_разработчика #переход_на_Go

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

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

    habr.com/ru/articles/1046696/

    #мониторинг #мониторинг_сайта #go #golang #uptime #горутины #ssrf #DNS_rebinding #timescaledb #postgresql

  12. Писал мониторинг на Go «за выходные» — застрял на месяцы. Вот на чём В этой статье я расскажу, на какие под...

    #мониторинг #мониторинг #сайта #go #golang #uptime #горутины #ssrf #DNS #rebinding #timescaledb

    Origin | Interest | Match
  13. Кроссплатформенное приложение на Go руками PHP разработчика

    В вакансиях на hh всё чаще встречаются требования: Go + Python, Go + PHP. Для веб-разработки python и php во многом похожи, и у меня уже был опыт работы с ними. В статье раскрываю свой опыт изучения Go на примере разработки приложения для проверки доступности сайтов.

    habr.com/ru/companies/betboom/

    #go #программирование #программирование_для_начинающих #системный_трей #уведомления #горутины #golang

  14. Кроссплатформенное приложение на Go руками PHP разработчика В вакансиях на hh всё чаще встречаются требования...

    #go #программирование #программирование #для #начинающих #системный #трей #уведомления #горутины #golang

    Origin | Interest | Match
  15. Как перестать наступать на грабли в Go: набор рабочих рецептов

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

    habr.com/ru/companies/ruvds/ar

    #go #горутины #горутина #лайфхаки #рецепты #шпоргалка #cheatsheet #го #оптимизация #ruvds_статьи

  16. Golang: микросервис для сохранения файлов 3D туров Всем привет! В этой статье мы рассмотрим микросервис для упр...

    #golang #postgresql #minio #file #api #zip #распаковка #загрузка #файлов #goroutine #горутины

    Origin | Interest | Match
  17. [Перевод] Одна строка — тысячи горутин: как мы поймали утечку памяти в сервисе на Go

    В этом техническом разборе рассмотрим, как инженеры Harness обнаружили и исправили критическую утечку памяти в Go: переназначение переменной контекста в циклах воркеров порождало невидимые цепочки, мешавшие сборщику мусора освобождать память в тысячах горутин, из-за чего их сервис-делегат CI/CD в итоге потреблял гигабайты памяти. Читать разбор

    habr.com/ru/companies/otus/art

    #golang #утечка_памяти #горутины #сборщик_мусора #пул_воркеров #профилирование_памяти #логирование_в_контексте #высоконагруженные_сервисы #contextContext #go

  18. [Перевод] Одна строка — тысячи горутин: как мы поймали утечку памяти в сервисе на Go В этом техническом разбо...

    #golang #утечка #памяти #горутины #сборщик #мусора #пул #воркеров #профилирование #памяти #логирование

    Origin | Interest | Match
  19. [Перевод] Как мы нашли баг в компиляторе Go

    Каждую секунду в дата-центры Cloudflare в 330 городах отправляется 84 миллиона HTTP-запросов. Из-за этого даже самые редкие из багов возникают достаточно часто. На самом деле, именно наши масштабы позволили нам недавно обнаружить в компиляторе Go на arm64 баг, вызывающий состояние гонки в генерируемом коде. В этом посте мы расскажем о том, как впервые столкнулись с багом, исследовали его и докопались до его первопричины.

    habr.com/ru/companies/ruvds/ar

    #segmentation_fault #паника #cloudflare #горутины #ruvds_перевод

  20. [Перевод] Сборщик мусора в Go. Часть 3: Управление скоростью GC

    Команда Go for Devs подготовила перевод статьи о том, как в Go устроено управление скоростью работы сборщика мусора. TL;DR: даже при тысячах горутин GC подстраивается под нагрузку, выбирая между меньшим числом долгих пауз и большим числом коротких. Итог — разработчику почти не нужно вручную «крутить» настройки, рантайм сам находит оптимальный ритм.

    habr.com/ru/articles/953426/

    #Go #GC #garbage_collection #производительность #конкурентность #рантайм #горутины #память #оптимизация #профилирование

  21. Секреты дедлоков

    Как-то раз я допустил в своем коде дедлок и пока выкатывал пул реквест с его фиксом думал “ах как бы было хорошо, если дедлоки определялись на этапе компиляции”. Я решил немного разобраться в этом вопросе и вот что выяснил… Узнать больше

    habr.com/ru/companies/ozonbank

    #go #goroutine #goroutines #panic #deadlock #deadlocks #timer #дедлок #горутина #горутины

  22. Advanced Goroutines Patterns в Go: Fan-out, Fan-in и Pipelines

    В языке Go одним из важнейших преимуществ является мощная поддержка многопоточности и параллелизма за счёт горутин и каналов. В этой статье подробно разберём три продвинутых шаблона работы с горутинами:

    habr.com/ru/articles/904892/

    #go #golang #gopher #горутины #каналы_go #php #сервисы #программирование #go_очереди

  23. 100 % cover, 0 % спокойствия

    Привет, Хабр! Сегодня я хочу поговорить о том, как мы все иногда очарованы показателями тестового покрытия в Go — и как же часто эти проценты лукаво нам подмигивают. Казалось бы, влепили go test -cover , получили любимые цифры, приближающиеся к 100%, и можно выдохнуть. Но, увы, не всё так радужно, как хочется. На самом деле заветная сотка покрытия далеко не всегда означает, что ваш код действительно покрыт тестами.

    habr.com/ru/companies/otus/art

    #go #горутины #Concurrency #покрытие_тестами #Тестирование_в_Go #go_test

  24. Исследуем Go со всех сторон: обсуждаем конкурентность и безопасность, дискутируем о релизе 1.24

    Как реализовать подходы Mutex и lock-free и какой из них выбрать для решения вашей задачи? Как подружиться с пакетами unsafe и использовать их для эффективной разработки? И, наконец, куда движется Go после в релизе 1.24? На эти и другие вопросы нашли ответы Go-разработчики из YADRO, Avito Tech и Yandex, а мы принесли вам записи и презентации их обсуждений. Из докладов вы узнаете о работе с критической секцией и подводных камнях unsafe. А после просмотра дискуссии поймете, какие фичи из нового релиза сделают вашу жизнь лучше.

    habr.com/ru/companies/yadro/ar

    #go #митап #горутины #unsafe #go_124

  25. Обработка паник в горутинах

    Привет, Хабр! В этой статье рассмотрим, как безопасно запускать горутины, перехватывать в них паники, логировать их со стек трейсом и не дать одной багнутой функции завалить весь сервис.

    habr.com/ru/companies/otus/art

    #golang #паники #горутины

  26. Введение в конкуренцию Go

    Конкуренция (concurrency) в программировании позволяет разным частям программы выполняться независимо друг от друга. Это помогает повысить производительность и эффективнее использовать системные ресурсы. Конкуренция особенно важна для современных приложений, таких как сетевые сервисы или программы, работающие с множеством пользовательских запросов. Go предлагает уникальный подход к реализации конкуренции, который отличается от других языков программирования. В основе этого подхода лежат горутины и каналы — основные инструменты для написания конкурентного кода. В этом материале мы рассмотрим, как Go помогает решать задачи конкуренции, чем конкуренция отличается от параллелизма и почему использование этих инструментов делает приложения более быстрыми и масштабируемыми.

    habr.com/ru/articles/896940/

    #go #golang #конкуренция #параллелизм #каналы #горутины

  27. [Перевод] Параллельное программирование на Go

    На практике, создаваемое нами ПО выполняется на множестве процессоров. К сожалению, многие наши допущения, справедливые для одного процессора, в случае нескольких процессоров становятся ложными. Например, каким будет состояние памяти, если два процессора изменяют один блок памяти? В общем случае на этот вопрос ответить сложно. Может случиться так, что внесённое одним процессом изменение перепишет внесённое другим. Справедливо может быть и обратное: может «победить» изменение другого процессора. Или оба процесса могут попытаться внести изменение одновременно, в результате чего возникнет неопределённое состояние, не соответствующее ни одному ожидаемому. Мы называем такие операции доступа «гонками данных» — ситуацией, в которой два или более процессоров в программе одновременно получают доступ к одной области памяти, и хотя бы одна из этих операций доступа выполняет запись без должной синхронизации. Всё становится сложнее, если вам нужно, чтобы несколько процессоров изменяли одну и ту же память намеренно. Например, предположим, что у нас есть переменная, отслеживающая количество проданных товаров. В программе инкремент этой одной переменной могут выполнять несколько процессоров.

    habr.com/ru/companies/ruvds/ar

    #горутины #мьютексы #атомарные_операции #взаимные_блокировки #deadlock #гонки_данных #состояние_гонки #ruvds_перевод

  28. Fan-Out, Fan-In с динамической балансировкой горутин в Golang

    Привет, Хабр! Когда речь заходит о конкурентности в Go, паттерн Fan-Out, Fan-In — одна из важных концепций на мой взгляд. Он позволяет распределять задачи между несколькими горутинами и затем собирать результаты обратно в один поток.

    habr.com/ru/companies/otus/art

    #golang #конкурентность #горутины

  29. боже, перепишите это чудище, но моё любимое, на нормальный многопоток. Вообще где можно про #горутины почекать (хотя, если бы сам хотел, то нашёл бы)

    https://github.com/troit5ky/tgmarkovbreadgo

  30. Корутины: stackful vs stackless

    В этой статье я хочу объяснить разницу между stackless и stackful корутинами: чем они отличаются, какие у них плюсы и минусы, а также в общих чертах рассказать, как в некоторых языках программирования реализована многопоточность. Я стараюсь писать статьи простым и понятным языком, чтобы их мог понять как можно больший круг читателей. Поэтому в тексте будут сделаны упрощения.

    habr.com/ru/articles/850970/

    #корутины #stackles #stackfull #fibres #green_thread #зеленые_треды #многопоточность #async/await #горутины #go

  31. Рецензия на книгу «100 ошибок в Go и как их избежать» Тейва Харшани

    Привет! Меня зовут Макс, я Go-разработчик в IT-компании SimbirSoft. Хочу поделиться своим отзывом на книгу «100 ошибок в Go и как их избежать» Тейва Харшани. Книга заинтересовала меня тем, что автор фокусирует свое внимание на ошибках, как распространенных, так и более редких. Читать далее⚡

    habr.com/ru/companies/simbirso

    #книга #рецензия #обзор_книги #go #потоки #пул #itинфраструктура #горутины

  32. Оптимизация Go: как повысить скорость и эффективность кода

    Привет, Хабр! Меня зовут Макс, я Go-разработчик в компании SimbirSoft. Язык Go (Golang) стремительно набирает популярность , он всё чаще внедряется в существующие программные решения, а также встречается в стеке новых проектов. Высокая производительность и скорость работы – его главные преимущества, поэтому для реализации бизнес-задач он подходит как нельзя кстати. Go легко поддерживается и отлично годится для создания MVP, из-за чего востребованность в нём растёт. Но чтобы этот язык программирования был действительно производительным, разработчикам необходимо учитывать некоторые тонкости работы с ним. Иначе ваше приложение станет таким же медленным, как айтишник без чашки кофе :) В этой статье мы с вами на примерах разберём часто возникающие ситуации при работе с Go, а также рассмотрим приёмы, которые позволят повысить производительность кода. Надеюсь, разработчики уровня джуниор и мидл смогут почерпнуть для себя что-то полезное. Мы начинаем!

    habr.com/ru/companies/simbirso

    #go #golang #горутины #пул #потоки #itинфраструктура

  33. Суслик и пингвин: кодим на Go под Linux

    Язык ядра Linux, его модулей и утилит написаны на языке C. Хоть он и является старым языком и прародителем многих других, но его до сих пор используют. В экосистему линукса постепенно проникают и более молодые языки — например, Rust. Но сегодня мы поговорим об детище Google — GoLang. Я много пишу про этот замечательный язык и в этой статье предлагаю изучить основы системного программирования на Go, мы изучим как работать с ядром, юзерспейсом линукса. Расскажу об стандарте POSIX, а также узнаем, как сочетать C и Go-код.

    habr.com/ru/articles/811587/

    #асинхронность #корутины #горутины #сопрограммы #open_source #linux #go #golang #низкоуровневое_программирование #мультипоточность #параллельность #C #C++

  34. Укрощение примитивов синхронизации: сравниваем решения задачи с построением пула потоков на С и Go

    Эта статья основана на истории об одном личном челлендже. Задача звучала так: помочь с реализацией взаимодействия компонентов в программном комплексе заказчика. Иными словами, понадобилось IPC для дальнейшего развития продукта. Вызов заключался в том, что в обязательных требованиях стояло использование чистого С. Другие языки, включая С++ и Go, не рассматривались. В итоге я получил интересный опыт в рамках системного и параллельного программирования. Меня зовут Алексей Буреев, я работаю старшим инженером по разработке ПО в YADRO, сейчас мой основной рабочий язык программирования — Golang. В этой статье я проведу небольшой эксперимент: покажу, как можно решить одну задачу с помощью разных языков программирования. Языку С я противопоставлю Go, в основе которого есть исторические наработки проектирования языка С. Для этого немного заглянем «под капот» стандартных типов данных, которые уже были заботливо созданы для нас разработчиками языка. Всех заинтересованных прошу под кат.

    habr.com/ru/companies/yadro/ar

    #go #язык_с #мьютексы #горутины #потоки #пул_потоков #сравнение #языки_программирования #eventdriven

Share on Mastodon

Enter the server where you have an account.