Библиотека Go (Golang) разработчика
2.57K subscribers
252 photos
93 videos
29 files
327 links
Полезные материалы по всему, что может быть полезно Golang разработчику. По всем вопросам @evgenycarter
Download Telegram
Экспортируем модули из Go-сервиса: сотворение директории pkg

Чтобы поделиться кодом, нужно создать библиотеку и разместить её в самостоятельном репозитории. Но иногда возникает необходимость хранить библиотеку вместе с сервисом, который её использует. Среди Go-разработчиков существует мнение, что экспортируемые библиотеки стоит хранить в директории pkg.

История этой директории берёт начало со времён ранних релизов Go, когда модули стандартной библиотеки находились в $GOROOT/src/pkg. Впоследствии директория pkg была удалена, но многие проекты, такие как Kubernetes, повторили у себя данную файловую структуру. С тех пор pkg закрепилась в файловой структуре Go-проектов.

https://habr.com/ru/company/ozontech/blog/668254/

👉 @golang_lib
👍3
Использование graphQL+gRPC+Golang для создания микросервиса аренды велосипедов, с персистенцией на ArangoDB

https://dev.to/myk_okoth_ogodo/using-graphqlgrpcgolang-to-create-a-bike-rental-microservices-with-persistence-on-arangodb-2a6h

👉 @golang_lib
👍2
Media is too big
VIEW IN TELEGRAM
Самое полное интервью Golang Middle

0:00-01:34 Разница между C# и Go, что понравилось и не понравилось?
01:34-03:40 Какая задача на го последние полгода понравилась/порадовала?
03:40-05:06 Модели, структуры в Go и в C# сравнения
05:06-06:28 Рассуждения про дженерики
06:28-08:07 Интерфейсы в го, реализация
08:07-09:59 Кейс с интерфейсами
09:59-11:04 Что такое пустой интерфейс?
11:04-12:17 Типы. Что такое слайсы?
12:17-13:41 Кейс со слайсами, капасити
13:41-15:28 Когда мы передали слайс, что можем с ним дальше делать?
15:28-17:08 Насколько слайс безопасен?
17:08-18:37 Маппа, Хэш-таблица (отличия)
18:37-19:36 Какая в среднем сложность поиска по слайсы и по Маппе?
19:36-21:40 Насколько Маппа безопасна?
21:40-23:20 Объявления переменных, в чем разница?
23:20-25:30 Объявление слайсов
25:30-27:21 Мьютексы, какие используешь? Кейсы.
27:21-28:29 Каналы. Как он работает в го?
28:29-29:15 Насколько каналы безопасны?
29:15-31:00 Кейсы с закрытием канала
31:00-37:10 Select.default.Кейсы.
37:10-39:43 Буферизированные и не буферизированные каналы это
39:43-01:05:40 Анализ кода, задачи
01:05:49-01:10:58 Что такое горутины? Кейсы.
01:10:58-01:12:22 Scheduler, как работает планировщик?
01:12:22-01:16:40 Garbage collector C# и в Go
01:16:40-01:32:36 Кастомные ошибки. Задачи
01:32:36-01:36:09 Контекст, дочерние контексты
01:36:09-01:43:53 Тестирования. Как тестируешь? Какие тесты знаешь?
01:43:53-01:45:14 Профилировщики
01:45:14-01:50:15 Процессы в Linux. Как закончить процессы?
01:50:15-01:56:59 Какие бывают протоколы? Их применение.
01:56:59-02:00:50 Виды баз данных и в чём их различия?
02:00:50-02:04:20 Индексы. Что такое индекс? Как чистить? Кейсы
02:04:20-02:10:15 Что такое Транзакции, что означает сериализуемость?
02:10:15-02:14:15 Race conditions. Data Race
02:14:15-02:17:36 Message broker
02:17:36-02:50:15 System Design
02:50:15-02:56:13 Вопросы из чата.
02:56:13-03:03:20 Фидбэк собеседования с Сергеем
03:03:20-03:08:31 Менторская программа

источник

👉 @golang_lib
👍3
Паттерны в Golang

Паттерн Builder в Golang
Директор в паттерне Builder в Golang
Паттерн Стратегия в Golang

источник

👉 @golang_lib
👍2
Паттерны гонки данных в Go

Uber использует язык Golang (сокращенно Go) в качестве основного языка программирования для разработки микросервисов. Наш монорежим Go состоит примерно из 50 миллионов строк кода (и продолжает расти) и содержит около 2 100 уникальных сервисов Go (и продолжает расти).

https://www.uber.com/blog/data-race-patterns-in-go/

👉 @golang_lib
👍3
Go ebiten: разбираемся с рендерингом и позиционированием текста

Перед вами первая заметка на тему разработки игр на Go с использованием библиотеки ebiten (также известный как Ebitengine).

Сегодня мы будем разбираться, как выполняется позиционирование текста. Как центрировать его, менять межстрочный интервал и так далее. Официальная документация и примеры содержат почти всё необходимое, но чтобы свести всё воедино и понять все концепции можно потратить несколько вечеров. Я постараюсь сэкономить ваше время.

https://habr.com/ru/articles/671556/

👉 @golang_lib
👍4
Go и SQL: Проблемы с существующими библиотеками (и лучшее решение)

Знакомьтесь, KSQL - библиотека, которую я написал для решения проблем Golang и SQL

За годы работы с Golang я пришел к выводу, что работа с SQL еще не является хорошо решенной проблемой. Имеющиеся библиотеки просто не удобны в использовании, и существует слишком много способов прострелить себе ногу.

Чтобы проиллюстрировать это, я попытаюсь описать в этой статье все эти проблемы в деталях, а затем кратко представить решение, которое я придумал для решения этих проблем: написанную мной библиотеку под названием KSQL.

https://betterprogramming.pub/golang-sql-problems-with-existing-libraries-145a037261b8

👉 @golang_lib
👍2
Network_Programming_with_Go_Learn_to_Code_Secure_and_Reliable_Network.pdf
3.9 MB
Modern DevOps Practices: Implement and secure DevOps in the public cloud with cutting-edge tools, tips, tricks, and techniques
Автор: Gaurav Agarwal (2021)

Сетевое программирование с помощью Go научит вас, как писать чистое и безопасное сетевое программное обеспечение с помощью GO

Книга предназначена для разработчиков, готовых начать использовать Go для написания безопасного, читаемого кода для работы с сетевым стеком.

В первых главах закладывается фундамент в области создания сетей и маршрутизации трафика, на котором строится остальная часть книги. Вы примените эти знания на практике, поскольку автор Адам Вудбек проведет вас через главные темы, которые описывают взаимодействие с использованием TCP, UDP, сокетов Unix и других функций, обеспечивающих надежную передачу данных.

👉 @golang_lib
👍21
Go programming language The Ultimate.pdf
494.4 KB
Go programming language: The Ultimate Beginner's Guide to Learn Go Programming Step by Step
Автор: John Bach (2021)

За последние несколько лет вы часто слышали о новом языке программирования, который появился в Google под названием Go, в этой книге мы попытаемся определить этот язык, его преимущества, недостатки и то, что отличает его от других

👉 @golang_lib
👍31👎1
Для тех, кто программирует на Go!

Golang-разработчиков с опытом от трех лет приглашают на Go Weekend Offer в Тинькофф. Все этапы интервью можно будет пройти за выходные. А еще вы познакомитесь с командой и спросите обо всем, что вас интересует.

В Тинькофф нет бюрократии, много интересных проектов и прозрачная система карьерного роста. А работать можно в гибридном режиме в офисах в 22 городах России или в Казахстане, Беларуси и Армении.

И главное: Go Weekend Offer состоится 3 и 4 июня. Но подать заявку надо до 31 мая. Регистрируйтесь
👍2
Media is too big
VIEW IN TELEGRAM
HTTPLoot

Автоматизированный инструмент, который может одновременно ползать, заполнять формы, вызывать страницы ошибок/отладки и "выуживать" секреты из клиентского кода сайтов.

https://github.com/redhuntlabs/httploot

👉 @golang_lib
👍2
Alex Edwards - Let's Go Further (2021).pdf
7.7 MB
Advanced patterns for building APIs and web applications in Go
Edwards Alex (2021)

Let's Go Further поможет вам расширить и углубить свои знания о Go - выйдя за рамки основ и пройдя через продвинутые паттерны для разработки, управления и развертывания API и веб-приложений.
Он опирается на многие концепции, которые были представлены в Let's Go, и рассказывает о создании RESTful JSON API от начала до конца - от начальной настройки проекта до развертывания в производстве.
Это дает нам возможность рассмотреть важные темы в контексте полного, работающего приложения - включая миграцию SQL, CORS-запросы, авторизацию на основе разрешений, управление фоновыми задачами, отчетность по метрикам, автоматизацию этапов сборки и развертывания и многое другое.
Если вам понравился курс Let's Go, этот курс должен вам понравиться и стать идеальным следующим шагом в освоении Go.

👉 @golang_lib
👍4