fa
Feedback

فریب کلاهبرداران را نخورید! تل‌متریو این کانال‌ها را شناسایی و برچسب‌گذاری می‌کند 👉 برای مشاهده برچسب، اشتراک تهیه کنید

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

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

رفتن به کانال در Telegram

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

نمایش بیشتر

📈 تحلیل کانال تلگرام Библиотека Go-разработчика | Golang

کانال Библиотека Go-разработчика | Golang (@goproglib) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 23 990 مشترک است و جایگاه 5 503 را در دسته فناوری و برنامه‌ها و رتبه 27 265 را در منطقه روسيا دارد.

📊 شاخص‌های مخاطب و پویایی

از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 23 990 مشترک جذب کرده است.

بر اساس آخرین داده‌ها در تاریخ 26 اکتبر, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -85 و در ۲۴ ساعت گذشته برابر -11 بوده و همچنان دسترسی گسترده‌ای حفظ شده است.

  • وضعیت تأیید: تأیید نشده
  • نرخ تعامل (ER): میانگین تعامل مخاطب 19.46% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 7.25% واکنش نسبت به کل مشترکان کسب می‌کند.
  • دسترسی پست‌ها: هر پست به طور میانگین 4 668 بازدید دریافت می‌کند. در اولین روز معمولاً 1 740 بازدید جمع‌آوری می‌شود.
  • واکنش‌ها و تعامل: مخاطبان به‌طور فعال حمایت می‌کنند؛ میانگین واکنش به هر پست 5 است.
  • علایق موضوعی: محتوا بر موضوعات کلیدی مانند навигация, лучшее_из_библиотеки_2025, git, string, golive تمرکز دارد.

📝 توضیح و سیاست محتوایی

نویسنده این فضا را محل بیان دیدگاه‌های شخصی توصیف می‌کند:
“Все самое полезное для Go-разработчика в одном канале. Учиться у нас: clc.to/qaSdww По рекламе: @tproger_sales_bot Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a4a8c24689c2151c752af0 Заявка: 8137752389”

به لطف به‌روزرسانی‌های پرتکرار (آخرین داده در تاریخ 27 اکتبر, 2026)، کانال همواره به‌روز و دارای دسترسی بالاست. تحلیل‌ها نشان می‌دهد مخاطبان به‌طور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامه‌ها تبدیل کرده‌اند.

23 990
مشترکین
-1124 ساعت
-497 روز
-8530 روز
جذب مشترکین
اکتبر '26
اکتبر '26
+142
در 4 کانال‌ها
سپتامبر '26
+198
در 0 کانال‌ها
Get PRO
اوت '26
+260
در 1 کانال‌ها
Get PRO
ژوئیه '26
+221
در 2 کانال‌ها
Get PRO
ژوئن '26
+171
در 3 کانال‌ها
Get PRO
مه '26
+288
در 3 کانال‌ها
Get PRO
آوریل '26
+249
در 1 کانال‌ها
Get PRO
مارس '26
+216
در 1 کانال‌ها
Get PRO
فوریه '26
+487
در 7 کانال‌ها
Get PRO
ژانویه '26
+346
در 3 کانال‌ها
Get PRO
دسامبر '25
+370
در 4 کانال‌ها
Get PRO
نوامبر '25
+384
در 4 کانال‌ها
Get PRO
اکتبر '25
+331
در 2 کانال‌ها
Get PRO
سپتامبر '25
+290
در 0 کانال‌ها
Get PRO
اوت '25
+316
در 4 کانال‌ها
Get PRO
ژوئیه '25
+317
در 2 کانال‌ها
Get PRO
ژوئن '25
+315
در 0 کانال‌ها
Get PRO
مه '25
+391
در 5 کانال‌ها
Get PRO
آوریل '25
+358
در 4 کانال‌ها
Get PRO
مارس '25
+625
در 53 کانال‌ها
Get PRO
فوریه '25
+527
در 35 کانال‌ها
Get PRO
ژانویه '25
+517
در 37 کانال‌ها
Get PRO
دسامبر '24
+591
در 40 کانال‌ها
Get PRO
نوامبر '24
+605
در 52 کانال‌ها
Get PRO
اکتبر '24
+499
در 36 کانال‌ها
Get PRO
سپتامبر '24
+676
در 36 کانال‌ها
Get PRO
اوت '24
+580
در 36 کانال‌ها
Get PRO
ژوئیه '24
+586
در 37 کانال‌ها
Get PRO
ژوئن '24
+467
در 29 کانال‌ها
Get PRO
مه '24
+674
در 35 کانال‌ها
Get PRO
آوریل '24
+771
در 36 کانال‌ها
Get PRO
مارس '24
+901
در 31 کانال‌ها
Get PRO
فوریه '24
+729
در 31 کانال‌ها
Get PRO
ژانویه '24
+863
در 27 کانال‌ها
Get PRO
دسامبر '23
+850
در 29 کانال‌ها
Get PRO
نوامبر '23
+608
در 10 کانال‌ها
Get PRO
اکتبر '23
+697
در 25 کانال‌ها
Get PRO
سپتامبر '23
+723
در 0 کانال‌ها
Get PRO
اوت '23
+648
در 0 کانال‌ها
Get PRO
ژوئیه '23
+503
در 0 کانال‌ها
Get PRO
ژوئن '23
+422
در 0 کانال‌ها
Get PRO
مه '23
+568
در 0 کانال‌ها
Get PRO
آوریل '23
+365
در 0 کانال‌ها
Get PRO
مارس '23
+841
در 0 کانال‌ها
Get PRO
فوریه '23
+392
در 0 کانال‌ها
Get PRO
ژانویه '23
+395
در 0 کانال‌ها
Get PRO
دسامبر '22
+384
در 0 کانال‌ها
Get PRO
نوامبر '22
+491
در 0 کانال‌ها
Get PRO
اکتبر '22
+256
در 0 کانال‌ها
Get PRO
سپتامبر '22
+292
در 0 کانال‌ها
Get PRO
اوت '22
+394
در 0 کانال‌ها
Get PRO
ژوئیه '22
+472
در 0 کانال‌ها
Get PRO
ژوئن '22
+443
در 0 کانال‌ها
Get PRO
مه '22
+176
در 0 کانال‌ها
Get PRO
آوریل '22
+328
در 0 کانال‌ها
Get PRO
مارس '22
+242
در 0 کانال‌ها
Get PRO
فوریه '22
+135
در 0 کانال‌ها
Get PRO
ژانویه '22
+236
در 0 کانال‌ها
Get PRO
دسامبر '21
+245
در 0 کانال‌ها
Get PRO
نوامبر '21
+219
در 0 کانال‌ها
Get PRO
اکتبر '21
+215
در 0 کانال‌ها
Get PRO
سپتامبر '21
+290
در 0 کانال‌ها
Get PRO
اوت '21
+298
در 0 کانال‌ها
Get PRO
ژوئیه '21
+281
در 0 کانال‌ها
Get PRO
ژوئن '21
+196
در 0 کانال‌ها
Get PRO
مه '21
+389
در 0 کانال‌ها
Get PRO
آوریل '21
+336
در 0 کانال‌ها
Get PRO
مارس '21
+280
در 0 کانال‌ها
Get PRO
فوریه '21
+258
در 0 کانال‌ها
Get PRO
ژانویه '21
+262
در 0 کانال‌ها
Get PRO
دسامبر '20
+6 566
در 0 کانال‌ها
تاریخ
رشد مشترکین
اشارات
کانال‌ها
26 اکتبر0
25 اکتبر+1
24 اکتبر+3
23 اکتبر+2
22 اکتبر+8
21 اکتبر+5
20 اکتبر+3
19 اکتبر+5
18 اکتبر+3
17 اکتبر+6
16 اکتبر+5
15 اکتبر+2
14 اکتبر+10
13 اکتبر+8
12 اکتبر+13
11 اکتبر+11
10 اکتبر+7
09 اکتبر+8
08 اکتبر+4
07 اکتبر+2
06 اکتبر+12
05 اکتبر+6
04 اکتبر+6
03 اکتبر+3
02 اکتبر+5
01 اکتبر+4
پست‌های کانال
Динозавр держится за ВМ и снапшоты по расписанию, Археолог давно не помнит, что и где у него крутится, а Повелителю облаков у
Динозавр держится за ВМ и снапшоты по расписанию, Археолог давно не помнит, что и где у него крутится, а Повелителю облаков уютно до первого кругленького счёта. Это три из десяти типов инфраструктуры в тесте от команды Deckhouse. Ответьте на 5 вопросов, узнайте свой тип и отправьте ссылку на результат команде. Посмотрим, совпадёт ли он у коллег. → Пройти тест и узнать свой тип

2
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-разработчика
1 403
3
📌 Один курс — хорошее вложение в себя. Два по той же цене — ещё лучше. В Proglib Academy действует акция: покупаешь один кур
📌 Один курс — хорошее вложение в себя. Два по той же цене — ещё лучше. В Proglib Academy действует акция: покупаешь один курс, а второй получаешь в подарок. Например, можно совместить два направления по работе с ИИ: 💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью. 💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений. 📍 Разница в цене — почти 50 тысяч рублей. Можно освоить больше, не выходя за рамки запланированного бюджета. А если тебе интереснее Python, алгоритмы, backend или DevOps — выбирай другую пару курсов из каталога. Акция действует до 31 октября включительно ⏳ ⏮️ Пора прокачать свой стек
1 856
4
Тест упал. Покажите, что именно разошлось Два больших объекта в логе приходится сравнивать глазами. 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-разработчика
1 995
5
singleflight: один запрос к источнику вместо одинаковых параллельных Кеш опустел, и несколько обработчиков одновременно пошли за одним товаром в БД. Пока первый запрос ещё работает, остальные повторяют ту же работу. Для такой ситуации есть golang.org/x/sync/singleflight. Вызов Group.Do(key, fn) объединяет обращения с одинаковым ключом: выполняется одна функция, остальные ждут и получают её результат вместе с ошибкой. Ключи разные — работа идёт независимо. Все обработчики должны использовать одну и ту же Group, а не создавать её заново на каждый запрос. Ключ описывает всё, от чего зависит результат. Если данные различаются между арендаторами, одного ID товара мало. Например, tenant:42:product:7 отделяет его от такого же товара другого арендатора. Готовый результат singleflight не хранит: следующий вызов после завершения работы снова запустит функцию. Механизм действует внутри одного процесса и не ограничивает общее число запросов по разным ключам. А флаг shared сообщает, что результат получили несколько вызовов, а не что сработал кеш. Документация singleflight 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика
2 230
6
💾 Команда Dolt ускорила WAL сочетанием fdatasync и записи нулей Заменить fsync на fdatasync оказалось недостаточно. Команда
💾 Команда Dolt ускорила WAL сочетанием fdatasync и записи нулей Заменить fsync на fdatasync оказалось недостаточно. Команда Go-базы Dolt также стала заранее записывать 4 МиБ нулей при расширении журнала. Следующие записи перезаписывают готовую область, реже требуя синхронизации метаданных. Во внутренних тестах небольших последовательных записей это дало 10–40% прироста. Помогло сочетание Ext4 и сетевого диска с заметной задержкой, но свободной пропускной способностью. На Btrfs и OpenZFS такого выигрыша не увидели. А предварительная запись нулей увеличивает объём записи — вплоть до двух раз. При упоре в пропускную способность оптимизация может навредить. Полезный разбор для тех, кто пишет хранилища и журналы на Go. На дату статьи изменение было в main, но ещё не вошло в релиз Dolt. 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика
2 459
7
😎 Выбираешь один курс, второй получаешь бесплатно. Баг? Нет, акция! До 31 октября в Proglib Academy можно выбрать два курса
😎 Выбираешь один курс, второй получаешь бесплатно. Баг? Нет, акция! До 31 октября в Proglib Academy можно выбрать два курса и заплатить только за один. Например, можно совместить: 💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью. 💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений. Вместе курсы стоят 108 000 ₽, но по акции оба обойдутся в 59 000 ₽. Экономия — 49 000 ₽ 🔥 Интересуют Python и ИИ или алгоритмы и архитектура? Можно выбрать любые два курса из каталога. Акция действует до 31 октября включительно ⏳ ⏬ Собрать свой учебный билд
2 475
8
⚙️ 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-разработчика
2 637
9
🛠 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-разработчика
2 915
10
🌐 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-разработчика
3 253
11
🔎 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-разработчика
3 300
12
🔎 go test запускает и код зависимостей Загрузка Go-модуля не выполняет его init(). Но когда зависимость импортирована в тест
🔎 go test запускает и код зависимостей Загрузка Go-модуля не выполняет его init(). Но когда зависимость импортирована в тестовый бинарник, её инициализация запускается до тестов — с доступом к окружению процесса. Жюль Робино проверил это на собственной тестовой зависимости: при сборке она молчала, а во время go test её init() прочитал переменные окружения. 🔴 Если тестовый job получает ключ деплоя, импортированная зависимость тоже может к нему обратиться. Автор предлагает разделять тесты и публикацию, выдавая каждому job только нужные полномочия. Проверять стоит и новые зависимости. govulncheck ищет известные уязвимости, а capslock показывает возможности кода и пути вызовов: доступ к сети, файлам, запуск процессов. Неожиданная возможность — повод изучить её использование. Контрольная сумма подтверждает целостность модуля, но сама по себе не доказывает безопасность его поведения. 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика
3 236
13
🧪 Зелёный тест ещё нужно проверить Функция IsSorted должна отличать отсортированный слайс от неотсортированного. Один тест н
🧪 Зелёный тест ещё нужно проверить Функция IsSorted должна отличать отсортированный слайс от неотсортированного. Один тест на [1, 2, 3] пропустит реализацию, которая всегда возвращает true. В разборе TDD на Go Джон Арундел сначала пишет тест и минимальную реализацию с return false. Тест компилируется и падает: теперь видно, что он реагирует на эту ошибку. Затем автор добавляет неотсортированный вход и постепенно расширяет набор случаев. Повторяющиеся числа проверяют допустимость равных соседей, отрицательные — ошибочную начальную границу, пустой слайс — обращение к несуществующему элементу. 🔴 Каждый найденный баг сначала получает падающий тест, затем исправление. Зелёный прогон показывает соответствие проверенным случаям; полноту набора нужно оценивать отдельно. Самописная IsSorted здесь служит упражнением по TDD. 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика
3 168
14
💡 slog: убираем секретный атрибут до записи лога Токен не должен попадать в лог, но приходит вместе с остальными полями запр
💡 slog: убираем секретный атрибут до записи лога Токен не должен попадать в лог, но приходит вместе с остальными полями запроса. У стандартных JSONHandler и TextHandler есть HandlerOptions.ReplaceAttr: callback преобразует атрибут перед записью. Возврат пустого slog.Attr{} удаляет поле. Фильтр на карточке убирает access_token и внутри группы auth, сохраняя соседний user. Названия открытых групп доступны в аргументе groups. 🔴 Этот пример проверяет имя ключа. Если секрет уже вставлен в текст сообщения, например token=demo-secret, он останется в msg. Передавайте чувствительные данные отдельными атрибутами и продумывайте фильтр для своей схемы логов. ➡️ Документация ReplaceAttr 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика
3 325
15
🧑‍💻 Какие навыки помогают вам в разработке в 2026 году? Что вы чаще используете в работе? В каких задачах помогает ИИ, а где проще справиться самостоятельно? Мы решили собрать портрет современного разработчика — и приглашаем вас поделиться своим опытом. Расскажите, какие навыки вам пригодились и как вы используете ИИ. Если обходите его стороной, нам тоже интересно узнать почему. Опрос анонимный и займёт около 5 минут. Результаты опубликуем в общем большом исследовании. 👉 Пройти опрос
2 819
16
🧪 Тестируем файловый код без временных каталогов Функция читает файлы? Если она принимает 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-разработчика
3 588
17
🔄 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-разработчика
3 680
18
🛠 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-разработчика
3 661
19
📦 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 769
20
👀 Как вы смотрите видео? Разбираете урок, слушаете интервью фоном или начинаете на телефоне, а продолжаете на большом экране? Хотим узнать, что делает просмотр удобным для вас. Вспомните последнее видео — ролик, урок, фильм или серию сериала — и расскажите о своём опыте. Если детали не запомнились, можно так и ответить. 🕰️ Опрос займёт около 3 минут. В результатах сможете сравнить свои привычки с ответами других участников. А разработчики и инженеры видеоплатформы расскажут, что происходит по ту сторону экрана, пока вы смотрите видео. 🔗 Поделиться опытом 🐸 Библиотека программиста
2 978