この講座で学べること
1. なぜGoを学ぶのか
Goは、Googleが開発したシンプルで習得しやすいプログラミング言語です。シングルバイナリで配布できる高速な実行性能、充実した標準ライブラリ、goroutineによる並行処理を言語仕様レベルで扱いやすい点などが特徴で、Webアプリケーションのバックエンド・CLIツール・Kubernetesなどのシステムソフトウェアまで、幅広い分野で採用されています。
DevOps CampではPython講座もすでに提供していますが、PythonとGoは得意領域が異なるため、それぞれ別の講座として用意しています。
これまでDevOps Campでは、自動化スクリプトやBoto3によるAWS操作、AWS Lambdaでのサーバレス開発など、インフラ・DevOpsの周辺でコードを書く場面を想定して、Pythonをメインのプログラミング言語講座として提供してきました。
一方でGoは、Kubernetesやコンテナランタイムなどのシステムソフトウェア、AWS SDKの実装自体もGoで書かれているように、Webアプリケーションのバックエンド(サーバサイド)で選ばれる場面が増えている言語です。この講座は「バックエンド開発に特化したプログラミング言語」の位置付けで用意しており、Python講座と組み合わせて学ぶことで、自動化・サーバレスから本格的なREST APIのバックエンド開発まで、場面に応じて言語を使い分けられる構成にしています。
1.1 こんな方におすすめ
- インフラエンジニアとしてGoを扱えるようになりたい方
- 単一バイナリで配布できるCLIツールを作れるようになりたい方
- 並行処理を活かした高速なAPIサーバを構築したい方
- KubernetesやCloud Native系ツールのソースコードを読めるようになりたい方
1.2 学べること・身につくこと
| スキル | 内容 |
|---|---|
| Goの基本文法 | 変数・データ型・制御構文・関数・structを使ったプログラミングができる |
| Go応用 | エラーハンドリング・ジェネリクス・モジュール管理などの実践的な記述ができる |
| 並行処理 | goroutineとchannelを使った並行処理プログラムを設計・実装できる |
| データベース操作 | MySQLに database/sql および GORM を使ってCRUD操作ができる |
| REST API開発 | net/httpと Gin を使って、データベース連携のREST APIを構築できる |
| API保護 | GinでCORS対応とJWT認証を組み込み、保護されたエンドポイントを構築できる |
| テスト・品質管理 | golangci-lint による静的解析、testing パッケージによる自動テストができる |
| CLIツールの開発 | flag / cobra を使って、業務で使えるCLIツールをGoで作成できる |
2. 章一覧
3. 学習の流れ
3.1 この講座を学んだら
本講座の後は、以下を実施するのがおすすめです。
| 講座名 | おすすめの理由 |
|---|---|
| コンテナ講座 | 本講座で作成した Go アプリケーションを Docker コンテナとして動かせるようになるため |
| CI/CDパイプライン講座 | 本講座で学んだ静的解析・自動テストを CI/CDパイプラインに組み込めるようになるため |