Golang
admin - @haarrp https://t.me/golangl - golang чат https://t.me/golangtests go тесты https://t.me/ai_machinelearning_big_data машинное обучение @itchannels_telegram РКН: clck.ru/3Fmx3s #VRHSZ
Mostrar más📈 Análisis del canal de Telegram Golang
El canal Golang (@golang_google) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 40 258 suscriptores, ocupando la posición 3 333 en la categoría Tecnologías y Aplicaciones y el puesto 15 837 en la región Rusia.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 40 258 suscriptores.
Según los últimos datos del 04 julio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -132, y en las últimas 24 horas de 6, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 19.26%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 9.44% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 7 755 visualizaciones. En el primer día suele acumular 3 802 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 25.
- Intereses temáticos: El contenido se centra en temas clave como golang, api, devops, github, аллокация.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“admin - @haarrp
https://t.me/golangl - golang чат
https://t.me/golangtests go тесты
https://t.me/ai_machinelearning_big_data машинное обучение
@itchannels_telegram
РКН: clck.ru/3Fmx3s
#VRHSZ”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 05 julio, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.
io.Copy(conn, file) для *os.File -> *net.TCPConn может использовать sendfile(2). Данные идут из page cache в socket buffer без прокидывания через userspace.
Проблема появляется, когда файл заворачивают в свой io.Reader для метрик, логирования или подсчёта байтов. Тип *os.File скрывается, Go больше не видит возможность включить sendfile, и передача откатывается в обычный цикл read -> write.
В статье показан сильный контраст: raw-вариант сделал около 2 972 syscall, wrapped-вариант около 131 093 syscall на том же объёме данных. CPU cost вырос примерно в 3.4 раза на GiB.
io.LimitReader fast path не ломает, потому что runtime умеет его распаковывать. Для TCP-to-TCP прокси похожий эффект даёт splice(2), если обе стороны остаются настоящими *net.TCPConn.
В data path для больших файлов не стоит бездумно оборачивать Reader и Writer. Если обёртка нужна, сохраняйте optional interfaces вроде io.WriterTo и io.ReaderFrom.
Проверка тоже простая- strace -c. Видите sendfile или splice, быстрый путь жив. Видите пачки read/write, значит CPU грузится сильнее из-за лишней абстракции.
https://segflow.github.io/post/zero-copy-sendfile-splice/
@Golang_googlereflect читает роуты, структуры, `json`-теги и `binding`-валидации, а потом собирает документацию прямо из кода.
Поддерживает Chi, Echo, Fiber и Gin.
Зачем это нужно:
• меньше ручной синхронизации
• меньше устаревших Swagger-комментов
• документация ближе к реальному API
• можно поднять Swagger UI / ReDoc / Scalar / RapiDoc
https://github.com/phucvinh57/tonic/
@Golang_googleБархоппинг — это маршрут по барам. В каждом месте вас ждут мини-задачка и бокал чего‑то вкусного.Уже чувствуете запах крафта? Тогда скорее регистрируйтесь! В заявке обязательно поделитесь каким-нибудь фэйлом. Лучшие обсудим в финале, посмеёмся над собой и поучимся у других
nixos-rebuild и других стандартных NixOS-скриптов
* TUI для управления generations и предпросмотра options
* Wrapped и unwrapped варианты Ix-пакета, чтобы избежать лишних rebuild
* Интеграционные тесты через pkgs.testers.runNixOSTest
https://github.com/nix-community/nixos-cliM лёгких задач в user-space
работают поверх
N настоящих kernel threads
Не один поток на всё, как в старых green threads.
И не один OS-thread на каждую задачу, как в классической 1:1 модели.
Runtime сам решает, какую goroutine, task или virtual thread запустить на доступном системном потоке.
Пока одна задача ждёт I/O, scheduler паркует её и отдаёт поток другой задаче.
В этом вся магия:
• дешёвые задачи
• меньше переключений через ядро
• масштабирование до огромного числа соединений
• work stealing
• event loop
• runtime scheduler вместо хаоса из тысяч потоков
M:N — это не синтаксис async/await и не «фича Go».
Это фундаментальная модель, на которой строится современная высоконагруженная конкурентность.
https://0xkiire.com/mn-concurrency-model/
npm install @opencomputer/sdk
или
pip install opencomputer-sdk
GitHub: github.com/diggerhq/opencomputer
i & -i
Она находит младший установленный бит числа.
Именно это значение показывает, на сколько нужно прыгнуть по индексам внутри дерева.
Пример:
i = 12 // 1100
i & -i = 4 // 0100
В Go реализация выглядит так:
package main
type Fenwick struct {
tree []int
}
func NewFenwick(n int) *Fenwick {
return &Fenwick{
tree: make([]int, n+1),
}
}
func (f *Fenwick) Update(i, delta int) {
for i < len(f.tree) {
f.tree[i] += delta
i += i & -i
}
}
func (f *Fenwick) Query(i int) int {
sum := 0
for i > 0 {
sum += f.tree[i]
i -= i & -i
}
return sum
}
Как это работает:
* Update идёт вверх по структуре и обновляет все узлы, которые отвечают за индекс
* Query идёт вниз и собирает блоки, из которых состоит prefix sum
* i & -i каждый раз выбирает размер текущего блока
Главный нюанс: Fenwick Tree обычно использует 1-based indexing.
То есть первый элемент имеет индекс 1, а не 0.
Пример использования:
fw := NewFenwick(5)
fw.Update(1, 10)
fw.Update(2, 20)
fw.Update(3, 30)
println(fw.Query(3)) // 60
Красота Fenwick Tree в том, что дерево не хранится явно.
Нет указателей.
Нет рекурсии.
Нет сложной структуры узлов.
Только массив и один битовый трюк.
Дерево спрятано прямо внутри двоичного представления индексов.docker compose up -d
• Контейнеры кликабельны: переход по URL открывает сервис сразу на нужном порте
* Быстрый старт
git clone https://github.com/dockpeek/dockpeek
cd dockpeek
cp .env.example .env # при необходимости меняем логин/пароль
docker compose up -d
Перейдите на http://<host>:8080, войдите и увидите все порты контейнеров.
* Кому пригодится
– Админам, которым Portainer/Komodor кажутся избыточными
– Разработчикам, у кого десятки локальных контейнеров с разными портами
– Оптимизаторам CI: можно встроить в тестовый раннер как read-only просмотрщик
https://github.com/dockpeek/dockpeekСервис Транспорта строит маршруты во всех продуктах 2ГИС, отображает пробки, дорожные события и автобусы на карте. Social сотворяет магию вокруг социального графа. Platform Backend Services превращает бизнес‑требования в платформенные сервисы: от идеи до запуска фич мобильными командами без лишних зависимостей. Web API решает все справочные задачи, управляет стилями карт и обратной связью от пользователей в продуктах. Сервис Рекламы создаёт техническую основу для продуктов рекламного направления. 2ГИС Логистика строит и пересчитывает маршруты с учётом пробок, погодных условий, типов транспорта, параметров груза и сложных логистических цепочек. ГеоПоток помогает бизнесу повышать прозрачность процессов и сокращать издержки.Все вакансии на сайте Другие инженерные инсайты от 2ГИС → в Telegram-канале RnD
sync.RWMutex.
Автор прогнал 6 вариантов дизайна кэша и показал неприятную вещь: один общий lock быстро становится бутылочным горлышком. Чем больше горутин лезет в кэш, тем сильнее они начинают мешать друг другу.
Самый практичный вывод: шардируйте locks.
Вместо одной большой map под одним mutex кэш делится на несколько shard’ов. Каждый shard хранит свою часть данных и имеет свой lock. В итоге разные goroutine чаще работают с разными locks, меньше ждут друг друга и лучше используют CPU.
Отдельно интересно, что sync.RWMutex не всегда спасает. На смешанной нагрузке с чтением и записью его накладные расходы могут оказаться заметнее, чем кажется. А sync.Map тоже не превращается в универсальную кнопку «сделать быстро».
Хороший материал про то, почему производительность в Go часто ломается не на алгоритме, а на конкуренции за одну общую точку.
Статья: «Shard your locks: benchmarking 6 Go cache designs»
https://strebkov.dev/posts/shard-your-locks/io, bufio, fmt, bytes, strings, strconv, slices, maps, os, flag, time, log/slog, crypto/rand, math/rand и другие.
Отдельно добавлены пакеты mem и c: первый отвечает за явное управление памятью через аллокаторы, второй упрощает интероп с C.
Например, C-библиотеки можно подключать напрямую через so:include, а функции без тела Solod сам воспринимает как extern`-декларации. Go-строки при вызове C API автоматически превращаются в `const char*, без ручного бойлерплейта.
Память управляется явно, примерно в духе Zig: можно использовать системный аллокатор или арену на стеке. GC-пауз нет, но за это приходится платить ручным освобождением ресурсов.
Solod пока выглядит не как замена Go, а как интересный инструмент для CLI, системных утилит, embedded-сценариев и прямой работы с C-библиотеками без Cgo.
go install solod.dev/cmd/so@latest
https://github.com/solod-dev/solod
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
