Создание микросервисного приложения на Go по принципу CQRS

Эта статья является пошаговым руководством по разработке упрощенного приложения социальной сети, в которой любой может публиковать анонимные сообщения. Исходный код доступен на GitHub

Маленькая книга о Go – Заключение

Недавно я услышал о том, что Go – это скучный язык. Скучный потому, что его легко изучить, легко на нём писать и, что самое главное, легко читать. Возможно, я оказал вам медвежью услугу. Мы потратили три главы на разговоры о типах и о том, как объявить переменную. Если у вас уже был опыт работы […]

Маленькая книга о Go – Глава 2: Структуры

Go не является объектно-ориентированным языком (ОО-языком), таким как C++, Java, Ruby или C#. В нем нет объектов, нет наследования и многих других понятий, свойственных ОО-языкам, полиморфизма или перегрузки. В Go есть структуры, которые могут быть связаны с методами. В Go также есть простая, но эффективная форма композиции. В целом, это […]

Маленькая книга о Go – Глава 4: Организация кода и интерфейсы

Настало время поговорить о том, как организовывать ваш код. Пакеты Для того, чтобы хранить сложные системы и библиотеки организованно, нам нужно научиться пользоваться пакетами. В Go имена пакетов следуют структуре директорий в вашем рабочем пространстве. Если мы создаём систему для покупок, вероятно мы начнем с пакета по имени «shopping» и […]

Маленькая книга о Go – Глава 3: Карты, массивы и срезы

Ранее мы уже видели несколько простых структур. Настало время познакомиться с массивами, срезами и картами. Массивы Если вы уже знакомы с Python, Ruby, Perl, JavaScript или PHP (и т. д.), при программировании вы скорее всего использовали динамические массивы. Это массивы, которые способны изменять свой размер в зависимости от хранимых в них […]

Маленькая книга о Go – Глава 5: Лакомые кусочки

В этой главе мы поговорим о возможностях Go, которые не вписываются в остальные разделы. Обработка ошибок Предпочтительным способом обработки ошибок в Go является возвращение значений вместо исключений. Взглянем на функцию strconv.Atoi, которая принимает строку и пытается конвертировать её в целое число:

Маленькая книга о Go – Глава 6: Конкурентность

Go часто описывают, как дружелюбный к параллельному программированию язык. Причина этому заключается в предоставлении простого синтаксиса для двух мощных механизмов: горутин и каналов. Горутины Горутины похожи на потоки, но они управляются самим Go, а не операционной системой. Код, который запускается как горутина, может работать одновременно с другим кодом. Давайте посмотрим […]

Как в Go lang сделать JSON из структуры

Приведу сразу код: package main import ( «fmt» «encoding/json» ) type Employee struct { Name string `json:»empname»` Number int `json:»empid»` } func main() { emp := &Employee{Name: «Rocky»,Number: 5454} e, err := json.Marshal(emp) if err != nil { fmt.Println(err) return } fmt.Println(string(e)) }

Маленькая книга о Go – Введение

У меня всегда было чувство на грани любви и ненависти, когда дело доходило до изучения новых языков. С одной стороны, языки имеют настолько фундаментальное значение для того, что мы делаем, что даже мелкое различие может оказать ощутимое значение. Этот вау эффект когда какой-то клик может оказать настолько сильное влияние на то, как […]

Шпаргалка по работе с JSON в Golang

Парсинг JSON – одна из наиболее частых задач: в JSON приходят данные в REST API, конфигурационные файлы часто оформляются в виде JSON и пр. Go предоставляют довольно удобные механизмы для этих целей расположенные в пакете «encoding/json» включающий в себя необходимые методы.