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
Ko'proq ko'rsatish📈 Telegram kanali Golang analitikasi
Golang (@golang_google) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 40 258 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 3 333-o'rinni va Rossiya mintaqasida 15 837-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 40 258 obunachiga ega bo‘ldi.
04 Iyul, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -132 ga, so‘nggi 24 soatda esa 6 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 19.26% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 9.44% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 7 755 marta ko‘riladi; birinchi sutkada odatda 3 802 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 25 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent golang, api, devops, github, аллокация kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“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”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 05 Iyul, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
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
Endi mavjud! Telegram Tadqiqoti 2025 — yilning asosiy insaytlari 
