Библиотека Go (Golang) разработчика
2.57K subscribers
262 photos
95 videos
29 files
333 links
Полезные материалы по всему, что может быть полезно Golang разработчику. По всем вопросам @evgenycarter
Download Telegram
Как управлять секретами приложений Go с помощью Vault

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

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

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

https://www.twilio.com/en-us/blog/manage-go-application-secrets-using-vault

👉 @golang_lib
👍2👎1
Apress_Pro_Go_The_Complete_Guide_to_Programming_Reliable_and_Efficient.pdf
17.1 MB
Pro Go: The Complete Guide to Programming Reliable and Efficient Software Using Golang
Автор: Adam Freeman (2022)

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

Во время чтения книги вы:
✔️Получите четкое представление о языке и инструментах Go;
✔️Получите глубокие знания стандартной библиотеки Go;
✔️Используете Go для одновременных/параллельных задач;
✔️Используете Go для клиентской и серверной разработки.

👉 @golang_lib
👍4👎1
Golang: обработка десятков тысяч одновременных HTTP-запросов даже на Raspberry Pi

Привет! Сегодня мы будем развлекаться с одновременными HTTP-запросами и тем, как обрабатывать действительно большое их количество с минимальным потреблением оперативной памяти. Чтобы сделать этот процесс безумным, я выберу RaspberryPi 4B в качестве сервера и Macbook Air в качестве клиента.

https://waclawthedev.medium.com/golang-handling-tens-of-thousands-of-simultaneous-http-requests-even-on-raspberry-pi-5115ca9b152d

👉 @golang_lib
👍4🔥21
This media is not supported in your browser
VIEW IN TELEGRAM
Устранение ошибок, связанных с исчерпанием памяти, в моем веб-приложении Golang

В начале этого года я создал приложение с открытым исходным кодом под названием PicoShare. Это простое веб-приложение на языке Golang для обмена файлами. Я использую его для отправки файлов, которые слишком велики для вложений в электронную почту, но я не хочу, чтобы получатель имел дело с Dropbox или Google Drive.

https://mtlynch.io/notes/picoshare-perf/

👉 @golang_lib
👍1🔥1
Go и SQL: Проблемы с существующими библиотеками (и лучшее решение)

Знакомьтесь, KSQL - библиотека, которую я написал для решения проблем Golang и SQL

За годы работы с Golang я пришел к выводу, что работа с SQL еще не является хорошо решенной проблемой. Имеющиеся библиотеки просто не удобны в использовании, и существует слишком много способов прострелить себе ногу.

Чтобы проиллюстрировать это, я попытаюсь описать в этой статье все эти проблемы в деталях, а затем кратко представить решение, которое я придумал для решения этих проблем: написанную мной библиотеку под названием KSQL.

https://betterprogramming.pub/golang-sql-problems-with-existing-libraries-145a037261b8

👉 @golang_lib
👍3🤔1
Media is too big
VIEW IN TELEGRAM
Создание исполняемых файлов Go

Одно из главных преимуществ Go - компиляция в один исполняемый файл.

В Go 1.16 появился новый пакет embed, который позволяет встраивать assets в сгенерированный исполняемый файл. Давайте посмотрим, как встроить статический каталог и .sql-файл.

👉 @golang_lib
👍4
Простой Regex Matcher Роба Пайка на языке C в Go

В 1998 году Роб Пайк, известный по Go и Plan 9, написал простую программу сопоставления регулярных выражений на языке C для книги "Практика программирования", которую он написал вместе с коллегой, Unix-хакером Брайаном Керниганом. Если вы еще не читали "экзегезу" этого кода, написанную Керниганом, то это определенно стоит того, чтобы потратить 30 минут времени на неспешное изучение этого кода.

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

https://benhoyt.com/writings/rob-pike-regex/

👉 @golang_lib
👍4
The Algorithms - Go — Алгоритмы, реализованные на GoLang

Репозиторий представляет собой коллекцию имплементаций и демонстраций наиболее популярных алгоритмов, реализованных в Go.

https://github.com/TheAlgorithms/Go

👉 @golang_lib
👍7
🍐 Элегантный Golang REST API Framework

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

Чистый код: Goyave имеет выразительный, элегантный синтаксис, надежную структуру и соглашения. Минимализм вызовов и сокращение избыточности - основные принципы Goyave.
Быстрая разработка: Разрабатывайте быстрее и сосредоточьтесь на бизнес-логике вашего приложения благодаря многочисленным помощникам и встроенным функциям.

Мощные функциональные возможности: Goyave - это доступный, но мощный фреймворк. Фреймворк включает маршрутизацию, разбор запросов, валидацию, локализацию, тестирование, аутентификацию и многое другое!

Надежность: Благодаря продвинутой обработке ошибок и восстановлению после падения, вы можете легко найти ошибки. Фреймворк глубоко протестирован.

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

👉 @golang_lib
👍5💩3
Media is too big
VIEW IN TELEGRAM
SQLite в Golang - как использовать, на примере Telegram-бота

00:00 Вступление
00:16 Для кого этот ролик?
00:26 Почему именно SQLite?
01:10 Конкурс - 2000 подписчиков
01:30 Интерфейс Storage
01:58 SQLite-реализация Storage
02:37 Установка соединения с БД
03:36 Какием методы будем реализовывать
03:56 Метод Save()
07:36 Метод PickRandom()
10:18 Метод Remove()
10:47 Экранирование данных в SQL-запросах
13:31 Метод IsExists()
14:37 godoc-комментарии
15:40 Функция Init() - инициализация хранилища
17:04 Используем новый SQLite-Storage
20:36 Фиксим мелкие баги
23:10 Дебажим упавшего бота, stack trace
24:17 Тестируем бота с новым хранилищем
25:31 Конкурс - условия
26:38 Заключение

источник

👉 @golang_lib
👍11
Создаем базовое приложение для соревнований в реальном времени с помощью Go

Большинство из нас любят конкурсы на знание, верно? Существует множество приложений, которые утоляют нашу жажду, заставляя нас отвечать на вопросы, касающиеся различных профессий.

В этой статье я расскажу, как я реализовал приложение для проведения соревнований в реальном времени на Golang.

https://betterprogramming.pub/build-basic-real-time-competition-app-with-go-96c2ca0d35bf

👉 @golang_lib
👍2
Использование graphQL+gRPC+Golang для создания микросервиса аренды велосипедов, с персистенцией на ArangoDB

https://dev.to/myk_okoth_ogodo/using-graphqlgrpcgolang-to-create-a-bike-rental-microservices-with-persistence-on-arangodb-2a6h

👉 @golang_lib
👍5
Миграции баз данных с Golang

Недавно я присоединился к новой команде и был поражен созданной у них инфраструктурой тестирования для успешной работы приложений. Для меня это было большой переменой: я не привык к такой манере «тестирования».

С тестированием уровня данных связаны миграции БД. С базами данных я работаю на протяжении всей своей карьеры инженера-разработчика и все же задался вопросом: «Что это за миграции БД?»

Рассмотрим применение миграций БД в службах, написанных на Golang.

https://blog.stackademic.com/using-database-migrations-with-golang-7f6736f580c8

👉 @golang_lib
Перед вами — книга-метод, книга-наставник, способная перевернуть мышление и помочь выработать осознанный подход к работе и жизни в целом путём высокоуровневого планирования.

В своей второй книге IT-архитектор, методолог, педагог Александр Бындю раскрывает наиболее эффективный на сегодняшний день метод стратегического планирования, получивший название «Карта гипотез». Карта учит, как достигать намеченной цели через гипотезы, и служит навигатором на этом пути. В основу книги легли годы практики, и с уверенностью можно сказать, что Карта гипотез позволяет создать стратегию достижения для самых амбициозных целей.

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

Ознакомиться с книгой
👍7
Обзор итераторов в Go

В Go 1.22 ожидается появление расширений оператора for-range как для функций типа int (range-over-int), так и для функций-итераторов (range-over-func). Кроме того, продолжается работа по достижению консенсуса насчет библиотеки итераторов и корутин.

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

https://medium.com/eureka-engineering/a-look-at-iterators-in-go-f8e86062937c

👉 @golang_lib
👍3
Простые highload паттерны на Go

Хочу поделиться некоторыми рекомендациями, которые часто на моем опыте помогали держать highload нагрузку не прибегая к хардкору. Примеры будут на Go. Эти подходы довольно хорошо известны, но как мне кажется они недооценены и многие этими подходами пренебрегают. Если вы впервые видите их, то рекомендую хотя бы попробовать реализовать в своих проектах и провести бенчмарки, возможно вы будете приятно удивлены. Этих подходов в 90% случаях мне хватало за глаза, когда требовалось быстро и кратно увеличить перфоманс приложения в короткие сроки. Ну и конечно же делитесь своим опытом к каким подходам для оптимизаций вы прибегаете в первую очередь, буду рад взять себе интересное на заметку

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

👉 @golang_lib
👍7