Библиотека Go (Golang) разработчика
2.63K subscribers
290 photos
96 videos
29 files
354 links
Полезные материалы по всему, что может быть полезно Golang разработчику. По всем вопросам @evgenycarter
Download Telegram
Конкурентность в 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
Подробное объяснение указателей в Golang

В компьютере есть два важных компонента: CPU и память. CPU в основном отвечает за вычисления, а память отвечает за хранение. В коде, который мы пишем, определенные переменные будут помещены в память во время выполнения. Разные переменные имеют разную длину, а также разные блоки и размеры, занимаемые в памяти. Далее

original https://blog.devgenius.io/a-detailed-explanation-of-pointers-in-golang-87e659d29095

👉 @golang_lib
👍1
Matthew_A_Titmus_Cloud_Native_Go_O'Reilly_Media,_Inc_2021.pdf
5.1 MB
Cloud Native Go (2021)
Автор: Matthew A. Titmus

Что общего у Docker, Kubernetes и Prometheus? Все эти облачные технологии написаны на языке программирования Go. В этой практической книге показано, как использовать сильные стороны Go для разработки масштабируемых и отказоустойчивых облачных сервисов, даже в непредсказуемой среде. Вы изучите состав и конструкцию этих приложений, от низкоуровневых функций Go до шаблонов проектирования среднего уровня и до архитектурных соображений высокого уровня.

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

👉 @golang_lib
👍1
Алгоритмы сортировки: сортировка слиянием в Golang

Сортировка слиянием — очень популярный алгоритм сортировки. Он основан на подходе «разделяй и властвуй», т.е. в этом алгоритме вы делите массив на две равные половины, пока каждая половина не будет содержать только один элемент. После разделения массива вы начинаете рекурсивно объединять их, пока не получите отсортированный массив. Далее

👉 @golang_lib
👍2
Media is too big
VIEW IN TELEGRAM
Изучаем Golang.

Урок 1. Основы + веб-сервер в 3 строки в конце урока!
Урок 2. Основы. Продолжение. Циклы, ветвления
Урок 3. Основы. Продолжение. Указатели, структуры, массивы и слайсы
Урок 5. Основы. Функции и методы
Урок 4. Основы. Итератор for range и структура map
Урок 6. Основы. Интерфейсы
Урок 7. Основы. Работа с ошибками
Урок 8. Тестирование. Часть 1
Урок 9. Многопоточность. Горутины и каналы
Урок 10. Многопоточность. Примитивы синхронизации
Урок 11. Паники! Panics!
Урок 12. Тестирование. Часть 2. GoConvey
Урок 13. Работа с файлами и выполнение shell команд
Урок 14. Работа с Контекстом
Урок 15. Работа с JSON

https://www.youtube.com/playlist?list=PLP19RjSHH4aE9pB77yT1PbXzftGsXFiGl

👉 @golang_lib
👍3
Загрузчик видео с YouTube на Golang

Этот пакет представляет собой пакет для загрузки видео с Youtube, для получения более подробной информации см. https://github.com/ytdl-org/youtube-dl.

Этот инструмент предназначен для загрузки контента под лицензией CC0, мы не поддерживаем и не рекомендуем использовать его для незаконных действий.

https://github.com/juiicesb/youtube


👉 @golang_lib
👍1
6 месяцев работы в Go. Отчет.

Я работаю в Sourcegraph уже около 6 месяцев. За это время я в основном писал на Go, в контексте разработки серверной части. На GopherCon я также выступил с докладом о чтении спецификации Go.

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

https://typesanitizer.com/blog/go-experience-report.html

👉 @golang_lib
👍1
Анализ данных в Go - как использовать пакет Gota

https://www.freecodecamp.org/news/exploratory-data-analysis-in-go-with-gota/

👉 @golang_lib
👍1
Media is too big
VIEW IN TELEGRAM
Как Go выполняет встраивание (inlining) функций / Никита Галушко (ВКонтакте)

Это обзорный доклад о том, как происходит встраивание (inlining) функций в Go. Из него вы узнаете:
* зачем, вообще, встраивание нужно, какие преимущества и недостатки несет в себе;
* как Go встраивает функции, и как эта стратегия менялась со временем;
* какие есть ограничения и как некоторые из них можно обойти.

Если лень смотреть, можно почитать тут

👉 @golang_lib
👍2
Всех поздравляем с Днем программиста!!!
👍12🎉2
Как построить масштабируемый API на Go с помощью Gin


Помимо TypeScript, я еще работаю с Go, языком программирования от Google, вышедшем в 2012 году. Это очень эффективный язык, который становится все популярнее.

Я считаю, что его стоит осваивать, поэтому в текущей статье приведу краткое руководство по созданию простого, но одновременно и масштабируемого API на этом языке с помощью Gin и GORM. Из соображений простоты Docker здесь использоваться не будет.

👉 @golang_lib
👍3
For_Dummies_Wei_Meng_Lee_Go_Programming_Language_For_Dummies_John.pdf
12.3 MB
Go Programming Language For Dummies
Автор: Wei-Meng Lee (2021)

Сейчас идеальное время для изучения языка программирования Go. Это один из самых востребованных языков, и разработчики любят его простоту и мощь. Go Programming Language For Dummies - простой способ добавить этот язык в свой инструментарий. Написанная как для начинающих, так и для опытных программистов, эта книга охватывает базовый синтаксис, написание функций, организацию данных, создание пакетов и взаимодействие с API.

Во время чтения книги вы:
✔️Узнаете, как работает Go, и начнете писать программы и модули;
✔️Установите и внедрите самые мощные сторонние пакеты Go;
✔️Используете Go вместе с веб-сервисами и базами данных MySQL;
✔️Организуете свою кодовую базу и используете Go для структурирования данных.

👉 @golang_lib
👍2