Skip to content

Послесловие

Если вы действительно внимательно прочитали как раздел синтаксиса, так и раздел продвинутых тем, и написали код на практике, то вы обнаружите, что синтаксис Go на самом деле не сложен, и в нём не так много особенностей. Опытные разработчики могут освоить его за несколько дней. Это полностью инженерно-ориентированный язык, и вы постепенно ощутите это в процессе кодирования. Если после изучения вы чувствуете, что вам негде применить свои знания и хотите углубиться, я могу предложить несколько направлений обучения и примеров проектов для справки.

Веб-разработка

Веб-разработка — это распространённый сценарий использования языка Go. Вы можете попробовать следующие открытые веб-фреймворки:

  • Gin
  • Echo
  • Iris
  • Hertz
  • net/http, или можно использовать встроенную стандартную библиотеку HTTP без фреймворков

Если вы хотите разрабатывать микросервисы, я рекомендую следующие открытые фреймворки:

Затем вам понадобится взаимодействие с базами данных, я рекомендую следующие библиотеки:

Вы можете учиться на следующих проектах:

  • gin vue admin
  • go-zero-looklook
  • gin-admin — рекомендую этот проект для изучения монолитных веб-приложений
  • go-platform — рекомендую этот проект для изучения микросервисов

IM-коммуникации

Для разработки IM (Instant Messaging) с использованием Go рекомендую следующие открытые проекты:

Сетевое программирование

Go широко используется в сетевом программировании. Вот несколько открытых проектов для справки:

Игровые серверы

В области игровых серверов всё больше компаний переходят на Go:

Разработка баз данных

Разработка баз данных требует определённых технических знаний. Баз данных и движков на Go немало, и только чтение их исходного кода займёт много времени:

  • badger — высокоскоростная KV-база данных
  • dgraph — графовая база данных
  • cayley — графовая база данных
  • etcd — распределённая ключевая база данных
  • rosedb — KV-база данных, лучший выбор для начинающих
  • nutsdb — KV-база данных
  • prometheus — база данных временных рядов
  • tidb — распределённая SQL-база данных
  • cockroach — распределённая SQL-база данных
  • rqlite — распределённая база данных на основе SQLite

Инструменты командной строки

Go отлично подходит для разработки CLI-инструментов командной строки. Вот несколько фреймворков и библиотек для разработки:

  • flag — стандартная библиотека flag
  • cobra — настоятельно рекомендуется использовать cobra для разработки CLI. Многие известные проекты основаны на cobra, например Docker, K8S и другие
  • go-pretty — для красивого вывода в командной строке
  • cli — лёгкий фреймворк командной строки
  • kingpin — мощная и гибкая библиотека разбора аргументов командной строки

Поскольку cobra очень распространён, проектов, разработанных с его помощью, очень много. Вот лишь некоторые примеры:

Выше перечислены только распространённые области. Как видите, Go широко применяется в серверной разработке, а в клиентской — меньше. На самом деле, Go также имеет много применений в других областях, таких как webrtc, блокчейн, объектное хранилище, облачные вычисления и т.д. Если интересно, вы можете самостоятельно ознакомиться на Github.

Наконец, если вы хотите глубже понять детали реализации языка Go, такие как структуры данных slice и map на низком уровне, реализацию планировщика горутин, процесс сборки мусора GC и т.д., перейдите в раздел Принципы реализации, чтобы узнать больше.

Golang by www.golangdev.cn edit