Библиотека 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
Егор Гартман, бэкенд-инженер в Авито, тестирует несколько библиотек Deep Copy, а потом делает свою, более быструю и эффективную.

🔹 github.com/mohae/deepcopy,
🔹 github.com/barkimedes/go-deepcopy,
🔹 github.com/jinzhu/copier,
🔹 json marshal > unmarshal,
🔹 msgpack marshal -> unmarshal.

Читать
Кто еще не подписан на наш главный канал — очень рекомендуем!

В «Библиотеке программиста» вас ждут фундаментальные IT-темы, Git, рынок труда, главные новости и, конечно же, мемы😎

Вот вам топ недавних постов:
🔍про коммиты в ветках Git
🔍новость о создании сверхразумного ИИ
🔍подборка инфографик на фундаментальные темы
🔍дайджест нейросетей для разработки

👉Подписаться👈
Обзор архитектурного линтера go-arch-lint для Go-разработчика

📌 Go-arch-lint состоит из 3 частей:

1️⃣ Component — абстракция над package (пакетом). Один компонент включает в себя один или более пакетов.
2️⃣ Dependency — зависимость. Они бывают двух видов: явные и неявные.

Явные зависимости — это import в файле с описанием конкретной зависимости от другого пакета.
Неявные — это передача методов или структур с методами через интерфейсы, каналы и прочие способы

3️⃣ Dependency tree — граф отношений между компонентами (кому и от кого можно зависеть).

📌 Принцип работы линтера:

🔸размечает весь код на компоненты;
🔸находит все зависимости между компонентами;
🔸строит граф зависимостей;
🔸сравнивает актуальный и желаемый граф зависимостей;
🔸если мы получили непустой DIFF — значит, есть проблемы.
📖 ТОП-10 книг, без которых не обойтись ни одному программисту

Мы подготовили для вас подборку из 10 книг, без которых не обойтись ни одному профессионалу в IT. Эти книги станут для вас настольными на долгие годы.

🔗 Основной сайт
🔗 Зеркало
🚀 Быстрое введение в указатели от автора книги 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 и других языков.

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