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

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

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

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

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
Размер типа структуры без полей ненулевого размера равен нулю. Размер типа массива, длина которого равна нулю или размер элемента которого равен нулю, также равен нулю. Это можно доказать с помощью примера выше.

В Go размеры часто обозначаются как значения int. Это означает, что максимально возможная длина массива равна MaxInt, значение которой равно 2^63-1 в 64-битных ОС. Однако длина массивов с ненулевыми размерами элементов жестко ограничена стандартным компилятором Go и рантаймом.

📌 Например👇

var x [1<<63-1]struct{} // okay
var y [2000000000+1]byte // compilation error
var z = make([]byte, 1<<49) // panic: runtime error: makeslice: len out of range


#tip #go #beginner
👍13
Пересмотр встраивания для Go 1.22

Встраивание (inlining) — концепция замены вызова функции в программе содержимым самой функции, что позволяет устранить дополнительные накладные расходы. Встраивание в Go улучшилось с годами, но политика в отношении того, когда и что встраивать, немного устарела.

💡Идея представленного документа состоит в том, чтобы реализовать различные настройки, которые, по словам автора, могут привести к «значительному повышению производительности приложений Go».
👍7🔥21
Пошаговый гайд по созданию CLI-инструмента на Go с использованием Cobra

Вы напишете простой CLI-инструмент, который шифрует/дешифрует сообщения с использованием шифров Цезаря и Бэкона. Не обошлось и без мини-рекламы: для отправки SMS в CLI-инструменте используется Twilio SMS API.

Читать
👍14
Proposal: spec: add range over int, range over func

На прошлой неделе было опубликовано крупное предложение по изменению языка Go и есть большая вероятность, что это изменение войдет в будущий выпуск Go. Eli Bendersky рассказывает о мотивах предложения, о том, как оно будет работать, и приводит несколько примеров того, как будет выглядеть код Go, использующий его👇

Читать

#news
🔥7👍4🌚31🤔1
💭 В комментариях новички часто спрашивают про ресурсы/книги для начинающего Go-разработчика. Давайте саккумулируем в комментариях свой опыт и поделимся источниками, с которых эффективнее всего начать изучение👇

Или нет ничего лучше go.dev и Go tour?

#холивар
🔥6👍2
🚀 Знакомство с кэшем ЦП: свежий гайд по Go от команды Ardan Labs

Понимание того, как сделать ваш код дружественным к кэшу, может привести к значительному повышению производительности, но убедитесь, что вы понимаете связанные с этим риски и компромиссы.

Читать
👍16🔥4🤔1
🎙 Ловите подборку подкастов на русском и английском

Есть что добавить? Ждем в комментариях👇

🎙 Радио-Т: разговоры на темы хайтек, высоких компьютерных технологий, гаджетов, облаков, программирования и прочего интересного из мира ИТ. Часто обсуждают и Go и его инструменты.
🎙 Go Get Podcast от Николая Тузова и интересных гостей: про Go и всё, что с ним связано.
🎙 Подлодка: аудио-шоу про IT и всё, что с ним связано. Выпуск про Go.
🎙 Go`ne Gamedev: подкаст о разработке игр на Go. Пока все остановилось на одном выпуске.

🎙 Go Time: ваш источник разнообразных дискуссий в сообществе Go. Один из лучших подкастов по Go.
🎙 go podcast(): 15-минутные выпуски новостей, советов и рекомендаций по Go.
🎙 Backend Banter: интервью с инженерами, в которых делается упор на Go, Python и SQL
🎙 Cup o' Go: будьте в курсе событий сообщества Go всего за 15 минут в неделю.
🎙 Ardan Labs Podcast: увлекательные интервью с топовыми инженерами.
🎙 Friday Afternoon Deploy: A Developer Podcast: бескомпромиссное шоу о культуре и хаосе разработки программного обеспечения от создателей и разработчиков цифровых продуктов в Lofty Labs.

#podcast
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍5
Егор Гартман, бэкенд-инженер в Авито, тестирует несколько библиотек Deep Copy, а потом делает свою, более быструю и эффективную.

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

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

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

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

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

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

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

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

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

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

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

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

🔗 Основной сайт
🔗 Зеркало
👍176🥱6🔥3
🚀 Быстрое введение в указатели от автора книги Let's Go Алекса Эдвардса: на заметку Go-разработчику.

Читать
👍31😁1