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

Ранее мы уже видели несколько простых структур. Настало время познакомиться с массивами, срезами и картами.

Массивы

Если вы уже знакомы с Python, Ruby, Perl, JavaScript или PHP (и т. д.), при программировании вы скорее всего использовали динамические массивы. Это массивы, которые способны изменять свой размер в зависимости от хранимых в них данных. В Go, и как во многих других языках, массивы фиксированы. При объявлении массива необходимо указать его размер, после чего изменить его нельзя: (далее…)

Маленькая книга о 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" включающий в себя необходимые методы. (далее…)

Обзор всех сервисов для аналитики каналов в Телеграм

Итак, как проанализировать что происходит в Телеграме?Допустим вы хотите понять что происходит в вашем канале или купить рекламу на другом канале. Как оценить качество и интересы аудитории? Как понять живые люди там или боты? Делается это достаточно просто и элементарно, однако большая часть сервисов такой информации не предоставляет даже за деньги. Итак, что имеем на сегодняшний день? (далее…)

Маленькая книга о Go – Глава 1: Основы

Go компилируемый язык со статической типизацией. Он имеет C-подобный синтаксис и сборку мусора. Что это означает?

Компиляция

Компиляция это процесс перевода исходного кода, который написали вы, в язык более низкого уровня – либо ассемблер (как в случае с Go), либо в какой-то другой промежуточный язык (как в случае с Java или C#). (далее…)

Как в Golang сделать горячую перезагрузку данных из конфига

Возможность перезагрузить (reload) конфигурацию без перезапуска (restart) программы стало не излишеством, а производственной необходимостью. Например, такая функция есть в Nginx и Postgresql (не для всех настроек, но для большинства). Основная проблема при решении подобных задач это обеспечить одновременный доступ для чтения и записи к общему объекту содержащему конфигурацию. Существует много способов сделать это. В Go идеально подойдёт подход с использованием мьютекса чтения/записи. (далее…)

Краткий обзор 10 популярных архитектурных шаблонов приложений

Вы когда-нибудь задавались вопросом о том, как именно разрабатываются масштабные системы крупных предприятий? До того, как перейти к непосредственной разработке программного обеспечения, мы определяемся с правильным архитектурным шаблоном, который даст нам желаемое качество и функционал. Следовательно, мы должны разбираться в нюансах различных архитектур еще до того, как применить их к своему дизайну. (далее…)