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

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

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

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

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
🔍Насколько легко «войти в айти»?

Мы продолжаем собирать ваши истории о смене профессии и трудоустройстве в IT, чтобы написать большую аналитическую статью.

👉Если вы еще не рассказывали о своем опыте, пройдите короткий опрос по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱15👏21🔥1
in-memory cache.pdf
277.8 KB
Реализация кэша в памяти на Go: подход Alex Edwards на основе дженериков

👉 Читать заметку
🥱15👏3
👩‍💻 У видеокурса по Go от FreeCodeCamp есть текстовая версия, в которой вас ждет 16 разделов для новичков и не только: от переменных, функций и структур до каналов, мьютексов и дженериков.

👀Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12🥱81
Use Environment Variable in your next Golang Project.pdf
1.4 MB
Обзор нескольких юзкейсов переменных окружения в проекте на Go: os, godotenv и viper.

👉 Читайте на Medium или в PDF
👍5
💡Как тривиально проверить значения интерфейса на nil?

В Go новички часто сталкиваются с проблемой интерфейсных переменных, которым присваивается nil указатель. В таком случае, хотя значение в интерфейсе является nil, сама переменная интерфейса не равна nil.

Пример: создаем переменную x как указатель на int, который по умолчанию nil, и переменную y как пустой интерфейс, который тоже nil по умолчанию. После присваивания x переменной y, интерфейс y уже не является nil, хотя x все еще nil.


var x *int
var y any
y = x


📌 Что вернет y == nil?

Вернет false. Это потому, что интерфейс не просто представляет значение, которое ему присвоено, а действует как контейнер для этого значения.

Для проверки, является ли значение в интерфейсе nil, нужно использовать утверждение типа. Например, для проверки y на nil, используем:


y.(*int) == nil


Это показывает, что интерфейс y не nil, но содержащееся в нем значение — nil. Полный пример здесь.

#tip
Please open Telegram to view this post
VIEW IN TELEGRAM
👍50💯3
🧰 Go-Architect — новый инструмент анализа архитектуры для Go-проектов. Главная цель — облегчить принятие решений, связанных с рефакторингом вашего кода и исправлением проблем. Подробнее читайте в статье-анонсе👇

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
Preslav Rachev в свойственной себе манере критикует чрезмерное использование интерфейсов в Go, особенно в случаях, когда они преждевременно и излишне усложняют код.

Мол, это связано с классическим подходом к разработке, где приложения разделяются на слои (HTTP-обработчики, бизнес-логика, слой сохранения данных).

🤔 А как правильно?

Использовать маленькие, универсальные интерфейсы, как в стандартной библиотеке Go (`io.Reader`, io.Writer и т. д.), которые решают общие задачи и обеспечивают гибкость без излишней сложности. Другие интересные мысли и советы — под катом👇

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
💬 Чему бы вы хотели научиться? Поделитесь мыслями в комментариях👇

#холивар
👍6
Forwarded from Библиотека программиста | программирование, кодинг, разработка
CI/CD Workflow: упрощенный гайд от ByteByteGo (Alex Xu)

CI/CD — это методология, которая позволяет автоматизировать процесс разработки и доставки ПО в продакшн.

Будь вы разработчиком, специалистом по DevOps, тестировщиком или занимаетесь любой современной ролью в ИТ, CI/CD пайплайны стали неотъемлемой частью процесса разработки.

#инфографика
👍12🥱10🥰2🤔1
👩‍💻 Выход Go 1.22 запланирован на февраль 2024 года, но вы уже можете попробовать многие его фичи, не выходя из браузера.

🤩 Вас ждут много интерактивных примеров, основанных на примечаниях к выпуску новой версии.

👉 Ворваться
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉16🔥6👍31
This media is not supported in the widget
VIEW IN TELEGRAM
🔥10🥱421
🤩 На самом деле доклады только начали появляться. Поэтому это будет пополняемый пост с докладами на GolangConf 2023 в рамках Highload++ 2023.

🌐 Выжимаем из Go максимум производительности / Никита Галушко (VK)

В качестве аргумента на вопрос о применении упомянутого в докладе подхода на практике, Никита привел свой небольшой PR.

🌐 Менеджер транзакций в Go / Илья Сергунин (Авито)

Илья рассказал, как обычно устроен менеджер транзакций и почему его нельзя скопировать «в лоб» в Go из других языков.

#чтопроисходит
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🙏4
💬 Что бы вы хотели получить в подарок на Новый год? Поделитесь мыслями в комментариях👇

#интерактив
🤔3
🤩 Go Wiki — теперь на общем портале go.dev

🗺 Это тот самый путеводитель в мир Go, который включает следующие разделы:

🔎 Questions about Go
🔎 Contributing
🔎 Getting started with Go
🔎 Working with Go
🔎 Learning more about Go
🔎 The Go Community
🔎 Using the Go Toolchain
🔎 Additional Go Programming Wikis
🔎 Online Services that work with Go
🔎 Troubleshooting Go Programs in Production
🔎 Contributing to the Go Project
🔎 Platform Specific Information
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥3
Forwarded from Библиотека программиста | программирование, кодинг, разработка
✍️ Почему отсутствие технической документации убьёт ваш проект?

Читатель «Библиотеки программиста» объясняет, почему техническая документация важна, а её наличие — обязательная составляющая успеха проекта. Не верите? 5 (почти) реальных историй, представленных в статье, вас убедят!

🔗 Читать статью
🔗 Зеркало
👍9😁3