🚀 Быстрое введение в указатели от автора книги Let's Go Алекса Эдвардса: на заметку Go-разработчику.
Читать
Читать
www.alexedwards.net
A gentle introduction to Pointers - Alex Edwards
Мы можем использовать цикл for-range для моделирования циклов for i in 0..N в некоторых других языках, как показано на примере выше.
Шаги первых двух циклов должны быть известны во время компиляции, тогда как у последнего нет этого требования. Но последний выделяет чуть больше памяти (в стеке, под заголовок слайса).
#tip #go #beginner
Шаги первых двух циклов должны быть известны во время компиляции, тогда как у последнего нет этого требования. Но последний выделяет чуть больше памяти (в стеке, под заголовок слайса).
#tip #go #beginner
Мини-обзор новых фич Go 1.21 от Go-тимлида в Karuna Антона Околелова:
🔹Работа со слайсами (пакет slices)
🔹Работа с map (пакет maps)
🔹Новый логгер (пакет log/slog)
🔹Работа со слайсами (пакет slices)
🔹Работа с map (пакет maps)
🔹Новый логгер (пакет log/slog)
Хабр
В Go 1.21 существенно расширяется стандартная библиотека
// теперь в Go так можно! slices.Contains(s, v) Год назад в блоге Каруны мы писали про дженерики в Go, и там упоминалось, что гошное сообщество разделилось на две части. Не всем это нововведение было...
Подборка лучших статей «Библиотеки программиста» за июль: сохраняй в заметки, чтобы не пропустить #самыйсок
👨🎓 18 лучших IT-факультетов в России
🤝 5 soft skills, которые помогут тебе дорасти до Senior-разработчика
🔮 В CompTIA предсказали будущее айтишников и рассказали, к чему готовиться в ближайшие годы
🚩 5 красных флагов: как из текста вакансии понять, что компания — не очень
⚙️ 3 совета по использованию Git для начинающих
🔍 ТОП-12 джоб-сайтов: где программисту разместить резюме и найти работу
🤖 4 сферы применения ChatGPT, Bing, Bard и Claude 2
📉 Cитуация на рынке труда в IT: зарплаты и куда все катится в 2023 году
👨🎓 18 лучших IT-факультетов в России
🤝 5 soft skills, которые помогут тебе дорасти до Senior-разработчика
🔮 В CompTIA предсказали будущее айтишников и рассказали, к чему готовиться в ближайшие годы
🚩 5 красных флагов: как из текста вакансии понять, что компания — не очень
⚙️ 3 совета по использованию Git для начинающих
🔍 ТОП-12 джоб-сайтов: где программисту разместить резюме и найти работу
🤖 4 сферы применения ChatGPT, Bing, Bard и Claude 2
📉 Cитуация на рынке труда в IT: зарплаты и куда все катится в 2023 году
🪤Обзор распространенных ловушек, с которыми могут столкнуться 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).
💭 Опрос разработчиков 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 и других языков.
💡В конце вас ждет небольшая подборка материалов для самостоятельного изучения.
Разработчики из Serverspace активно использует Go для работы, например с Terraform-провайдером, поэтому решили разобрать его особенности подробнее:
— историю языка,
— почему он стал таким востребованным среди разработчиков,
— какие черты заимствованы от C и других языков.
💡В конце вас ждет небольшая подборка материалов для самостоятельного изучения.
Хабр
От C до Go. Как Golang объединил лучшие черты своих предшественников
В программировании постоянно разрабатываются новые языки. В каждом из них разработчики стремятся расширять возможности предыдущих технологий. Одним из таких примеров является язык Go, или Golang...
#новости
🎉 Команда Go представила 4-й релиз-кандидат Go 1.21 и исправления безопасности для crypto/tls (CVE-2023-29409) в рамках версий Go 1.20.7/1.19.12.
🎉 Команда Go представила 4-й релиз-кандидат Go 1.21 и исправления безопасности для crypto/tls (CVE-2023-29409) в рамках версий Go 1.20.7/1.19.12.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Рефакторинг кода Go для тестопригодности: возможности интерфейсов
Исследование возможностей юнит-тестов для раннего обнаружения багов и важности проектирования модулей на основе абстракций — интерфейсов Go.
Читать перевод
Исследование возможностей юнит-тестов для раннего обнаружения багов и важности проектирования модулей на основе абстракций — интерфейсов Go.
Читать перевод
NOP::Nuances of programming
Рефакторинг кода Go для тестопригодности: возможности интерфейсов
Раскроем возможности модульных тестов для раннего обнаружения багов. Продемонстрируем на конкретном примере, как сделать приложение на Go более тестопригодным.
📉 Cитуация на рынке труда в IT: зарплаты и куда все катится в 2023 году
Спойлер: все неоднозначно, сложно и, местами, — плачевно. По крайней мере, об этом говорит статистика за первое полугодие 2023 года.
🔗 Основной сайт
🔗 Зеркало
Спойлер: все неоднозначно, сложно и, местами, — плачевно. По крайней мере, об этом говорит статистика за первое полугодие 2023 года.
🔗 Основной сайт
🔗 Зеркало
#холивар
Какая информация в описании вакансии может вас оттолкнуть? И на что вы больше всего обращаете внимание:
📝 Условия работы
📝 Описание вакансии
📝 Бренд работодателя
🤩 — главное, чтобы хорошо платили
💯 — для меня важны все перечисленные пункты
Какая информация в описании вакансии может вас оттолкнуть? И на что вы больше всего обращаете внимание:
📝 Условия работы
📝 Описание вакансии
📝 Бренд работодателя
🤩 — главное, чтобы хорошо платили
💯 — для меня важны все перечисленные пункты
❗«Библиотека программиста» в поиске контент-менеджера для ведения телеграм-каналов
Ищем человека, который грамотно пишет, разбирается в контенте и в одной из этих трех тем:
👉Data Science
👉Frontend
👉мобильная разработка
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Подробнее о вакансии и форма для отклика — по ссылке.
Ждем вас в команде!
Ищем человека, который грамотно пишет, разбирается в контенте и в одной из этих трех тем:
👉Data Science
👉Frontend
👉мобильная разработка
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Подробнее о вакансии и форма для отклика — по ссылке.
Ждем вас в команде!
Написание парсеров yacc с помощью goyacc: советы и рекомендации
У разработчиков Dolt, базы данных SQL с контролем версий, возникла необходимость преобразовать строки SQL-запроса в структурированную форму, которую может выполнить база данных.
Решение очевидное — использовать yacc — разновидность компилятора, превращающего простую грамматику в синтаксический анализатор.
У Go есть собственная версия этого инструмента: goyacc. Под катом — несколько советов и приемов, которые помогут наладить работу yacc с Go, а также проблемы и решения, которые могут возникнуть на практике.
У разработчиков Dolt, базы данных SQL с контролем версий, возникла необходимость преобразовать строки SQL-запроса в структурированную форму, которую может выполнить база данных.
Решение очевидное — использовать yacc — разновидность компилятора, превращающего простую грамматику в синтаксический анализатор.
У Go есть собственная версия этого инструмента: goyacc. Под катом — несколько советов и приемов, которые помогут наладить работу yacc с Go, а также проблемы и решения, которые могут возникнуть на практике.
Dolthub
Writing yacc parsers with golang: tips and tricks
How to write and debug yacc parsers in golang
📌 Полноценный цикл видео о том, как создать PaaS:
🔸 Библиотеки и инструменты для создания сервиса | История создания шаблона проекта и библиотек для разработчика микросервиса на Go | Александр Ермолаев, руководитель группы стандартизации шаблонов, инструментов и мониторинга в СберМаркете.
➕ Инструменты для observability в PaaS | Про дашборды, каким образом обеспечивается добавление новых компонентов в библиотеку go-libs и многое другое.
🔸 Как запустить сервис локально одной командой | Как делали выбор между minikube и docker compose, как настраивали роутинг внутри и снаружи, и многое другое | Дмитрий Лукиянчук, руководитель отдела разработки платформенных решений в СберМаркете.
🔸 Канареечный деплой | Что нужно, чтобы задеплоить сервис в PaaS и как это устроено | Антон Малафеев, руководитель группы инженеров ИТ-инфраструктуры в СберМаркете.
🔸 Трудности перевода: взаимодействие сервисов | Как организовать общение между сервисами и устроить эволюцию, а не революцию.
| Александр Сусиков, руководитель отдела разработки Ruby-платформы в СберМаркете.
🔸 Как тестировать группу сервисов и экономить время | Про проблемы тестирования, какие есть подходы к тестированию в СберМаркете, как развернуть связку сервисов для системного тестирования и как этим управлять | Роман Шпак, руководитель группы повышения производительности в СберМаркете.
🔸 Библиотеки и инструменты для создания сервиса | История создания шаблона проекта и библиотек для разработчика микросервиса на 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
◾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
◾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
GitHub
gonew: templates for new modules · golang/go · Discussion #61669
A common request we hear from users is some kind of 'go new' functionality to start a new module with some kind of basic template. It seems like a tool along these lines should not be limit...
Эксперименты с шаблонами проектов с помощью gonew
Команда Go представила новый экспериментальный инструмент для создания новых проектов Go из предопределенных шаблонов. Любой может написать эти шаблоны, которые затем упаковываются и распространяются в виде модулей, используя Go module proxy и checksum database для повышения безопасности и доступности.
📌 Устанавливаем:
>
📌 Используем:
>
>
Команда 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
go.dev
Experimenting with project templates - The Go Programming Language
Announcing golang.org/x/tools/cmd/gonew, an experimental tool for starting new Go projects from predefined templates