es
Feedback

¡No caigas en manos de tramposos! Telemetrio encuentra y marca estos canales 👉 Si quieres ver la etiqueta, suscríbete

Библиотека Go-разработчика | Golang

Библиотека Go-разработчика | Golang

Ir al canal en Telegram

Все самое полезное для Go-разработчика в одном канале. Учиться у нас: clc.to/qaSdww По рекламе: @tproger_sales_bot Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a4a8c24689c2151c752af0 Заявка: 8137752389

Mostrar más

📈 Análisis del canal de Telegram Библиотека Go-разработчика | Golang

El canal Библиотека Go-разработчика | Golang (@goproglib) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 23 990 suscriptores, ocupando la posición 5 503 en la categoría Tecnologías y Aplicaciones y el puesto 27 265 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 23 990 suscriptores.

Según los últimos datos del 26 octubre, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -85, y en las últimas 24 horas de -11, 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.46%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 7.25% de reacciones respecto al total de suscriptores.
  • Alcance de las publicaciones: Cada publicación recibe en promedio 4 668 visualizaciones. En el primer día suele acumular 1 740 visualizaciones.
  • Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 5.
  • Intereses temáticos: El contenido se centra en temas clave como навигация, лучшее_из_библиотеки_2025, git, string, golive.

📝 Descripción y política de contenido

El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Все самое полезное для Go-разработчика в одном канале. Учиться у нас: clc.to/qaSdww По рекламе: @tproger_sales_bot Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a4a8c24689c2151c752af0 Заявка: 8137752389”

Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 27 octubre, 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.

23 990
Suscriptores
-1124 horas
-497 días
-8530 días
Archivo de publicaciones
Динозавр держится за ВМ и снапшоты по расписанию, Археолог давно не помнит, что и где у него крутится, а Повелителю облаков у
Динозавр держится за ВМ и снапшоты по расписанию, Археолог давно не помнит, что и где у него крутится, а Повелителю облаков уютно до первого кругленького счёта. Это три из десяти типов инфраструктуры в тесте от команды Deckhouse. Ответьте на 5 вопросов, узнайте свой тип и отправьте ссылку на результат команде. Посмотрим, совпадёт ли он у коллег. → Пройти тест и узнать свой тип

Fuzzing нашёл ошибку. Сохраните вход вместе с исправлением Обычный go test запускает fuzz-тест на исходном корпусе: входах из f.Add и файлов testdata/fuzz. Новые входы в этом режиме не генерируются. Активный поиск нужно включить отдельно. Если в пакете один fuzz-тест, короткий запуск выглядит так:
go test -fuzz=. -fuzztime=10s
Если их несколько, вместо точки задайте регулярное выражение, которое выбирает ровно один. Движок меняет входы и использует покрытие кода, чтобы находить новые пути выполнения. Но проверяемое свойство задаёт автор теста. Например, после кодирования и обратного декодирования должны получиться исходные данные. При сбое Go пытается уменьшить вход, сохранив ошибку, и записывает его в подкаталог testdata/fuzz с именем теста. Путь и команду точечного повторного запуска он выводит в терминал. После исправления запустите go test и добавьте найденный файл в репозиторий вместе с кодом. Этот вход станет регрессионной проверкой и будет выполняться без нового fuzzing-запуска. А вот интересные входы из кеша $GOCACHE/fuzz используются только при активном поиске. Десять секунд без падений не доказывают отсутствие ошибок. Сам fuzz-target должен быть быстрым, детерминированным и не зависеть от изменяемого глобального состояния. Как Go хранит корпус и воспроизводит сбои 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика

📌 Один курс — хорошее вложение в себя. Два по той же цене — ещё лучше. В Proglib Academy действует акция: покупаешь один кур
📌 Один курс — хорошее вложение в себя. Два по той же цене — ещё лучше. В Proglib Academy действует акция: покупаешь один курс, а второй получаешь в подарок. Например, можно совместить два направления по работе с ИИ:
💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью. 💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.
📍 Разница в цене — почти 50 тысяч рублей. Можно освоить больше, не выходя за рамки запланированного бюджета. А если тебе интереснее Python, алгоритмы, backend или DevOps — выбирай другую пару курсов из каталога. Акция действует до 31 октября включительно ⏳ ⏮️ Пора прокачать свой стек

Тест упал. Покажите, что именно разошлось Два больших объекта в логе приходится сравнивать глазами. cmp.Diff(want, got) из go-cmp показывает различия, в том числе во вложенных структурах. Пустая строка означает, что значения равны по выбранным правилам. Мини-пример для файла tags_test.go. Здесь разные вторые элементы, поэтому тест намеренно падает:
package example

import (
    "testing"

    "github.com/google/go-cmp/cmp"
)

func TestTags(t *testing.T) {
    want := []string{"go", "sql"}
    got := []string{"go", "http"}
    diff := cmp.Diff(want, got)
    if diff != "" {
        t.Errorf("tags mismatch (-want +got):\n%s", diff)
    }
}
При таком порядке аргументов строки с - относятся к ожидаемому значению, с + — к полученному. Сам формат diff нестабилен: он для чтения человеком, а не для парсинга. Правила равенства тоже часть теста. По умолчанию nil и пустой слайс различаются. Опция cmpopts.EquateEmpty() уравнивает слайсы и map нулевой длины, но добавлять её стоит только тогда, когда API действительно не различает эти состояния. Неэкспортируемые поля без подходящего правила сравнения могут вызвать панику. cmp.Diff • EquateEmpty 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика

singleflight: один запрос к источнику вместо одинаковых параллельных Кеш опустел, и несколько обработчиков одновременно пошли за одним товаром в БД. Пока первый запрос ещё работает, остальные повторяют ту же работу. Для такой ситуации есть golang.org/x/sync/singleflight. Вызов Group.Do(key, fn) объединяет обращения с одинаковым ключом: выполняется одна функция, остальные ждут и получают её результат вместе с ошибкой. Ключи разные — работа идёт независимо. Все обработчики должны использовать одну и ту же Group, а не создавать её заново на каждый запрос. Ключ описывает всё, от чего зависит результат. Если данные различаются между арендаторами, одного ID товара мало. Например, tenant:42:product:7 отделяет его от такого же товара другого арендатора. Готовый результат singleflight не хранит: следующий вызов после завершения работы снова запустит функцию. Механизм действует внутри одного процесса и не ограничивает общее число запросов по разным ключам. А флаг shared сообщает, что результат получили несколько вызовов, а не что сработал кеш. Документация singleflight 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика

💾 Команда Dolt ускорила WAL сочетанием fdatasync и записи нулей Заменить fsync на fdatasync оказалось недостаточно. Команда
💾 Команда Dolt ускорила WAL сочетанием fdatasync и записи нулей Заменить fsync на fdatasync оказалось недостаточно. Команда Go-базы Dolt также стала заранее записывать 4 МиБ нулей при расширении журнала. Следующие записи перезаписывают готовую область, реже требуя синхронизации метаданных. Во внутренних тестах небольших последовательных записей это дало 10–40% прироста. Помогло сочетание Ext4 и сетевого диска с заметной задержкой, но свободной пропускной способностью. На Btrfs и OpenZFS такого выигрыша не увидели. А предварительная запись нулей увеличивает объём записи — вплоть до двух раз. При упоре в пропускную способность оптимизация может навредить. Полезный разбор для тех, кто пишет хранилища и журналы на Go. На дату статьи изменение было в main, но ещё не вошло в релиз Dolt. 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика

😎 Выбираешь один курс, второй получаешь бесплатно. Баг? Нет, акция! До 31 октября в Proglib Academy можно выбрать два курса
😎 Выбираешь один курс, второй получаешь бесплатно. Баг? Нет, акция! До 31 октября в Proglib Academy можно выбрать два курса и заплатить только за один. Например, можно совместить:
💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью. 💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.
Вместе курсы стоят 108 000 ₽, но по акции оба обойдутся в 59 000 ₽. Экономия — 49 000 ₽ 🔥 Интересуют Python и ИИ или алгоритмы и архитектура? Можно выбрать любые два курса из каталога. Акция действует до 31 октября включительно ⏳ ⏬ Собрать свой учебный билд

⚙️ Go 1.27 открывает SIMD-инструкции ARM и WebAssembly без ассемблера Переносимый SIMD скрывает различия процессоров. Но для
⚙️ Go 1.27 открывает SIMD-инструкции ARM и WebAssembly без ассемблера Переносимый SIMD скрывает различия процессоров. Но для специфических операций есть более низкий уровень — экспериментальный simd/archsimd. В Go 1.27 к amd64 добавились arm64 и wasm. Эксперимент включается при сборке:
GOEXPERIMENT=simd go build
При переносе алгоритма важны крайние случаи. Например, PermuteOrZero на amd64 и LookupOrZero на ARM/wasm по-разному обрабатывают индексы вне диапазона. Поэтому похожие операции получили разные имена. Это инструмент для измеренных горячих участков: обработки байтов, чисел и векторов. Проверки доступности инструкций и запасной путь остаются частью реализации. API экспериментальный; обычные циклы от включения флага автоматически не векторизуются. 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика

🛠 gopls спрашивает, какие теги добавить полям структуры Раньше действие Add struct tags добавляло json-теги в camelCase. Теп
🛠 gopls спрашивает, какие теги добавить полям структуры Раньше действие Add struct tags добавляло json-теги в camelCase. Теперь gopls умеет уточнять параметры: например, выбрать json,yaml,db и snake_case. Ставите курсор на структуру, вызываете действие, отвечаете на два вопроса — сервер генерирует теги для её полей. При удалении тоже можно выбрать конкретные ключи, сохранив остальные. Для интерактивной работы команда рекомендует gopls 0.24.0 и Go-расширение VS Code 0.56.0. Одного обновления сервера недостаточно: редактор должен поддерживать новые диалоги. В статье показаны и другие сценарии, но их статус различается. Перенос объявлений демонстрируется как preview, а изменение сигнатуры пока в планах. Проверяйте доступность нужного действия, прежде чем рассчитывать на него в рабочем процессе. 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика

🌐 Go 1.27: закрыли Body — соединение ещё пригодится Клиенту нужен только статус ответа, поэтому тело он не читает. До Go 1.2
🌐 Go 1.27: закрыли Body — соединение ещё пригодится Клиенту нужен только статус ответа, поэтому тело он не читает. До Go 1.26 включительно вызов resp.Body.Close() в таком HTTP/1-запросе приводил к закрытию соединения. Следующий запрос снова платил за TCP и TLS. В Go 1.27 Transport после Close асинхронно дочитывает ненужное тело: не более 256 КиБ и не дольше 50 мс. Если успеет, соединение можно использовать повторно. При Connection: close дочитывание пропускается. 🔴 Даже успешный JSON Decode не всегда читает тело до конца: после объекта может остаться перевод строки. Для HTTP/1 это тоже мешало повторному использованию соединения. Команда Go теперь рекомендует просто закрывать Body, когда оно больше не нужно. Повторное использование не гарантируется: действуют лимиты дочитывания и условия соединения. HTTP/2 использует отдельные потоки, поэтому такого дочитывания не требует. ➡️ Как это устроено в net/http 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика

🔎 ReverseProxy: заголовок добавили, а backend его не увидел Прокси записывает X-App-User в Director. Клиент присылает Connec
🔎 ReverseProxy: заголовок добавили, а backend его не увидел Прокси записывает X-App-User в Director. Клиент присылает Connection: X-App-User — и до backend заголовок уже не доходит. Причина в порядке обработки: hop-by-hop заголовки удаляются после вызова Director. Клиент может перечислить их в Connection, включая поле, которое добавил сам прокси. С Rewrite порядок другой: сначала очистка, затем callback. Добавленный в r.Out.Header заголовок сохраняется. Менять входящий r.In нельзя. В локальном тесте backend получил пустую строку с Director и proxy-user с Rewrite. Оба сценария — на Go 1.27.2. В текущей документации Director помечен устаревшим, для нового кода рекомендуется Rewrite. ➡️ Порядок обработки ReverseProxy 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика

🔎 go test запускает и код зависимостей Загрузка Go-модуля не выполняет его init(). Но когда зависимость импортирована в тест
🔎 go test запускает и код зависимостей Загрузка Go-модуля не выполняет его init(). Но когда зависимость импортирована в тестовый бинарник, её инициализация запускается до тестов — с доступом к окружению процесса. Жюль Робино проверил это на собственной тестовой зависимости: при сборке она молчала, а во время go test её init() прочитал переменные окружения. 🔴 Если тестовый job получает ключ деплоя, импортированная зависимость тоже может к нему обратиться. Автор предлагает разделять тесты и публикацию, выдавая каждому job только нужные полномочия. Проверять стоит и новые зависимости. govulncheck ищет известные уязвимости, а capslock показывает возможности кода и пути вызовов: доступ к сети, файлам, запуск процессов. Неожиданная возможность — повод изучить её использование. Контрольная сумма подтверждает целостность модуля, но сама по себе не доказывает безопасность его поведения. 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика

🧪 Зелёный тест ещё нужно проверить Функция IsSorted должна отличать отсортированный слайс от неотсортированного. Один тест н
🧪 Зелёный тест ещё нужно проверить Функция IsSorted должна отличать отсортированный слайс от неотсортированного. Один тест на [1, 2, 3] пропустит реализацию, которая всегда возвращает true. В разборе TDD на Go Джон Арундел сначала пишет тест и минимальную реализацию с return false. Тест компилируется и падает: теперь видно, что он реагирует на эту ошибку. Затем автор добавляет неотсортированный вход и постепенно расширяет набор случаев. Повторяющиеся числа проверяют допустимость равных соседей, отрицательные — ошибочную начальную границу, пустой слайс — обращение к несуществующему элементу. 🔴 Каждый найденный баг сначала получает падающий тест, затем исправление. Зелёный прогон показывает соответствие проверенным случаям; полноту набора нужно оценивать отдельно. Самописная IsSorted здесь служит упражнением по TDD. 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика

💡 slog: убираем секретный атрибут до записи лога Токен не должен попадать в лог, но приходит вместе с остальными полями запр
💡 slog: убираем секретный атрибут до записи лога Токен не должен попадать в лог, но приходит вместе с остальными полями запроса. У стандартных JSONHandler и TextHandler есть HandlerOptions.ReplaceAttr: callback преобразует атрибут перед записью. Возврат пустого slog.Attr{} удаляет поле. Фильтр на карточке убирает access_token и внутри группы auth, сохраняя соседний user. Названия открытых групп доступны в аргументе groups. 🔴 Этот пример проверяет имя ключа. Если секрет уже вставлен в текст сообщения, например token=demo-secret, он останется в msg. Передавайте чувствительные данные отдельными атрибутами и продумывайте фильтр для своей схемы логов. ➡️ Документация ReplaceAttr 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика

🧑‍💻 Какие навыки помогают вам в разработке в 2026 году? Что вы чаще используете в работе? В каких задачах помогает ИИ, а где проще справиться самостоятельно? Мы решили собрать портрет современного разработчика — и приглашаем вас поделиться своим опытом. Расскажите, какие навыки вам пригодились и как вы используете ИИ. Если обходите его стороной, нам тоже интересно узнать почему. Опрос анонимный и займёт около 5 минут. Результаты опубликуем в общем большом исследовании. 👉 Пройти опрос

🧪 Тестируем файловый код без временных каталогов Функция читает файлы? Если она принимает fs.FS, в тест можно передать fstes
🧪 Тестируем файловый код без временных каталогов Функция читает файлы? Если она принимает fs.FS, в тест можно передать fstest.MapFS: пути и содержимое задаются прямо в map. Родительские каталоги создаются в этой модели автоматически. В примере на карточке два файла. banner.txt читается как hello, а отсутствующий путь возвращает ошибку, которую можно проверить через errors.Is(err, fs.ErrNotExist). fstest.TestFS проверяет поведение файловой системы и наличие перечисленных файлов. Содержимое и логику вашей функции нужно проверять отдельно. 🔴 Не меняйте map одновременно с файловыми операциями: это data race. Для большой файловой системы такая модель неудобна — обход каталогов перебирает всю map. ➡️ MapFS и TestFS в документации 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика

🔄 NATS 2.15: перенос потока JetStream можно отменить Поток JetStream уже переносится между узлами, а план размещения изменил
🔄 NATS 2.15: перенос потока JetStream можно отменить Поток JetStream уже переносится между узлами, а план размещения изменился. В NATS 2.15 появился отдельный API для отмены такого переноса:
$JS.API.STREAM.CANCEL_MOVE
Операция возвращает поток к исходному размещению. Новый механизм согласования желаемого состояния также делает безопаснее изменения размещения и числа реплик во время переноса. 🔴 Для обслуживания узлов добавили API эвакуации потоков и их consumers. Это позволяет перенести данные и состояние перед работами на сервере. Изменения полезны командам, чьи Go-сервисы используют JetStream для устойчивого обмена сообщениями. Перед обновлением проверьте совместимость с 2.14: у релиза есть отдельное руководство по переходу. ➡️ Новые API и изменения NATS 2.15 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика

🛠 garble 0.18: меньше сведений об исходнике в Go-бинарнике Go-бинарник сохраняет имена и другую информацию, полезную для диа
🛠 garble 0.18: меньше сведений об исходнике в Go-бинарнике Go-бинарник сохраняет имена и другую информацию, полезную для диагностики. garble меняет сборку так, чтобы извлечь из неё сведения об исходном коде было сложнее. Версия 0.18 поддерживает Go 1.27; поддержка Go 1.26 в ней убрана. По оценке авторов, сборка ускорилась на 10–15%: подготовка изменённого линкера теперь идёт параллельно со сбором списка пакетов. 🔴 Экспериментальная обфускация потока управления стала воспроизводимой при заданном -seed и поддерживает больше конструкций языка. Обычная команда:
garble build ./...
Флаг -tiny удаляет ещё больше диагностической информации, но усложняет разбор аварий: сообщения panic и стектрейсы не печатаются. ➡️ Изменения и исправления garble 0.18 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика

📦 klauspost/compress 1.20: LZW и Microsoft XPRESS В библиотеке klauspost/compress появились два дополнения для работы с форм
📦 klauspost/compress 1.20: LZW и Microsoft XPRESS В библиотеке klauspost/compress появились два дополнения для работы с форматами сжатия: — чтение и запись LZW; — распаковка Microsoft XPRESS, описанного в MS-XCA. Это пригодится, когда Go-сервис получает данные из внешней системы и формат уже задан источником. 🔴 В том же релизе добавили ассемблерные кодировщики S2 для arm64 и обновили низкоуровневые реализации zstd и huff0. Для xxhash ограничили объём обработки в непрерываемом ассемблерном участке. Если библиотека стоит на горячем пути, сравнивайте версии на собственных данных: размер блоков, повторяемость содержимого и архитектура CPU влияют на результат. ➡️ Список изменений версии 1.20.0 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика

👀 Как вы смотрите видео? Разбираете урок, слушаете интервью фоном или начинаете на телефоне, а продолжаете на большом экране? Хотим узнать, что делает просмотр удобным для вас. Вспомните последнее видео — ролик, урок, фильм или серию сериала — и расскажите о своём опыте. Если детали не запомнились, можно так и ответить. 🕰️ Опрос займёт около 3 минут. В результатах сможете сравнить свои привычки с ответами других участников. А разработчики и инженеры видеоплатформы расскажут, что происходит по ту сторону экрана, пока вы смотрите видео. 🔗 Поделиться опытом 🐸 Библиотека программиста