uz
Feedback

Firibgarlarga uchmang! Telemetrio bunday kanallarni topadi va belgilaydi 👉 Belgini ko‘rmoqchi bo‘lsangiz, obuna bo‘ling

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

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

Kanalga Telegram’da o‘tish

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

Ko'proq ko'rsatish

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

Библиотека Go-разработчика | Golang (@goproglib) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 23 990 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 5 503-o'rinni va Rossiya mintaqasida 27 265-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 23 990 obunachiga ega bo‘ldi.

26 Oktabr, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -85 ga, so‘nggi 24 soatda esa -11 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 19.46% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 7.25% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 4 668 marta ko‘riladi; birinchi sutkada odatda 1 740 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 5 ta reaksiya keladi.
  • Tematik yo‘nalishlar: Kontent навигация, лучшее_из_библиотеки_2025, git, string, golive kabi asosiy mavzularga jamlangan.

📝 Tavsif va kontent siyosati

Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Все самое полезное для Go-разработчика в одном канале. Учиться у нас: clc.to/qaSdww По рекламе: @tproger_sales_bot Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a4a8c24689c2151c752af0 Заявка: 8137752389”

Yuqori yangilanish chastotasi (oxirgi ma’lumot 27 Oktabr, 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.

23 990
Obunachilar
-1124 soatlar
-497 kun
-8530 kun
Obunachilarni jalb qilish
Okt '26
Oktabr '26
+142
4 kanalda
Sentabr '26
+198
0 kanalda
Get PRO
Avgust '26
+260
1 kanalda
Get PRO
Iyul '26
+221
2 kanalda
Get PRO
Iyun '26
+171
3 kanalda
Get PRO
May '26
+288
3 kanalda
Get PRO
Aprel '26
+249
1 kanalda
Get PRO
Mart '26
+216
1 kanalda
Get PRO
Fevral '26
+487
7 kanalda
Get PRO
Yanvar '26
+346
3 kanalda
Get PRO
Dekabr '25
+370
4 kanalda
Get PRO
Noyabr '25
+384
4 kanalda
Get PRO
Oktabr '25
+331
2 kanalda
Get PRO
Sentabr '25
+290
0 kanalda
Get PRO
Avgust '25
+316
4 kanalda
Get PRO
Iyul '25
+317
2 kanalda
Get PRO
Iyun '25
+315
0 kanalda
Get PRO
May '25
+391
5 kanalda
Get PRO
Aprel '25
+358
4 kanalda
Get PRO
Mart '25
+625
53 kanalda
Get PRO
Fevral '25
+527
35 kanalda
Get PRO
Yanvar '25
+517
37 kanalda
Get PRO
Dekabr '24
+591
40 kanalda
Get PRO
Noyabr '24
+605
52 kanalda
Get PRO
Oktabr '24
+499
36 kanalda
Get PRO
Sentabr '24
+676
36 kanalda
Get PRO
Avgust '24
+580
36 kanalda
Get PRO
Iyul '24
+586
37 kanalda
Get PRO
Iyun '24
+467
29 kanalda
Get PRO
May '24
+674
35 kanalda
Get PRO
Aprel '24
+771
36 kanalda
Get PRO
Mart '24
+901
31 kanalda
Get PRO
Fevral '24
+729
31 kanalda
Get PRO
Yanvar '24
+863
27 kanalda
Get PRO
Dekabr '23
+850
29 kanalda
Get PRO
Noyabr '23
+608
10 kanalda
Get PRO
Oktabr '23
+697
25 kanalda
Get PRO
Sentabr '23
+723
0 kanalda
Get PRO
Avgust '23
+648
0 kanalda
Get PRO
Iyul '23
+503
0 kanalda
Get PRO
Iyun '23
+422
0 kanalda
Get PRO
May '23
+568
0 kanalda
Get PRO
Aprel '23
+365
0 kanalda
Get PRO
Mart '23
+841
0 kanalda
Get PRO
Fevral '23
+392
0 kanalda
Get PRO
Yanvar '23
+395
0 kanalda
Get PRO
Dekabr '22
+384
0 kanalda
Get PRO
Noyabr '22
+491
0 kanalda
Get PRO
Oktabr '22
+256
0 kanalda
Get PRO
Sentabr '22
+292
0 kanalda
Get PRO
Avgust '22
+394
0 kanalda
Get PRO
Iyul '22
+472
0 kanalda
Get PRO
Iyun '22
+443
0 kanalda
Get PRO
May '22
+176
0 kanalda
Get PRO
Aprel '22
+328
0 kanalda
Get PRO
Mart '22
+242
0 kanalda
Get PRO
Fevral '22
+135
0 kanalda
Get PRO
Yanvar '22
+236
0 kanalda
Get PRO
Dekabr '21
+245
0 kanalda
Get PRO
Noyabr '21
+219
0 kanalda
Get PRO
Oktabr '21
+215
0 kanalda
Get PRO
Sentabr '21
+290
0 kanalda
Get PRO
Avgust '21
+298
0 kanalda
Get PRO
Iyul '21
+281
0 kanalda
Get PRO
Iyun '21
+196
0 kanalda
Get PRO
May '21
+389
0 kanalda
Get PRO
Aprel '21
+336
0 kanalda
Get PRO
Mart '21
+280
0 kanalda
Get PRO
Fevral '21
+258
0 kanalda
Get PRO
Yanvar '21
+262
0 kanalda
Get PRO
Dekabr '20
+6 566
0 kanalda
Sana
Obunachilarni jalb qilish
Esdaliklar
Kanallar
26 Oktabr0
25 Oktabr+1
24 Oktabr+3
23 Oktabr+2
22 Oktabr+8
21 Oktabr+5
20 Oktabr+3
19 Oktabr+5
18 Oktabr+3
17 Oktabr+6
16 Oktabr+5
15 Oktabr+2
14 Oktabr+10
13 Oktabr+8
12 Oktabr+13
11 Oktabr+11
10 Oktabr+7
09 Oktabr+8
08 Oktabr+4
07 Oktabr+2
06 Oktabr+12
05 Oktabr+6
04 Oktabr+6
03 Oktabr+3
02 Oktabr+5
01 Oktabr+4
Kanal postlari
Динозавр держится за ВМ и снапшоты по расписанию, Археолог давно не помнит, что и где у него крутится, а Повелителю облаков у
Динозавр держится за ВМ и снапшоты по расписанию, Археолог давно не помнит, что и где у него крутится, а Повелителю облаков уютно до первого кругленького счёта. Это три из десяти типов инфраструктуры в тесте от команды 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
Библиотека Go-разработчика | Golang - Telegram kanali @goproglib statistikasi va tahlili