Библиотека Go (Golang) разработчика
2.57K subscribers
252 photos
93 videos
29 files
327 links
Полезные материалы по всему, что может быть полезно Golang разработчику. По всем вопросам @evgenycarter
Download Telegram
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
Everyday-Go.pdf
2.6 MB
Everyday Golang - The Fast Track
Автор: Alex Ellis (2021)

Перед вами мини-книга от автора множества руководств по модульному тестированию в Go и других учебных материалов (книги Serverless For Everyone Else и курса Kubernetes on Raspberry Pi).
Everyday Golang — это ускоренный курс для изучения концепций и методов, которые вы можете применять в своей повседневной работе и проектах.
Материал книги представляет собой сборник практических примеров, уроков и техник для Go-разработчиков.

👉 @golang_lib
👍2
Media is too big
VIEW IN TELEGRAM
Как на самом деле устроен тип Map в Golang? | Golang под капотом

00:00 Вступление
00:24 Что такое Map?
00:55 Простая реализация - перебор
01:56 Как сделать лучше - разбиваем на бакеты
03:21 Хэш-функция - равномерное распределение по бакетам
05:08 Как реализовать Map без дженериков?
08:20 v = m[k]: во что на самом деле это скомпилируется?
09:25 Все преобразования операций с Map
10:27 Внутренняя структура Map
11:33 Low order bits (LOB) - выбор бакета
13:39 Структура бакета
15:31 Исходный код заголовка Map (hmap)
16:05 Исходный код поиска значения в Map (mapaccess1)
23:30 Переполнение бакета
24:47 Рост Map при заполнении
27:05 Эвакуация данных
28:02 Как избежать эвакуацию данных и ускорить программу - аллокация памяти
28:39 Почему нельзя взять указатель на элемент Map
29:26 Или можно..?
30:12 Порядох обхода мапы - почему он случайный?
31:47 Вывод функции fmt.Println() - почему он фиксированный?
33:14 Подводим итоги
33:45 Заключение

источник

👉 @golang_lib
👍3
Go, Allure и HTTP, или Как мило тестировать HTTP-сервисы на Go

Все мы привыкли к лёгкому написанию тестов на Python и Java — это основные языки автотестировщиков с богатым инструментарием утилит и всего, что упрощает жизнь. Что нужно для написания автотестов для HTTP-сервиса на Python или Java? Гугл, бутылочка крафта и два часа времени.

А как быть в случае с Go? Как раз на нём мы в большинстве случаев пишем микросервисы. И если тесты написаны на другом языке, разработчики не могут внести в них свой вклад или отревьюить их. Поэтому внутри Ozon активно развивается Go-сообщество QA, и этим ребятам тоже нужно тестировать HTTP-сервисы и проверять отчёты в Allure. Как настоящие сварщики мы подумали: «Если чего-то не хватает, нужно написать своё». Сказано — сделано: встречайте опенсорс-библиотеку CUTE в BDD-стиле, которая облегчает тяготы создания автотестов и упрощает переход на Go. Главные фичи: создание HTTP-тестов, возможность реализовывать проверки из коробки, Allure-отчёты и низкий порог входа.

https://habr.com/ru/companies/ozontech/articles/672678/

👉 @golang_lib
4
Построение конвейера CI для библиотеки Go с помощью Dagger

Я играю с Dagger уже несколько месяцев, используя его в различных проектах. В этом посте я поделюсь своим опытом использования Dagger для создания CI-конвейеров для библиотек Go.

https://sagikazarmark.hu/blog/dagger-go-library/

👉 @golang_lib
👍2
Generic Data Structures and Algorithm....pdf
11.2 MB
Generic Data Structures and Algorithms in Go: An Applied Approach Using Concurrency, Genericity and Heuristics
Автор: Richard Wiener (2022)

Расширьте свое понимание общих структур данных и алгоритмов и их применения с помощью Go и эффективного использования параллелизма. Эта книга подведет вас к следующему шагу, показав, как заставить ваши программы работать не только эффективно, но и корректно. Изучая многие структуры данных и связанные с ними алгоритмы и приложения, вы сосредоточитесь на компромиссах между скоростью и хранением данных, а также на преимуществах использования параллелизма, когда это необходимо.

👉 @golang_lib
👍2