Библиотека 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
🚀 Быстрое введение в указатели от автора книги Let's Go Алекса Эдвардса: на заметку Go-разработчику.

Читать
Мы можем использовать цикл for-range для моделирования циклов for i in 0..N в некоторых других языках, как показано на примере выше.

Шаги первых двух циклов должны быть известны во время компиляции, тогда как у последнего нет этого требования. Но последний выделяет чуть больше памяти (в стеке, под заголовок слайса).

#tip #go #beginner
🪤Обзор распространенных ловушек, с которыми могут столкнуться Go-разработчики при бенчмаркинге.

Читать
#холивар

💭 Представьте, что за час вы можете научиться чему угодно. Что вы выберете?👇
This media is not supported in your browser
VIEW IN TELEGRAM
#news #чтопроисходит

💭 Опрос разработчиков Go возвращается: поделитесь своим отзывом.
🤔 Proposal: database/sql: add methods to scan an entire row into one value.
⚡️ Целых две реализации llama2.c на чистом Go: go-llama2 и llama2.go.
🔸 Релиз GoLand 2023.2 IDE. Под капотом: интеграция с модулями Go, рефакторинг migrating function parameters 🔄 method receivers, поддержка errors.Is и errors.As, новые плагины AI Assistant (ограниченный доступ) и Kafka, интеграция с GitLab.
🔸 ntp 1.3: имплементация клиента Simple NTP на Go.
🔸 go-elasticsearch 8.9: официальный Go-клиент для Elasticsearch.
🔸 sqlc 1.20: библиотека для генерации полностью типобезопасного идиоматического кода из SQL.
🔸 QCOW2: библиотека для чтения и записи образов дисков QCOW2 —(QCOW2 — формат хранения, используемый эмулятором QEMU).
От C до Go: как Go объединил лучшие черты своих предшественников

Разработчики из Serverspace активно использует Go для работы, например с Terraform-провайдером, поэтому решили разобрать его особенности подробнее:

— историю языка,
— почему он стал таким востребованным среди разработчиков,
— какие черты заимствованы от C и других языков.

💡В конце вас ждет небольшая подборка материалов для самостоятельного изучения.
#новости

🎉 Команда Go представила 4-й релиз-кандидат Go 1.21 и исправления безопасности для crypto/tls (CVE-2023-29409) в рамках версий Go 1.20.7/1.19.12.
#tip #go #beginner

💡 Указатели на массивы могут использоваться как массивы в нескольких ситуациях

📌 Пример слева компилируется и работает нормально, тогда как в примере справа третий for вызывает панику.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Рефакторинг кода Go для тестопригодности: возможности интерфейсов

Исследование возможностей юнит-тестов для раннего обнаружения багов и важности проектирования модулей на основе абстракций — интерфейсов Go.

Читать перевод
📉 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