Библиотека Go-разработчика | Golang
23.2K subscribers
2.11K photos
42 videos
87 files
4.47K 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
🎄 До Нового года остались считанные, поэтому пришло время подвести итоги. За год наше комьюнити значительно выросло. Всего мы опубликовали 1099 постов 💪

❤️ Особенно вам понравились вот эти посты:

😎 Распространенные методы повторных запросов: интерактивный гайд
😎 Организация модуля: рекомендации от команды Go
😎 Теории кэширования по полочкам
😎 Подводные камни конкурентности
😎 Ants — библиотека, которая реализует высокопроизводительный пул горутин с фиксированной емкостью
😎 NilAway — инструмент статического анализа для обнаружения потенциальных nil-паник в коде на Go
😎 System Design 101
😎 cpuid — библиотека, которая предоставляет информацию о ЦП без использования CGO
😎 Concurrency в Go — барьеры памяти и как устроены атомики под капом

💜 Также вы с интересом читали наши статьи:

📕 ТОП-9 книг по языку программирования Go в 2023 году: от новичка до профессионала
🔝 Лучшие практики Go: путь к чистому коду
📊 Эффективная работа с JSON в Go
🏃 Самоучитель по Go для начинающих. Часть 2. Ресурсы для изучения Go с нуля

💬 На канале было много интерактива, но лучшим оказался опрос про признаки, которые характеризуют «слабых» разработчиков.

🎁 И последнее, но не менее важное: мы сделали скидку -35% на все курсы нашей академии proglib.academy.

С наступающим! 🎉
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉92👍1