Библиотека Go-разработчика | Golang
23.3K subscribers
2.08K photos
42 videos
87 files
4.45K links
Все самое полезное для Go-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/32d20779

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
​​Mvn-golang ― плагин, который осуществляет вызовы к утилитам и командам GoSDK с автоматическим формированием нужных переменных окружения и позволяет использовать Maven для построения Go-проекта.

Статья с описанием
Ссылка на репозиторий
Что выведет программа?
Anonymous Quiz
55%
nil
28%
not nil
16%
Ошибка компиляции
В программировании на Go nil является нулевым значением. Как помните, переменная integer, объявленная без значения, по умолчанию будет равна 0. Пустая строка будет нулевым значением переменной string и так далее. Указатель, который ни на что не указывает, принимает значение nil. Идентификатор nil также обладает нулевым значением для срезов, карт и интерфейсов.

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

Срез i передается в вариативную функцию hello() в строке №13. Изменения, внесенные во фрагмент внутри функции, видны вызывающей стороне (5 заменилось на 18, т.к. это нулевое значение среза). Следовательно строка №14 напечатает 18.
Сборка приложений Go для разных операционных систем и архитектур

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

https://proglib.io/w/774fa86e
Jyotiswarup_Raiturkar_Hands_On_Software_Architecture_with_Golang.pdf
17.5 MB
Hands-On Software Architecture with Golang: Design and architect highly scalable and robust applications using Go (2019)

Автор(ы): Jyotiswarup Raiturkar

Книга предоставляет набор знаний, которые позволят понимать на практике принципы архитектуры программного обеспечения с охватом SOA (сервис-ориентированная архитектура), распределенных систем, систем обмена сообщениями и моделирования баз данных.

Автор книги знакомит читателей с различными архитектурными шаблонами для создания распределенных приложений; показывает процесс переноса приложений, написанных на Java или Python, на язык Go; описывает различные аспекты уровня кода (модульность, дизайн классов и конструкции), специфичные для Golang; представляет основные задачи архитектуры, такие как эффективное управление сложностью, масштабируемостью и надежностью программных систем; показывает практику развертывания архитектуры и планирования миграции приложений с других языков и многое другое.
Автор статьи советует использовать стандартные типы по умолчанию в Go, если у вас нет веских причин не делать этого: https://proglib.io/w/c02fdf66
🔝 Топовый Вечный! По смехотворной цене! 🔝

8 ГБ RAM / 4x4.5 ГГц CPU / 80 ГБ NVMe / 500 Мбит/сек / anti-DDoS

Размещение в лучшем московском дата-центре Datapro, подключение к каналу 500 Мбит/сек, выделенный IPv4 адрес, защита от DDoS.

🔥Спешите узнать подробней и заказать
https://proglib.io/w/2b9d6955
Пакет flag в Go

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

https://proglib.io/w/f5a50a26
​​💫 Инструментирование в Go

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

https://proglib.io/sh/l15apnJB4W
Инструментирование программ на Go чистым и гибким способом: https://proglib.io/w/bbaa1873
В примере затронута тема анонимных функций, которые отличаются от обычных тем, что они могут определяться внутри других функций и иметь доступ к контексту выполнения, а также этим функциям не назначается имя.

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

Анонимные функции могут использоваться как аргумент функции или как результат функции, а также они имеют доступ к окружению, в котором вызываются. Такая ситуация и рассматривается в примере.

Функция square определяет локальную переменную x и возвращает анонимную функцию. Анонимная функция увеливичает значение переменной x и возвращает ее квадрат.
Таким образом, мы можем зафисировать у внешней функции square состояние в виде переменной x, которое будет изменяться в анонимной функции. В результате получаем 9 и 16.