Егор Гартман, бэкенд-инженер в Авито, тестирует несколько библиотек Deep Copy, а потом делает свою, более быструю и эффективную.
🔹 github.com/mohae/deepcopy,
🔹 github.com/barkimedes/go-deepcopy,
🔹 github.com/jinzhu/copier,
🔹 json marshal > unmarshal,
🔹 msgpack marshal -> unmarshal.
Читать
🔹 github.com/mohae/deepcopy,
🔹 github.com/barkimedes/go-deepcopy,
🔹 github.com/jinzhu/copier,
🔹 json marshal > unmarshal,
🔹 msgpack marshal -> unmarshal.
Читать
Кто еще не подписан на наш главный канал — очень рекомендуем!
В «Библиотеке программиста» вас ждут фундаментальные IT-темы, Git, рынок труда, главные новости и, конечно же, мемы😎
Вот вам топ недавних постов:
🔍про коммиты в ветках Git
🔍новость о создании сверхразумного ИИ
🔍подборка инфографик на фундаментальные темы
🔍дайджест нейросетей для разработки
👉Подписаться👈
В «Библиотеке программиста» вас ждут фундаментальные IT-темы, Git, рынок труда, главные новости и, конечно же, мемы😎
Вот вам топ недавних постов:
🔍про коммиты в ветках Git
🔍новость о создании сверхразумного ИИ
🔍подборка инфографик на фундаментальные темы
🔍дайджест нейросетей для разработки
👉Подписаться👈
Обзор архитектурного линтера go-arch-lint для Go-разработчика
📌 Go-arch-lint состоит из 3 частей:
1️⃣ Component — абстракция над package (пакетом). Один компонент включает в себя один или более пакетов.
2️⃣ Dependency — зависимость. Они бывают двух видов: явные и неявные.
Явные зависимости — это import в файле с описанием конкретной зависимости от другого пакета.
Неявные — это передача методов или структур с методами через интерфейсы, каналы и прочие способы
3️⃣ Dependency tree — граф отношений между компонентами (кому и от кого можно зависеть).
📌 Принцип работы линтера:
🔸размечает весь код на компоненты;
🔸находит все зависимости между компонентами;
🔸строит граф зависимостей;
🔸сравнивает актуальный и желаемый граф зависимостей;
🔸если мы получили непустой DIFF — значит, есть проблемы.
📌 Go-arch-lint состоит из 3 частей:
1️⃣ Component — абстракция над package (пакетом). Один компонент включает в себя один или более пакетов.
2️⃣ Dependency — зависимость. Они бывают двух видов: явные и неявные.
Явные зависимости — это import в файле с описанием конкретной зависимости от другого пакета.
Неявные — это передача методов или структур с методами через интерфейсы, каналы и прочие способы
3️⃣ Dependency tree — граф отношений между компонентами (кому и от кого можно зависеть).
📌 Принцип работы линтера:
🔸размечает весь код на компоненты;
🔸находит все зависимости между компонентами;
🔸строит граф зависимостей;
🔸сравнивает актуальный и желаемый граф зависимостей;
🔸если мы получили непустой DIFF — значит, есть проблемы.
📖 ТОП-10 книг, без которых не обойтись ни одному программисту
Мы подготовили для вас подборку из 10 книг, без которых не обойтись ни одному профессионалу в IT. Эти книги станут для вас настольными на долгие годы.
🔗 Основной сайт
🔗 Зеркало
Мы подготовили для вас подборку из 10 книг, без которых не обойтись ни одному профессионалу в IT. Эти книги станут для вас настольными на долгие годы.
🔗 Основной сайт
🔗 Зеркало
🚀 Быстрое введение в указатели от автора книги 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...