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

№1. Установка Go, выбор IDE, первая программа
№2. Переменные, константы. Типы. Области видимости. Преобразование типов
№3. Функции (основы)
№4. Функции (advanced)
№5. Условный оператор (if/else). Логические операторы
№6. Циклы (for, for как while). Инкремент. Декремент
№7. Циклы (2). Continue. Break
№8. Switch .. case
№9. Указатели (pointers)
№10. Указатели (2). Usecases
№11. Кастомные типы. Структуры(1)
№12. Методы
№13. Интерфейсы
№14. Структуры (2) Встраивание типов (Embedding)
№15. Массивы (arrays). Слайсы (slices)(1)
№16. Слайсы (slices)(2)
№17. Слайсы (slices)(3)
№18. Мапы (maps)
№19. Concurrency (1). Goroutines. Defer. Panic/Recover
№20. Concurrency (2). WaitGroup. Data Race. Muxtex/RWMutex
№21. Concurrency (3). Nil, Unbuffered, Buffered channels. Deadlock.
№22. Concurrency (4). Select. Graceful shutdown.
№23. Concurrency (5). Context
№24. Concurrency (6). ErrGroup. Канал как Mutex. Промисы на каналах
№25. Concurrency (7). Atomic
№26. Дженерики(Generics)
№27. Пакеты (Packages)
№28. Модули (Modules)

Все видео доступны на youtube

👉 @golang_lib
👍5
Ребята из DevCrowd проводят исследование Go-разработчиков:

- Какие навыки для go-разработчиков самые важные
- Какие инструменты используются в работе
- Как попадают в профессию и куда из нее уходят
- Полезные для развития каналы, курсы и книги

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

👉 Пройти опрос
👍1
Подборка web-фреймворков для Golang

Beego
Если нужен быстрый запуск API-интерфейсов REST, веб- и серверных приложений в Go, то лучшего варианта не найти. Golang-разработчики зачастую сравнивают Beego с Django в Python. Достоинство Beego — отсутствие необходимости установки сторонних производителей. Это, фактически, полноценный фреймворк Model-View-Controller, причём у него есть собственные библиотеки и встроенный инструмент Bee, который даёт возможность находить изменения кода.

https://github.com/beego/beego


Kit
Инструмент для работы с микросервисами в любом масштабе. Микросервисы часто требуют специализированной поддержки, которую Kit без проблем предоставляет.

https://github.com/go-kit/kit


Echo
Облегчённый, гибкий и расширяемый веб-фреймворк. Позволяет создавать надёжные и масштабируемые RESTful API, имеет встроенное промежуточное ПО и даёт возможность определять своё собственное.

https://github.com/labstack/echo


Fiber
Простой но мощный фреймворк, который был создан на базе Fasthttp — самого быстрого HTTP-движка для Go. Fiber разработали для ускорения работы с нулевым распределением памяти и возможностями производительности. Плюс ко всему, этот фреймворк ещё и компактен, он без проблем позволяет интегрировать сторонние библиотеки с Martini. Fiber обеспечивает необходимую масштабируемость при сокращении накладных расходов.

https://github.com/gofiber/fiber


Fasthttp
Fasthttp обеспечивает быстрый HTTP-сервер и клиент API. Он может обрабатывать более 100 000 запросов в секунду и свыше 1 млн одновременно открытых соединений. Фреймворк рассчитан на относительно низкое потребление памяти и обеспечивает простую поддержку обновления соединения через RequestCtx.Hijack.

https://github.com/valyala/fasthttp


Gorilla
Gorilla практически безупречно работает со всеми повторно используемыми элементами и компонентами HTTP-библиотеки. Её главные достоинства в том, что она предлагает модульность и масштабируемость в качестве основных функций. И проблемы «засорения» устаревшим функционалом в случае Gorilla нет — всё отлично спроектировано.

https://github.com/gorilla/


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

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

источник

👉 @golang_lib
👍4
how-to-code-in-go.pdf
2.8 MB
How To Code in Go
Автор: Mark Bates (2021)

Эта книга призвана познакомить вас с написанием программ на языке программирования Go. Вы узнаете, как писать полезные инструменты и приложения, которые можно запускать на удаленных серверах или локальных системах Windows, macOS и Linux для разработки.

👉 @golang_lib
👍4
DDD в Go: натягивание совы на глобус?

Как-то раз я сидел в баре с давним приятелем, с которым раньше мне довелось поработать на поза-поза-позапрошлой работе. Он из сомневающихся по поводу перехода на Go, ярый приверженец своего нынешнего языка. Хочу сказать, что он делает действительно классные вещи, пишет безупречный код, у него есть, чему поучиться. Но к Go у него отношение не слишком позитивное. Как он сказал: “Go — это *****код (плохой код)”. И в качестве одного из аргументов привел то, насколько, по его мнению, криво в Go реализована обработка ошибок. В чем-то он прав — в моем текущем не самом большом проекте на Go конструкция “if err != nil” встречается 1132 раза.

https://habr.com/ru/companies/constanta/articles/675408/

👉 @golang_lib
👍31👎1💯1
Bhagvan_Kommadi_Learn_Data_Structures_and_Algorithms_with_Golang.pdf
5.6 MB
Learn Data Structures and Algorithms with Golang: Level up your Go programming skills to develop faster and more efficient code
Автор: Bhagvan Kommadi (2019)

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

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

👉 @golang_lib
👍3