Библиотека Go-разработчика | Golang
23.2K subscribers
1.9K photos
39 videos
87 files
4.3K links
Все самое полезное для Go-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/32d20779

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
📉 Cитуация на рынке труда в IT: зарплаты и куда все катится в 2023 году

Спойлер: все неоднозначно, сложно и, местами, — плачевно. По крайней мере, об этом говорит статистика за первое полугодие 2023 года.

🔗 Основной сайт
🔗 Зеркало
#холивар

Какая информация в описании вакансии может вас оттолкнуть? И на что вы больше всего обращаете внимание:

📝 Условия работы
📝 Описание вакансии
📝 Бренд работодателя

🤩 — главное, чтобы хорошо платили
💯 — для меня важны все перечисленные пункты
«Библиотека программиста» в поиске контент-менеджера для ведения телеграм-каналов

Ищем человека, который грамотно пишет, разбирается в контенте и в одной из этих трех тем:
👉Data Science
👉Frontend
👉мобильная разработка

Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴

Подробнее о вакансии и форма для отклика — по ссылке.

Ждем вас в команде!
Написание парсеров yacc с помощью goyacc: советы и рекомендации

У разработчиков Dolt, базы данных SQL с контролем версий, возникла необходимость преобразовать строки SQL-запроса в структурированную форму, которую может выполнить база данных. 

Решение очевидное — использовать yacc — разновидность компилятора, превращающего простую грамматику в синтаксический анализатор.

У Go есть собственная версия этого инструмента: goyacc. Под катом — несколько советов и приемов, которые помогут наладить работу yacc с Go, а также проблемы и решения, которые могут возникнуть на практике.
📌 Полноценный цикл видео о том, как создать PaaS:

🔸 Библиотеки и инструменты для создания сервиса | История создания шаблона проекта и библиотек для разработчика микросервиса на Go | Александр Ермолаев, руководитель группы стандартизации шаблонов, инструментов и мониторинга в СберМаркете.
Инструменты для observability в PaaS | Про дашборды, каким образом обеспечивается добавление новых компонентов в библиотеку go-libs и многое другое.
🔸 Как запустить сервис локально одной командой | Как делали выбор между minikube и docker compose, как настраивали роутинг внутри и снаружи, и многое другое | Дмитрий Лукиянчук, руководитель отдела разработки платформенных решений в СберМаркете.
🔸 Канареечный деплой | Что нужно, чтобы задеплоить сервис в PaaS и как это устроено | Антон Малафеев, руководитель группы инженеров ИТ-инфраструктуры в СберМаркете.
🔸 Трудности перевода: взаимодействие сервисов | Как организовать общение между сервисами и устроить эволюцию, а не революцию.
| Александр Сусиков, руководитель отдела разработки Ruby-платформы в СберМаркете.
🔸 Как тестировать группу сервисов и экономить время | Про проблемы тестирования, какие есть подходы к тестированию в СберМаркете, как развернуть связку сервисов для системного тестирования и как этим управлять | Роман Шпак, руководитель группы повышения производительности в СберМаркете.
This media is not supported in your browser
VIEW IN TELEGRAM
Нас уже больше 13 000 🥳🎊🎂! Спасибо за интерес к «Библиотеке Go-разработчика».
Please open Telegram to view this post
VIEW IN TELEGRAM
📌 Вот как выглядит список активных предложений и дискуссий команды Go, актуальный на момент второго августа

🤔 Обсуждения (еще не предложения)

gonew: templates for new modules #61669
metrics for the standard library #61638
codereview: should the Go project stop importing GitHub PRs? #61182
net/http: move HTTP/2 into the standard library #60746

☑️ Принятые
crypto/tls: QUIC 0-RTT APIs #60107
sync/atomic: add OR/AND operators for unsigned types #61395
text/template, html/template: add ExecuteFuncs #54450
x/crypto/cryptobyte: expose uint48 methods #61275

Отклоненные
`go test ./.../...` for submodule/multimodule projects #59480
add package 'operators' #58559
all: port to linux/mips_siflower #61254
maps: remove package for Go 1.21 #61613

Вероятнее всего будут приняты
go/types, types2: fix SizesFor("gc", ...) to match actual gc behavior #61035
internal/cpu: detect OS support for AVX-512 and CPU support for VAES and VPCLMULQDQ instructions for performance optimization of crypto ciphers #43925
spec: add untyped builtin zero #61372
x/crypto: add AES-GCM-SIV #54364

⌛️ Активные
cmd/compile: add new range behind GOEXPERIMENT=range #61717
cmd/go: track tool dependencies in go.mod #48429
cmd/test2json: Allow Go Tests to Pass Metadata #43936
cmp: add CompareBool #61643
crypto/x509: introduce new robust OID type & use it for certificate policies #60665
fmt: don't recover panics except for dereferencing nil fmt.Stringer receivers #28150
go/doc: reconsider comment rewrites of '' to #54312
io/fs, net/http: define interface for automatic ETag serving #60940
io/fs: add writable interfaces #45757
math/rand/v2: revised API for math/rand #61716
net/http: enhanced ServeMux routing #61410
net/netip: add Prefix.Less and Prefix.Compare #61642
spec: add range over int, range over func #61405
syscall: undeprecate #60797
testing: Add T.Output() etc #59928
testing: add identity function that forces evaluation for benchmarks #61179
testing: add testing.B.Loop for iteration #61515
testing: shuffle seed should be different when -shuffle=on and -count flag is set #61256
time: stop requiring Timer/Ticker.Stop for prompt GC #61542
x/crypto/ssh: add a specific error for algorithm negotiation issues/errors #61536
x/crypto/ssh: export supported algorithms #61537
x/crypto/ssh: expose negotiated algorithms #58523
x/crypto/ssh: server side multi-step authentication #61447
x/oauth2: Unmarshal expires_in outside of oauth2/internal #61417
x/oauth2: support PKCE #59835
Please open Telegram to view this post
VIEW IN TELEGRAM
Эксперименты с шаблонами проектов с помощью gonew

Команда Go представила новый экспериментальный инструмент для создания новых проектов Go из предопределенных шаблонов. Любой может написать эти шаблоны, которые затем упаковываются и распространяются в виде модулей, используя Go module proxy и checksum database для повышения безопасности и доступности.

📌 Устанавливаем:
> go install golang.org/x/tools/cmd/gonew@latest

📌 Используем:
> gonew golang.org/x/example/helloserver example.com/myserver
> cd ./myserver
Встраиваем Hello World на Go в ядро Linux

Автор материала представил малоизвестную функцию ядра Linux. Вместо запуска программы из файловой системы, независимо от того, виртуальная она или нет, также можно встроить программу user-space непосредственно в сам образ ядра и запускать оттуда👇

Читать
Использование Hashicorp Vault для хранения секретов: гайд, построеный на основе Go-проекта.

Читать
#tip #go #beginner

О случайном порядке итерации типа map

Встроенные мапы Go не поддерживают порядок входных значений. Поэтому при использовании цикла for-range для итерации записей мапы порядок записей рандомизируется. Запустив код из примера, вы увидите, что результаты могут отличаться.

Но обратите внимание, что функции вывода на экран в стандартном пакете fmt сортируют записи (по ключам) мапы. То же самое происходит с выводами вызовов функции json.Marshal.
Разработка базовой поисковой системы на Go: пошаговое руководство

🔸Настройка необходимых инструментов/библиотек и создание структуры проекта с модулями Go
🔸Создание поискового робота и индексатора
🔸Реализация перечисленных компонентов и алгоритма поиска с подробным объяснением основных концепций: настройки HTTP-клиента, сканирования и индексирования веб-страницы, обработки URL-адреса и извлечения данных
🔸Модульное и сквозное тестирование проекта + базовые вопросы теплая
profile-guided-optimization-pgo-in-go.pdf
5.4 MB
С Go 1.20 компилятор Go начал поддерживать механизм Profile Guided Optimization (PGO) для оптимизации сборок.

О том, что из себя представляет PGO и как его использовать в своих проектах, читайте в статье👇

Читать (pdf-файл для тех, у кого не открывается Medium)
🖼️ 🥳 Все гоферы здесь? Есть новость для вас: Go 1.21.0 релизнулся!

🗒️ Примечания к выпуску
⬇️ Скачать

💬Ждали новый выпуск?
💯 — конечно
🥱 — нет, уже сбился со счета
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️Команда werf выпустила бесплатный самоучитель по CI/CD и Kubernetes для Go-разработчиков

Что внутри:
🔸Подготовка окружения и сборка образа
🔸Основы Kubernetes
🔸Создание приложения на Go, работа с файлами и БД
🔸Лучшие практики деплоя
🔸Построение CI/CD-пайплайна
GitLab CI/CD, GitHub Actions, ArgoCD

👉 Читать гайд
🚀 Глубокое погружение в интеграцию Go с Kafka: подробный гайд по использование Go для обмена сообщениями в реальном времени.

Читать