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

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

👉 @golang_lib
Go To Memory

Как и многие языки, Go часто использует магию под названием хип (heap). Обычно, когда мы пишем наши джейсоно-гонятели, мы просто не задумываемся об этом, хоть и знаем, что это «где-то есть». Давайте попробуем заглянуть в кроличью нору поглубже и увидеть не только то, какими методами аллокатор Go старается облегчить программисту жизнь, но и то, из чего он состоит в целом.

Меня зовут Антон Киреев, я бэкенд-разработчик с опытом работы больше 11 лет. В настоящее время работаю техлидом в Авито. В жизни мне нравятся две вещи: приносить пользу своей работой и проводить свободное время с семьёй. Именно поэтому я люблю делать что-то быстро, но качественно, а потом отдыхать. Для этого я постоянно учусь и пытаюсь докапываться до сути вещей. Сегодня поговорим, как наша любимая Гошечка работает с памятью.

https://habr.com/ru/companies/oleg-bunin/articles/676332/

👉 @golang_lib
👍2
Руководство по сборщику мусора Go

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

https://go.dev/doc/gc-guide

👉 @golang_lib
Валидация полезной нагрузки в Go с помощью Validator

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

https://thedevelopercafe.com/articles/payload-validation-in-go-with-validator-626594a58cf6

👉 @golang_lib
👍3
Повышение производительности JSON неструктурированных структур в Go

Это история о том, как мы сократили 70% расходов на облачный парсинг JSON, написав библиотеку для Go с открытым исходным кодом под названием marshmallow. 🍬🚀

https://medium.com/perimeterx/boosting-up-json-performance-of-unstructured-structs-in-go-5c2f2a017148

👉 @golang_lib
👍2
Full-Stack Web Development with Go.pdf
19.6 MB
Full-Stack Web Development with Go: Build your web applications quickly using the Go programming language and Vue.js
Автор: Nanik Tolaram (2023)

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

👉 @golang_lib
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Просмотрщик сборок и исходного кода Go

Установка производится с помощью обычных команд Go:
go install loov.dev/lensm@main

Для Linux может потребоваться добавление некоторых дополнительных зависимостей. Чтобы не собирать версию Wayland или X11, можно использовать go install --tags nowayland loov.dev/lensm@main или go install --tags nox11 loov.dev/lensm@main соответственно.

Для запуска программы задайте фильтр регулярных выражений для проверяемой функции. -watch позволяет автоматически перезагружать исполняемый файл и информацию при его изменении.
lensm -watch -filter Fibonacci lensm

https://github.com/loov/lensm

👉 @golang_lib
🔥3👍1
Ozon Tech QA Meetup: тестируем на Go

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

https://www.youtube.com/watch?v=oXjK672Yrbs

👉 @golang_lib
👍2
Реализация сегментного дерева на языке Golang

В данной статье описывается продвинутая структура данных Segment Tree и приводится ее реализация на популярном современном языке Golang. Мы решим задачу на языке SPOJ, чтобы показать, как можно использовать сегментное дерево в конкурентном программировании.

https://rtoch.com/posts/golang-segment-tree/

👉 @golang_lib
👍1
Улучшенная маршрутизация HTTP-серверов в Go 1.22

В Go 1.22 ожидается появление интересного предложения - расширение возможностей по поиску шаблонов (pattern-matching) в мультиплексоре, используемом по умолчанию для обслуживания HTTP в пакете net/http.

Существующий мультиплексор (http.ServeMux) обеспечивает рудиментарное сопоставление путей, но не более того. Это привело к появлению целой индустрии сторонних библиотек для реализации более мощных возможностей. Я рассматривал эти возможности в серии статей "REST-серверы на Go", в частях 1 и 2.

Новый мультиплексор в версии 1.22 позволит значительно сократить отставание от пакетов сторонних разработчиков, обеспечив расширенное согласование. В этой небольшой заметке я кратко расскажу о новом мультиплексоре (mux). Я также вернусь к примеру из серии "REST-серверы на Go" и сравню, как новый stdlib mux справляется с gorilla/mux.

https://eli.thegreenplace.net/2023/better-http-server-routing-in-go-122/

👉 @golang_lib
👍5
Обзор синтаксиса и возможностей языка Go (шпаргалка)

Большинство примеров кода взято из книги A Tour of Go, которая является отличным введением в Go. Если вы новичок в Go, пройдите этот тур.

https://github.com/a8m/golang-cheat-sheet

👉 @golang_lib
👍1
Lua конфигурация Neovim для разработки на Go

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

Эта статья может быть полезна тебе, если:
пишешь на Go
есть конфиг на Vimscript, но хочется на Lua
хочется пересесть с тяжелых современных IDE или текстовых редакторов, таких как Goland, Vscode и других, на Neovim

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

👉 @golang_lib
👍2
Distributed Services with Go Your Gui..pdf
5.2 MB
Distributed Services with Go: Your Guide to Reliable, Scalable, and Maintainable Systems
Автор: Travis Jeffery (2021)

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

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

👉 @golang_lib
👍2
Minecraft protocol VarInt и VarLong. Как из единиц и нулей сделать число на примере Go?

В этой статье я хочу объяснить на пальцах, как из байтов преобразуются числа в нужные типы данных (VarInt, VarLong). Детально рассмотрим реализацию, примеры и напишем unit-тесты. Вспомним бинарные операции, двоичную и шестнадцатеричную систему счисления.

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

👉 @golang_lib
👍5
Проблемы функции Golang init

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

Предположим, что у вас есть код без функции init, например, такой:

// foo.go
package foo

var A int

func bar(){}

// main.go

import "foo"

func main(){
fmt.Println(foo.A)
}


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

👉 @golang_lib
👍3
Использование WebSockets в NextJS и Golang

https://webapp.io/blog/using-websockets-with-nextjs/

👉 @golang_lib
👍4🥱1
Как завершить работу приложения Golang более чистым способом

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

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

https://medium.com/@leonardo5621_66451/how-to-shutdown-a-golang-application-in-a-cleaner-way-e9307b0ea505

👉 @golang_lib
👍4
Результаты исследования Go-разработчиков
- 3/4 Go-разработчиков работают в продуктовых компаниях.
- Большинство - выходцы из разработки на Python и PHP.
- 70% используют Go для написания микросервисов.
- Дженерики ждали все, а в итоге регулярно их используют только 10% разработчиков.
- Самые привлекательные сферы для работы: DevTools, FinTech и FoodTech.

Эти и другие инсайты про то, куда переехали, где работают, что изучают и чем занимаются на работе Go-разработчики – в исследовании от DevCrowd.

👉 @golang_lib
🔥4👍2
100 Go Mistakes and How to Avoid Them .pdf
9.9 MB
100 Go Mistakes and How to Avoid Them
Автор: Teiva Harsanyi (2022)

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

👉 @golang_lib
👍8