Библиотека Go-разработчика | Golang – Telegram
Библиотека Go-разработчика | Golang
23.5K subscribers
2.33K photos
47 videos
87 files
4.75K links
Все самое полезное для Go-разработчика в одном канале.

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

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

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

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
Certmagic — библиотека, позволяющая реализовать автоматический HTTPS для любой программы на Go: полностью управляемая выдача и обновление TLS-сертификатов.

https://proglib.io/w/fa361ed5
Ozon научит Go бесплатно! Важная новость для всех, кто связывает своё будущее с написанием кода: самый быстрорастущий российский e-commerce запускает бесплатную школу Go. Это возможность за два месяца стать middle-специалистом с опытом решения реальных задач и проектом в портфолио — а лучшие выпускники получат предложение о работе в Ozon. Что нужно, чтобы поступить? Опыт в написании кода, сделанное тестовое задание и, конечно, заявка. Подробности тут: http://ozon.dev/goschool
Build_Modern_and_Concurrent_Applications_for_Unix_and_Linux_Systems.pdf
1.4 MB
Hands-On System Programming with Go: Build Modern and Concurrent Applications for Unix and Linux Systems Using Golang (2019)

Автор(ы): Alex Guerrieri

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

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

По мере продвижения вы будете фокусироваться на лучшей функции Go ― параллелизме, помогающем вам управлять связью с каналами и goroutines, для синхронизации общих ресурсов.
У нас есть структура: type person struct { name string age int }

Определяем её и выводим имя человека: var P person P.name = "Astaxie" P.age = 25 fmt.Printf("Имя человека - %s\n", P.name) Есть еще 3 способа определить структуру, какие?
Anonymous Poll
79%
tom := person{"Tom", 25}
88%
tom := person{age: 25, name: "Tom"}
11%
tom := person{name Tom, age 25}
75%
tom := struct{name string; age int}{"Tom", 25}
3%
Не знаю
Golang позволяет определить структуру следующим образом (кроме указанного в задании):
– Присвоить начальные значения по порядку:
tom := person{"Tom", 25}

– Использовать формат поле:значение, чтобы задать начальные значения полей структуры, при этом можно не соблюдать порядок, в котором поля шли при описании структуры:
tom := person{age: 25, name: "Tom"}

– Определить анонимную структуру, а затем задать ей значения:
tom := struct{name string; age int}{"Tom", 25}
Туториал по использованию стандарта AES для шифрования и дешифрования информации в программах на Go: https://proglib.io/w/b073e0b4
Разбираемся с использованием преимуществ структур и интерфейсов в Go для макетирования любого сервиса или библиотеки: https://proglib.io/w/0c9d8358
​​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; представляет основные задачи архитектуры, такие как эффективное управление сложностью, масштабируемостью и надежностью программных систем; показывает практику развертывания архитектуры и планирования миграции приложений с других языков и многое другое.