Библиотека Go (Golang) разработчика
2.57K subscribers
252 photos
94 videos
29 files
328 links
Полезные материалы по всему, что может быть полезно Golang разработчику. По всем вопросам @evgenycarter
Download Telegram
Как Uber сэкономил 70 тысяч ядер благодаря полуавтоматической настройке сборки мусора

В рамках мер повышения рентабельности наша команда недавно занялась снижением затрат на вычислительные мощности посредством увеличения их эффективности. Один из самых значимых вкладов был внесён в области оптимизации GOGC. В этом посте мы хотим поделиться высокоэффективным, малоопасным, крупномасштабным полуавтоматизированным механизмом настройки сбора мусора в Go.

👉 @golang_lib
👍1
GO приложение в кластере k8s

Kubernetes сегодня — звезда среди систем оркестровки и контейнеризации приложений. Важно понимать, как с ним работать. Поделюсь примером демонстрационного api приложения, которое написано на golang, и покажу способы взаимодействия с ним.

Но сначала — страшная история о том, как я жил без него. Много лет назад, в начале моей карьеры, когда ещё не появился kubernetes, доставка кода до production была весьма проблемной задачей. Бывало так, что создание нового приложения для меня начиналось не с работы в моей любимой IDE, а с заказа процессора, материнской платы, и всё это собиралось вручную. Затем я вставлял сервер в стойку, настраивал порты на cisco L3 маршрутизаторе. И это была только начальная фаза. После этого приходилось новоиспеченную node подключать к кластеру proxmox, накатывать операционную систему, ставить nginx и проводить ещё множество разных настроек.

👉 @golang_lib
👍1
Hands-On High Performance with Go
Автор: Bob Strecansky (2020)

Go - это простой в написании язык, популярный среди разработчиков благодаря своим фичам, таким как параллелизм, переносимость и способность снижать сложность. Эта книга о Golang научит вас создавать идиоматический код Go, который будет многоразовым и высокопроизводительным.

Во время чтения книги вы:
✔️Научитесь эффективно организовывать данные и управлять ими с помощью кластеров и очередей задач;
✔️Изучите часто применяемые структуры данных и алгоритмы Go;
✔️Напишете анонимные функции в Go;
✔️Научитесь развертывать, мониторить и итерировать программы с упором на производительность;
✔️Погрузитесь в управление памятью и параллелизм CPU и GPU в Go.

Скачать

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

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

👉 @golang_lib
👍3
Media is too big
VIEW IN TELEGRAM
Уроки по Golang - Advanced

REST API. Вебсервер.
REST API. Логирование
REST API. Конфигурация
REST API. MongoDB
REST API. MongoDB. Продолжение
REST API. Middleware. Обработка ошибок
Чистая Архитектура / Clean Architecture Часть 1
Чистая Архитектура / Clean Architecture Часть 2
Чистая Архитектура / Clean Architecture Часть 3
Работаем с PostgreSQL в Golang. Часть 1
Работаем с PostgreSQL в Golang. Часть 2
Работаем с PostgreSQL в Golang. Часть 3
Делаем сортировку для REST API. Используем PostgreSQL и Golang
Дженерики в Golang 1.18
Фильтрация в REST API на Golang и PostgreSQL
ДРУЖБА GOLANG И REACTJS! НАСТРАИВАЕМ CORS

Смотреть на youtube

👉 @golang_lib
👍1
Jon_Bodner_Learning_Go_An_Idiomatic_Approach_to_Real_World_Go_Programming.pdf
3.7 MB
Learning Go: An Idiomatic Approach to Real-World Go Programming
Автор: Jon Bodner (2021)

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

Во время чтения книги вы:
✔️Узнаете, как писать идиоматичный код на Go;
✔️Поймете причины дизайнерских решений создателей языка;
✔️Настроите среду разработки для одиночного разработчика или команды;
✔️Узнаете, как фичи Go позволяют языку работать эффективно;
✔️Узнаете, какие особенности Go вам следует использовать экономно или не использовать вообще.

👉 @golang_lib
👍2
NNHelper – пакет на языке Go для создания и использования нейронной
сети

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

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

Go пакет nnhelper разработан для быстрого создания нейронной сети и использовании ее в приложениях, написанных на языке Go. Для использования nnhelper не потребуется ничего дополнительного, кроме Go. Пакет nnhelper является надстройкой над пакетом gonn. И это единственная внешняя зависимость.

👉 @golang_lib
👍21
Конкурентность в Go: пять примеров

Традиционно считается, что главная фича Go – это «многопоточность из коробки». Этому посвящено немало статей, авторы которых показывают, какие есть примитивы конкурентности в рамках языка. В процессе изучения этих статей я понял, что на начальном этапе изучения языка мне тяжело начать применять конкурентный код не имея каких-то простых наглядных примеров.

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

👉 @golang_lib
👍4
Быстрый обзор интересных фич Go

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

👉 @golang_lib
👍1
Adam_Woodbeck_Network_Programming_with_Go_Learn_to_Code_Secure_and.pdf
3.9 MB
Network Programming with Go
Автор: Adam Woodbeck (2021)

Go сочетает в себе лучшие части многих других языков программирования. Он быстрый, масштабируемый и предназначен для высокопроизводительных сетей и многопроцессорной обработки. Network Programming with Go предназначена для разработчиков, готовых начать использовать Go для написания безопасного, читаемого и готового к работе сетевого кода. По мере продвижения вы будете изучать сетевые протоколы высокого уровня, такие как HTTP и HTTP/2, а затем создавать приложения, которые безопасно взаимодействуют с серверами, клиентами и API-интерфейсами по сети с использованием TLS.
👍3
Compress - этот пакет предоставляет различные алгоритмы сжатия

- zstandard compression and decompression in pure Go.
- S2 is a high performance replacement for Snappy.
- Optimized deflate packages which can be used as a dropin replacement for gzip, zip and zlib.
snappy is a drop-in replacement for github.com/golang/snappy offering better compression and concurrent streams.
- huff0 and FSE implementations for raw entropy encoding.
- gzhttp Provides client and server wrappers for handling gzipped requests efficiently.
- pgzip is a separate package that provides a very fast parallel gzip implementation.
- fuzz package for fuzz testing all compressors/decompressors here.

https://github.com/klauspost/compress

👉 @golang_lib
👍2
Media is too big
VIEW IN TELEGRAM
Дженерики в Golang 1.18

Что такое генерики в Golang?
Что такое дженерики в Golang?
Как использовать generics в Golang?
Как использовать type parameters в Golang?
Как использовать типизированные параметры в Golang?

👉 @golang_lib
👎1
7 проектов на GitHub, которые сделают вас лучшим разработчиком на Go

Awesome Go
Можете назвать это энциклопедией языка программирования Go. Добавьте его в закладки, чтобы возвращаться всякий раз, когда вам что-то понадобится по Go. Это огромный кураторский список потрясающих фреймворков Go, библиотек и программного обеспечения.

Standard Go Project Layout
Этот репозиторий содержит базовую компоновку для проектов приложений Go. Хоть это и не официальный стандарт, определенный основной командой разработчиков Go, он всё же представляет собой набор общих исторических и новых шаблонов компоновки проектов в экосистеме Go.

Go kit
Go kit – это программный инструментарий для создания микросервисов в Go. Go kit решает распространённые проблемы в распределённых системах и архитектуре приложений, чтобы вы могли сосредоточиться на деле.

Go Design patterns
Это репозиторий содержит кураторскую коллекцию идиоматических шаблонов дизайна и приложений для языка Go. Вы можете найти там следующие шаблоны: шаблоны создания, структурные шаблоны, поведенческие шаблоны, шаблоны параллелизма, шаблоны обмена сообщениями.

Learn Go with test-driven development
Go – хороший язык для изучения разработки, основанной на тестировании, поскольку стандартная библиотека Go предоставляет встроенный пакет тестирования. В этом репозитории есть список основных принципов Go с примерами реализаций кода, основанного на тестировании.

The Ultimate Go Study Guide
Учебное пособие Ultimate Go представляет собой сборник заметок для студентов, посещающих занятия Ultimate Go. Он составлен из примеров программ с построчными комментариями, чтобы помочь студентам лучше следовать коду. Вы найдете ссылку на содержимое репозитория в файле readme.md.

1000+ Hand-crafted Go examples, exercises and quizzes
В этом репозитории вы найдете тысячи примеров Go, упражнений и викторин.

👉 @golang_lib
🔥4