Форум программистов, компьютерный форум, киберфорум
Go
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
Старый
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
Запись от alhaos размещена 10.06.2026 в 15:30
Показов 2382 Комментарии 0
Метки go, golang, http, pattern, problem

Задача

Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.

Сигнатура

Go
1
func Fetch(urls []string, maxConcurrent int) []Result
Пример
Go
1
2
3
4
5
6
urls := []string{
    "https://example.com",
    "https://google.com",
    "https://github.com",
}
results := Fetch(urls, 2) // не более 2 запросов одновременно
...
Аватар для alhaos
Старый
[golang] Состояние гонки (race condition)
Запись от alhaos размещена 10.06.2026 в 10:38
Показов 2931 Комментарии 0
Метки go, golang, race condition

Состояние гонки (race condition)

Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом результат выполнения программы начинает зависеть от случайного порядка выполнения потоков, что приводит к непредсказуемым результатам.

Модель

Go
1
2
3
4
5
6
7
package race
 
import (
  "sync"
)
 
// CounterWithRace функция
...
Аватар для alhaos
Старый
[golang] Worker Pool
Запись от alhaos размещена 09.06.2026 в 06:00. Обновил(-а) alhaos 09.06.2026 в 09:15
Показов 2716 Комментарии 0
Метки go, golang, pattern

Worker Pool



Worker Pool — паттерн конкурентной обработки задач в Go.
Суть: фиксированное количество горутин-воркеров читают задачи из общего канала
и пишут результаты в общий канал результатов. Количество воркеров задаётся
заранее — это позволяет контролировать...
Аватар для alhaos
Старый
[golang] Pipeline
Запись от alhaos размещена 08.06.2026 в 06:58. Обновил(-а) alhaos 08.06.2026 в 07:25
Показов 3853 Комментарии 0
Метки go, golang, pattern

Pipeline



Pipeline — паттерн конкурентной обработки данных в Go.
Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через каналы.
[source] → chan → [stage1] → chan → [stage2] → chan → [sink]
Что решает:

обработка...
Аватар для alhaos
Старый
[golang] Алгоритм «Хак Госпера»
Запись от alhaos размещена 17.05.2026 в 19:17. Обновил(-а) alhaos 17.05.2026 в 19:19
Показов 2923 Комментарии 0
Метки algorithms, go

Алгоритм «Хак Госпера»



Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит.

Придуман Биллом Госпером в 1970-х, опубликован в HAKMEM — легендарном сборнике MIT AI Lab с математическими и программистскими трюками.

продвинуть одну единицу левее — число вырастет

вернуть оставшиеся единицы в самые младшие позиции — число будет наименьшим из возможных

Реализация

...
Аватар для alhaos
Старый
Полиглотные Event-Driven системы с Kafka, RabbitMQ и gRPC на Java, Go и Node.js
Запись от ArchitectMsa размещена 13.10.2025 в 20:34 / Microservice it all!
Показов 5038 Комментарии 0

Нажмите на изображение для увеличения
Название: Полиглотные Event-Driven системы с Kafka, RabbitMQ и gRPC на Java, Go и Node.js.jpg
Просмотров: 678
Размер:	60.4 Кб
ID:	11281
В 2019 году я столкнулся с любопытной ситуацией. Команда запускала новый сервис рекомендаций на Python - модели машинного обучения требовали NumPy и TensorFlow. Основное приложение работало на Java, а фронтенд крутился на Node.js. И вот появилась задача: связать все это в единую систему, где заказы создаются через веб, обрабатываются на бэкенде, а рекомендации генерируются...
Аватар для ArchitectMsa
Старый
Go и ИИ
Запись от golander размещена 08.10.2025 в 21:12 / go go just go
Показов 5097 Комментарии 0

Нажмите на изображение для увеличения
Название: Go и ИИ.jpg
Просмотров: 668
Размер:	61.5 Кб
ID:	11271
Python давно стал языком машинного обучения по умолчанию. Jupyter-блокноты, PyTorch, scikit-learn - весь этот мир крутится вокруг интерпретируемого языка с динамической типизацией. Но когда дело доходит до продакшена, картина меняется. И здесь Go начинает показывать зубы.

Go не заменяет Python в исследованиях и экспериментах. Там он и не нужен - у Python экосистема богаче, а скорость...
Аватар для golander
Старый
Рейтинг: 5.00. Голосов: 1.
WebAssembly как платформа для языков программирования
Запись от Jason-Webb размещена 06.10.2025 в 19:03 / Webmastering PHP
Показов 5686 Комментарии 0

Нажмите на изображение для увеличения
Название: WebAssembly как платформа для языков программирования.jpg
Просмотров: 594
Размер:	145.3 Кб
ID:	11264
WebAssembly начинался как способ ускорить веб-приложения. В 2017-м впервые запустил C++ код прямо в браузере - тогда казалось магией. Сейчас же Wasm вырос во что-то большее: универсальную платформу для запуска кода на любом языке где угодно. Не просто виртуальная машина, а целая экосистема с собственными стандартами,...
Аватар для Jason-Webb
Старый
Go 1.25 - возможности с примерами
Запись от golander размещена 26.09.2025 в 19:56 / go go just go
Показов 4915 Комментарии 0

Нажмите на изображение для увеличения
Название: Go 1.25 - возможности с примерами.jpg
Просмотров: 467
Размер:	108.1 Кб
ID:	11218
Последние несколько лет я постоянно сталкивался с одной и той же проблемой — как выжать максимум производительности из Go без жертвы читабельностью кода. С выходом Go 1.25 эта дилемма, кажется, начинает решаться на уровне самого языка.

Profile-Guided Optimization: из экспериментальной фичи в надежный инструмент



Наконец-то PGO (Profile-Guided Optimization) стабилизирована! Это больше не экспериментальная...
Аватар для golander
Старый
LangChainGo - руководство с примерами кода
Запись от golander размещена 21.09.2025 в 18:39 / go go just go
Показов 5287 Комментарии 0

Нажмите на изображение для увеличения
Название: LangChainGo - руководство с примерами кода.jpg
Просмотров: 486
Размер:	220.7 Кб
ID:	11193
Признаюсь честно, когда я впервые столкнулся с задачей создания приложения на основе больших языковых моделей (LLM), то, как и многие из вас, первым делом потянулся к Python и экосистеме LangChain. Казалось, что это единственный разумный путь. Но вскоре обнаружилась проблема — производительность. Приложение тормозило на высоких нагрузках, а...
Аватар для golander
Старый
Лучшие фреймворки Go REST API
Запись от golander размещена 09.09.2025 в 21:11 / go go just go
Показов 6188 Комментарии 0

Нажмите на изображение для увеличения
Название: Лучшие фреймворки Go REST API.jpg
Просмотров: 507
Размер:	125.4 Кб
ID:	11166
Когда я впервые столкнулся с Go десять лет назад, ситуация с веб-фреймворками напоминала дикий запад – каждый писал свой велосипед и гордился этим. Стандартная библиотека net/http была настолько хороша, что многие считали фреймворки злом. "Настоящие гоферы пишут всё сами!" – кричали адепты чистого Go. Сейчас, оглядываясь назад, я улыбаюсь этому максимализму. Экосистема Go сильно изменилась. В мире, где микросервисы стали нормой, а не исключением, REST API превратились...
Аватар для golander
Старый
Оптимизация Docker Image: скорость, размер, безопасность
Запись от Mr. Docker размещена 28.07.2025 в 21:28 / Docking everything, K8s anything
Показов 3801 Комментарии 0

Нажмите на изображение для увеличения
Название: Оптимизация Docker Image скорость, размер, безопасность.jpg
Просмотров: 545
Размер:	191.5 Кб
ID:	11017
За последние пять лет Docker превратился из крутой новой технологии в стандарт де-факто для упаковки и деплоя приложений. Практически каждый инженер, с которым я работал за эти годы, использует контейнеры, и все системы, которые я создавал в последнюю половину десятилетия, работают именно в них. Легкость в изучении, быстрота деплоя и возможность безболезненных откатов делают Docker незаменимым инструментом в арсенале современной DevOps-команды.

Но популярность...
Аватар для Mr. Docker
Старый
Мониторинг микросервисов с OpenTelemetry в Kubernetes
Запись от Mr. Docker размещена 04.07.2025 в 13:00 / Docking everything, K8s anything
Показов 7560 Комментарии 0

Нажмите на изображение для увеличения
Название: OpenTelemetry и Kubernetes.jpg
Просмотров: 537
Размер:	272.2 Кб
ID:	10952
Проблема наблюдаемости (observability) в Kubernetes - это не просто вопрос сбора логов или метрик. Это целый комплекс вызовов, которые возникают из-за самой природы контейнеризации и оркестрации. К примеру: у вас сотни подов, которые живут от нескольких секунд до нескольких дней, постоянно перемещаются между нодами, масштабируются, падают и пересоздаются. Как в таких условиях понять, что происходит?

Вот с чем я сталкивался чаще всего:
1. Эфемерность...
Аватар для Mr. Docker
Старый
Создаем микросервисы с Go и Kubernetes
Запись от golander размещена 02.07.2025 в 19:49 / go go just go
Показов 9308 Комментарии 0

Нажмите на изображение для увеличения
Название: Создаем микросервисы с Go и Kubernetes.jpg
Просмотров: 528
Размер:	156.1 Кб
ID:	10950
Когда я только начинал с микросервисами, все спорили о том, какой язык юзать. Сейчас Go (или Golang) фактически захватил эту нишу. И вот почему этот язык настолько заходит для этих задач:
  • Конкурентность в Go — это бомба. Горутины и каналы вшиты в ядро языка, а не приколочены сверху как в других языках. Помню, написал сервис, который легко держал 100к соеденений на средненьком железе. На Java такое без адской настройки и тюнинга нереально
...
Аватар для golander
Старый
WebAssembly в Kubernetes
Запись от Mr. Docker размещена 06.06.2025 в 13:57 / Docking everything, K8s anything
Показов 3160 Комментарии 0

Нажмите на изображение для увеличения
Название: WebAssembly в Kubernetes.jpg
Просмотров: 384
Размер:	192.6 Кб
ID:	10884
WebAssembly изначально разрабатывался как бинарный формат инструкций для виртуальной машины, обеспечивающий высокую производительность в браузерах. Но потенциал технологии оказался гораздо шире - она способна преодолеть ряд фундаментальных ограничений существующих контейнерных решений.

Проблемы традиционных контейнеров давно известны специалистам. Стандартные Docker-образы зачастую занимают сотни мегабайт, а иногда и гигабайты...
Аватар для Mr. Docker
Старый
Создаем RESTful API на Golang с Fiber
Запись от golander размещена 04.06.2025 в 21:05 / go go just go
Показов 7768 Комментарии 0

Нажмите на изображение для увеличения
Название: Создаем RESTful APIs на Golang с Fiber.png
Просмотров: 448
Размер:	955.3 Кб
ID:	10877
Я перепробовал десятки фреймворков для создания RESTful API за последние годы, и когда впервые столкнулся с Fiber, понял, что это совсем другой уровень. Нет, я не собираюсь рассказывать сказки о серебрянных пулях в программировании - такого не существует. Но Fiber дейсвительно решил целый ряд проблем,...
Аватар для golander
Старый
Unit-тестирование с моками в Go
Запись от golander размещена 31.05.2025 в 18:06 / go go just go
Показов 3011 Комментарии 0
Метки go, mock, unit-test

Нажмите на изображение для увеличения
Название: 29b81a47-1551-426f-84fd-49f77421f8ac.jpg
Просмотров: 367
Размер:	83.6 Кб
ID:	10863
Большинство разработчиков предпочитают тестировать код без использования моков. Например, при интеграции с Elasticsearch логичнее запустить контейнер локально и тестировать Go-код непосредственно с ним. Но в реальном мире часто возникают ситуации, когда создание локального окружения становится практически невозможным. В отличие от языков с...
Аватар для golander
Старый
Упрощение разработки облачной инфраструктуры с Golang
Запись от golander размещена 11.05.2025 в 10:03 / go go just go
Показов 4488 Комментарии 0
Метки cloud, edge, go, kubernetes, serverless

Нажмите на изображение для увеличения
Название: c99fb81c-5b5a-491e-b484-87d4ade53313.jpg
Просмотров: 287
Размер:	155.7 Кб
ID:	10788
Причины популярности Go в облачной инфраструктуре просты и одновременно глубоки. Прежде всего — поразительная конкурентность, реализованная через горутины, которые дешевле традиционных потоков в десятки раз. Небольшая программа на Go спокойно жонглирует тысячами параллельных задач, при этом потребляя памяти меньше, чем средний инстанс Node.js только для запуска "Hello World".

Статическая типизация, ставшая...
Аватар для golander
Старый
Java, Rust и Go в системном программировании - Сравнительный анализ
Запись от golander размещена 09.05.2025 в 16:38 / go go just go
Показов 3355 Комментарии 0
Метки go, java, rust

Нажмите на изображение для увеличения
Название: 9b3f4dd7-a0b3-451a-bde3-4e9e6818f024.jpg
Просмотров: 311
Размер:	212.8 Кб
ID:	10776
Пока большинство разработчиков спорят о преимуществах фреймворков и инструментах высокого уровня, тихая буря назревает в подвалах системного программирования. Java — признанный ветеран индустрии с мощной экосистемой, Rust — молодой бунтарь с революционым подходом к безопасности, и Go — прагматичный середнячок с амбициями на скорость разработки. Эти три языка ведут незримую битву за место под солнцем там, где раньше безраздельно царили C и C++.

Выбор между...
Аватар для golander
Старый
Confluent Kafka Go и потоковые приложения в реальном времени на Golang
Запись от golander размещена 03.05.2025 в 20:17 / go go just go
Показов 3723 Комментарии 0

Нажмите на изображение для увеличения
Название: 0e23c15e-8b21-486c-a2b9-a2fdca2f6ca4.jpg
Просмотров: 314
Размер:	168.8 Кб
ID:	10728
Мир обработки данных перевернулся, когда в 2011 году LinkedIn открыл исходный код Kafka – распределённой системы передачи сообщений, разработанной для внутренних нужд компании. Изначально Кафка создавалась как решение для сбора и анализа пользовательской активности...
Аватар для golander
Старый
Об уровне агрегации Kubernetes API
Запись от Mr. Docker размещена 03.05.2025 в 10:11 / Docking everything, K8s anything
Показов 3762 Комментарии 0

Нажмите на изображение для увеличения
Название: 2ba9bff3-93b2-4189-91db-58b55013af7d.jpg
Просмотров: 279
Размер:	217.7 Кб
ID:	10722
Погружаясь в глубины Kubernetes, невозможно не столкнуться с одним из самых мощных и в то же время недооцененных компонентов этой системы – уровнем агрегации API. Это тот самый механизм, который дает Kubernetes впечатляющую гибкость, позволяя ей оставаться лёгкой в ядре, но при этом бесконечно расширяемой.

Концепция и назначение агрегационного слоя



Уровень агрегации – не просто абстрактная концепция,...
Аватар для Mr. Docker
Старый
Слабые указатели в Go: управление памятью и предотвращение утечек ресурсов
Запись от golander размещена 29.04.2025 в 13:04 / go go just go
Показов 5877 Комментарии 0
Метки go

Нажмите на изображение для увеличения
Название: 1a4da49c-6f5b-4108-874d-dac9ebfe18a3.jpg
Просмотров: 260
Размер:	195.6 Кб
ID:	10695
Управление памятью — один из краеугольных камней разработки высоконагруженных приложений. Го (Go) занимает уникальную нишу в этом вопросе, предоставляя разработчикам автоматическое управление памятью через сборщик мусора, но при этом сохраняя некоторые аспекты низкоуровневого контроля. Эта двойственность...
Аватар для golander
Старый
Слайсы в Go
Запись от golander размещена 15.04.2025 в 09:55 / go go just go
Показов 3907 Комментарии 0
Метки go, golang

Нажмите на изображение для увеличения
Название: b11450d5-24b0-4460-a9ff-f7ce5811b5a5.jpg
Просмотров: 300
Размер:	228.3 Кб
ID:	10594
Слайсы — важнейшая структура данных в Go, значение которой сложно переоценить. С момента создания языка разработчики Go позиционировали слайсы как основной механизм для работы с последовательностями данных. И не зря: слайсы сочетают гибкость и производительность, что делает их идеальным выбором для большинства задач.

Введение в слайсы Go



Базовая структура и принципы работы



В отличие от массивов с фиксированной...
Аватар для golander
Старый
Go в Kubernetes: Управление ресурсами
Запись от golander размещена 11.04.2025 в 12:31 / go go just go
Показов 5569 Комментарии 0
Метки cpu, devops, go, kubernetes, memory

Нажмите на изображение для увеличения
Название: a0399ea7-cbf7-4e50-9d06-0919ac004113.jpg
Просмотров: 241
Размер:	53.9 Кб
ID:	10576
Разработчики Go-приложений в Kubernetes часто сталкиваются с неожиданными проблемами производительности и даже внезапными отказами контейнеров. Причина этого кроется в особенностях взаимодействия Go-рантайма с моделью ограничения ресурсов в K8s. Рантайм Go активно управляет ресурсами, создавая OS-потоки и распределяя горутины между ними, делая предположения о доступной мощности,...
Аватар для golander
Старый
Использование кэшей CPU: Максимальная производительность в Go
Запись от golander размещена 05.04.2025 в 16:55 / go go just go
Показов 4826 Комментарии 0

Нажмите на изображение для увеличения
Название: 3b7804e2-ba0c-4008-8371-9fee0e2b4d27.jpg
Просмотров: 280
Размер:	134.4 Кб
ID:	10535
Разработчикам хорошо известно, что эффективность кода зависит не только от алгоритмов и структур данных, но и от того, насколько удачно программа взаимодействует с железом. Среди множества факторов, влияющих на производительность, особое место занимает работа с кэш-памятью процессора. Именно кэш-память часто становится тем узким местом, которое ограничивает быстродействие даже самых элегантных...
Аватар для golander
Старый
Пакет Context в Golang: Управление потоками и ресурсами
Запись от golander размещена 04.04.2025 в 16:34 / go go just go
Показов 4051 Комментарии 0

Нажмите на изображение для увеличения
Название: a38062e3-9cef-48b5-974e-b53fc0fcbea1.jpg
Просмотров: 322
Размер:	75.6 Кб
ID:	10521
Работа с горутинами в Go часто напоминает управление непослушными детьми - они разбегаются кто куда, делают что хотят и не всегда завершаются вовремя. К счастью, в Go 1.7 появился пакет context, который помогает держать эту ватагу под контролем.

Предположим, есть веб-сервер,...
Аватар для golander
Старый
Реализация перечислений в Go
Запись от golander размещена 19.03.2025 в 21:25 / go go just go
Показов 2176 Комментарии 0
Метки go

Нажмите на изображение для увеличения
Название: 6d805eae-8cfb-4fd5-88be-53e4e3061485.jpg
Просмотров: 271
Размер:	77.8 Кб
ID:	10464
Если вы перешли на Go с других языков программирования (как я), таких как C#, Java или Python, вы наверняка заметили, что Go не имеет встроенной поддержки перечислений (enumerations). Это может стать серьезным препятствием, когда нужно работать с фиксированным набором значений, обеспечивая при этом типобезопасность...
Аватар для golander
Старый
Protobuf в Go и новый Opaque API
Запись от golander размещена 15.03.2025 в 20:41 / go go just go
Показов 2075 Комментарии 0
Метки go, grpc, opaque api, protobuf

Нажмите на изображение для увеличения
Название: 807e52f3-3ae2-400b-a75f-4deb394ff227.jpg
Просмотров: 296
Размер:	271.4 Кб
ID:	10415
Распределенные системы опираются на эффективные протоколы обмена данными — о чем вы, скорее всего, прекрасно знаете, если работаете с микросервисной архитектурой. Protocol Buffers (Protobuf) от Google уже более десятилетия остаётся одним из самых мощных инструментов сериализации...
Аватар для golander
Старый
Создание расширяемых WebAssembly приложений и микрофронтендов с Go
Запись от golander размещена 12.03.2025 в 08:40 / go go just go
Показов 2728 Комментарии 0

Нажмите на изображение для увеличения
Название: 71aa9c2f-bcb4-4015-9414-36c2fc1a66bf.jpg
Просмотров: 272
Размер:	183.1 Кб
ID:	10369
Go как язык программирования всегда выделялся своей простотой и производительностью, и его поддержка компиляции в WebAssembly открывает интересные возможности. Начиная с версии Go 1.11, когда был добавлен первый порт js/wasm, экосистема Go-WASM постепенно развивалась, но имела существенные ограничения в плане интеграции с внешним миром. Выход Go 1.24 обозначил важный прогресс в этом направлении, добавив две ключевые функции: директиву go:wasmexport и возможность...
Аватар для golander
Старый
Быстрый map в Go со Swiss Table
Запись от golander размещена 12.03.2025 в 08:22 / go go just go
Показов 3835 Комментарии 0
Метки go, swiss table

Нажмите на изображение для увеличения
Название: d7a4715f-4492-4535-a6dc-a66172195723.jpg
Просмотров: 279
Размер:	188.1 Кб
ID:	10368
Начиная с Go 1.24, встроенный тип map получил значительное обновление — его внутренняя реализация была полностью переработана с использованием дизайна Swiss Table.

На первый взгляд, может показаться, что хеш-таблицы — давно изученная технология, в которой нет места...
Аватар для golander
Новые блоги и статьи
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru