Послесловие
Если вы действительно внимательно прочитали как раздел синтаксиса, так и раздел продвинутых тем, и написали код на практике, то вы обнаружите, что синтаксис 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 и т.д., перейдите в раздел Принципы реализации, чтобы узнать больше.
