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
36%
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
🔝 Топовый Вечный! По смехотворной цене! 🔝
8 ГБ RAM / 4x4.5 ГГц CPU / 80 ГБ NVMe / 500 Мбит/сек / anti-DDoS
Размещение в лучшем московском дата-центре Datapro, подключение к каналу 500 Мбит/сек, выделенный IPv4 адрес, защита от DDoS.
🔥Спешите узнать подробней и заказать
https://proglib.io/w/2b9d6955
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
С помощью небольшого мануала вы научитесь использовать пакет flag для создания различных утилит командной строки. Кроме того, в нем показана практика применения пакета flag для управления выводом программы, а также рассказано, как реализовывать подкоманды и вводить позиционные аргументы, в которых можно смешивать флаги и другие данные.
https://proglib.io/w/f5a50a26
💫 Инструментирование в Go
Рассказываем о методах инструментирования Go-кода, контекстной трассировке и специальном средстве лаконичного и гибкого инструментирования gtrace.
https://proglib.io/sh/l15apnJB4W
Рассказываем о методах инструментирования Go-кода, контекстной трассировке и специальном средстве лаконичного и гибкого инструментирования gtrace.
https://proglib.io/sh/l15apnJB4W
Инструментирование программ на Go чистым и гибким способом: https://proglib.io/w/bbaa1873
Что выведет программа?
Anonymous Quiz
6%
2 и 2
11%
9 и 100
45%
9 и 16
14%
Ошибка компиляции
14%
Нет правильного ответа
10%
Посмотреть результаты
В примере затронута тема анонимных функций, которые отличаются от обычных тем, что они могут определяться внутри других функций и иметь доступ к контексту выполнения, а также этим функциям не назначается имя.
Анонимные функции позволяют нам определить некоторое действие непосредственно там, где оно применяется. Например, нам надо выполнить сложение двух чисел, но больше нигде это действие в программе не нужно.
Анонимные функции могут использоваться как аргумент функции или как результат функции, а также они имеют доступ к окружению, в котором вызываются. Такая ситуация и рассматривается в примере.
Функция
Таким образом, мы можем зафисировать у внешней функции
Анонимные функции позволяют нам определить некоторое действие непосредственно там, где оно применяется. Например, нам надо выполнить сложение двух чисел, но больше нигде это действие в программе не нужно.
Анонимные функции могут использоваться как аргумент функции или как результат функции, а также они имеют доступ к окружению, в котором вызываются. Такая ситуация и рассматривается в примере.
Функция
square
определяет локальную переменную x
и возвращает анонимную функцию. Анонимная функция увеливичает значение переменной x
и возвращает ее квадрат.Таким образом, мы можем зафисировать у внешней функции
square
состояние в виде переменной x
, которое будет изменяться в анонимной функции. В результате получаем 9 и 16.