Ozon научит Go бесплатно! Важная новость для всех, кто связывает своё будущее с написанием кода: самый быстрорастущий российский e-commerce запускает бесплатную школу Go. Это возможность за два месяца стать middle-специалистом с опытом решения реальных задач и проектом в портфолио — а лучшие выпускники получат предложение о работе в Ozon. Что нужно, чтобы поступить? Опыт в написании кода, сделанное тестовое задание и, конечно, заявка. Подробности тут: http://ozon.dev/goschool
Развернутая статья о разработке CLI приложения на Go с помощью пакета flag и UNIX-style опций
(gnuflag, go-flags и cli.go): https://proglib.io/w/a9f2cbf0
(gnuflag, go-flags и cli.go): https://proglib.io/w/a9f2cbf0
RTFM: Linux, DevOps и системное администрирование | DevOps-инжиниринг и системное администрирование. Случаи из практики.
Golang: Go in Practice — заметки на полях, часть 2 — CLI приложение на Go
Предыдущая часть - Golang: Go in Practice – заметки на полях, часть 1 – введение. Стандартная библиотека Go включает в себя пакеты для создания приложения с поддержкой опций командной строки. В отличии от стандартных, принятых в Linux/BSD, стилей - в пакете…
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, для синхронизации общих ресурсов.
Автор(ы): 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 способа определить структуру, какие?
Определяем её и выводим имя человека: 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
TutorialEdge.net
Go Encryption and Decryption using AES - Tutorial
In this tutorial, wwe are going to look at how you can do both encryption and decryption using AES in Go
Хоть и старая, но не теряющая свою актуальность подборка видеоматериалов о разработке полноценного веб-приложения на Go:
– Часть 1 (net/http)
– Часть 2 (martini + markdown)
– Часть 3 (MongoDB - mgo)
– Часть 4 (Сессия + Авторизация)
– Часть 5 (Рефакторинг)
– Часть 6 (Заключительная)
– Часть 1 (net/http)
– Часть 2 (martini + markdown)
– Часть 3 (MongoDB - mgo)
– Часть 4 (Сессия + Авторизация)
– Часть 5 (Рефакторинг)
– Часть 6 (Заключительная)
YouTube
Пишем веб-приложение на Go. Часть 1 (net/http)
https://github.com/gavruk/go-blog-example/tree/part1
Golang
Golang
Разбираемся с использованием преимуществ структур и интерфейсов в Go для макетирования любого сервиса или библиотеки: https://proglib.io/w/0c9d8358
Medium
How to mock? Go Way.
Learn how to take advantage of structs and interfaces to mock any service or library, without using any 3rd party tools.
Mvn-golang ― плагин, который осуществляет вызовы к утилитам и командам GoSDK с автоматическим формированием нужных переменных окружения и позволяет использовать Maven для построения Go-проекта.
Статья с описанием
Ссылка на репозиторий
Статья с описанием
Ссылка на репозиторий
В программировании на Go nil является нулевым значением. Как помните, переменная integer, объявленная без значения, по умолчанию будет равна 0. Пустая строка будет нулевым значением переменной string и так далее. Указатель, который ни на что не указывает, принимает значение nil. Идентификатор nil также обладает нулевым значением для срезов, карт и интерфейсов.
Если мы объявляем переменную типа интерфейса без присваивания, нулевым значением является nil. В нашем примере тип интерфейса и значение являются nil, тогда и переменная i считается равной nil.
Если мы объявляем переменную типа интерфейса без присваивания, нулевым значением является nil. В нашем примере тип интерфейса и значение являются nil, тогда и переменная i считается равной nil.
Перевод статьи, в которой описан процесс разработки системы удалённого мониторинга пациентов (технический стек: Go/Vue), заражённых Covid-19.
https://proglib.io/w/da87faf2
https://proglib.io/w/da87faf2
Хабр
Go, Vue и 3 дня на разработку: система реального времени для мониторинга пациентов
В ноябре 2019 года люди услышали о первых случаях неизвестной смертельно опасной болезни в Китае. Теперь все знают о том, что эта болезнь называется COVID-19. Видимо, эпидемия навсегда изменила тот...
Что выведет программа?
Anonymous Quiz
44%
5
37%
18
11%
Ошибка компиляции
2%
Нет правильного ответа
7%
Посмотреть результаты
В нашей викторине затронута тема вариативных функций в Go, которые в качестве единого аргумента принимает ноль, одно или несколько значений. Хотя вариативные функции используются не так часто, в отдельных случаях они могут сделать ваш код чище и читабельнее.
Срез i передается в вариативную функцию hello() в строке №13. Изменения, внесенные во фрагмент внутри функции, видны вызывающей стороне (5 заменилось на 18, т.к. это нулевое значение среза). Следовательно строка №14 напечатает 18.
Срез i передается в вариативную функцию hello() в строке №13. Изменения, внесенные во фрагмент внутри функции, видны вызывающей стороне (5 заменилось на 18, т.к. это нулевое значение среза). Следовательно строка №14 напечатает 18.
Автор статьи делится шаблонами для написания веб-сервисов на Go: https://proglib.io/w/05683c0e
www.dudley.codes
How I Structure Web Servers in Go
Switching to Go from a decade of C# momentum has been an interesting journey. At times I revel in Go’s simplicity; at other times frustration swells when familiar OOP patterns don’t harmonize in a Go codebase. Fortunately, I’ve stumbled upon some patterns…
Сборка приложений Go для разных операционных систем и архитектур
Используя переменные среды и теги сборки, вы можете контролировать, для какой ОС и архитектуры создается окончательный двоичный файл. С помощью мануала вы научитесь собирать тестовое приложение, которое объединяет строки в путь к файлу, создает и выборочно включает зависимые от платформы фрагменты и собирает двоичные файлы для нескольких ОС и архитектур в своей системе.
https://proglib.io/w/774fa86e
Используя переменные среды и теги сборки, вы можете контролировать, для какой ОС и архитектуры создается окончательный двоичный файл. С помощью мануала вы научитесь собирать тестовое приложение, которое объединяет строки в путь к файлу, создает и выборочно включает зависимые от платформы фрагменты и собирает двоичные файлы для нескольких ОС и архитектур в своей системе.
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; представляет основные задачи архитектуры, такие как эффективное управление сложностью, масштабируемостью и надежностью программных систем; показывает практику развертывания архитектуры и планирования миграции приложений с других языков и многое другое.
Автор(ы): Jyotiswarup Raiturkar
Книга предоставляет набор знаний, которые позволят понимать на практике принципы архитектуры программного обеспечения с охватом SOA (сервис-ориентированная архитектура), распределенных систем, систем обмена сообщениями и моделирования баз данных.
Автор книги знакомит читателей с различными архитектурными шаблонами для создания распределенных приложений; показывает процесс переноса приложений, написанных на Java или Python, на язык Go; описывает различные аспекты уровня кода (модульность, дизайн классов и конструкции), специфичные для Golang; представляет основные задачи архитектуры, такие как эффективное управление сложностью, масштабируемостью и надежностью программных систем; показывает практику развертывания архитектуры и планирования миграции приложений с других языков и многое другое.
Автор статьи советует использовать стандартные типы по умолчанию в Go, если у вас нет веских причин не делать этого: https://proglib.io/w/c02fdf66