あとがき
もし構文編と进阶編の両方を本当に注意深く読み、実際にコードを書いてみたなら、Go の構文はそれほど難しくなく、機能もそれほど多くないことがわかるでしょう。経験豊富な開発者なら数日で習得できるはずです。Go は完全にエンジニアリング向けの言語であり、これは今後のコーディングで徐々に実感できるでしょう。もし学習後に使いどころがわからず、もっと深く学びたいと感じるなら、以下のいくつかの学習ルートとサンプルプロジェクトを参考として提案します。
Web 開発
Web 開発は Go 言語で非常に一般的なユースケースです。以下のオープンソース Web フレームワークを試してみてください。
マイクロサービス開発を行いたい場合は、以下のオープンソースフレームワークをお勧めします。
データベースとのやり取りが必要な場合は、以下のライブラリをお勧めします。
以下のプロジェクトを参考にして学習できます。
- gin vue admin
- go-zero-looklook
- gin-admin、単体 Web プロジェクトの学習にはこちらをお勧めします
- go-platform、マイクロサービスプロジェクトの学習にはこちらをお勧めします
IM 通信
Go を使用して IM 開発を行う場合、以下のオープンソースプロジェクトをお勧めします。
ネットワークプログラミング
Go はネットワークプログラミングでも非常に多く使用されています。以下に参考となるオープンソースプロジェクトを示します。
ゲームサーバー
ゲームサーバーの分野では、越来越多的企業が Go 方向に転換しています。
データベース開発
データベース開発には一定の技術的基盤が必要です。Go 言語ベースのデータベースやエンジンは少なくありません。それらのソースコードを読むだけでもかなりの時間がかかります。
- badger、高速 KV データベース
- dgraph、グラフデータベース
- cayley、グラフデータベース
- etcd、分散キーバリューデータベース
- rosedb、キーバリューデータベース、入門に最適
- nutsdb、キーバリューデータベース
- prometheus、時系列データベース
- tidb、分散リレーショナルデータベース
- cockroach、分散 SQL データベース
- rqlite、SQLite ベースの分散データベース
コマンドラインツール
Go はコマンドライン CLI ツール開発に非常に適しています。以下にいくつかのコマンドライン開発フレームワークやライブラリをお勧めします。
- flag、flag 標準ライブラリ
- cobra、cobra を使用した CLI 開発を強くお勧めします。Docker や K8S など多くの有名プロジェクトが cobra をベースにしています
- go-pretty、コマンドラインで見やすい出力を行うために使用
- cli、軽量なコマンドラインフレームワーク
- kingpin、強力で柔軟なコマンドライン解析ライブラリ
cobra は非常に一般的に使用されており、cobra をベースにしたコマンドライン開発プロジェクトはたくさんあります。以下は参考プロジェクトの一部です。
上記は比較的一般的な分野を挙げただけですが、Go がサーバーサイド分野で広く使用されていることがわかります。クライアントサイドは少ないですが、実際には Go は他の分野でも多くのアプリケーションがあります。例えば webrtc、ブロックチェーン、オブジェクトストレージ、クラウドコンピューティングなどです。興味がある場合は Github で自行で調べてみてください。
最後に、Go 言語の実装詳細をさらに深く理解したい場合、例えば slice や map の底辺データ構造、ゴルーチンスケジューラの実装、GC ガベージコレクションのプロセスなどについては、実装原理 章で詳細をご覧ください。
