Part 1
Go の基礎
競プロで使う制御構文や型の知識はそのまま活かせます。 この Part で埋めるのは、その先です。 複数ファイルに分かれたプログラムの組み立て方、エラーの扱い方、そして Web サーバーの土台になる並行処理を学びます。 コード例の多くはページ右のエディタに読み込んで、そのまま実行・書き換えできます。
- 競プロの Go から Web の Go へ 提出して終わりの競プロと、複数ファイルで長く育てる Web 開発とで、Go の書き方の前提がどう変わるかを整理します。
- 関数とパッケージ main に全部書かない理由から、関数分割の基準、パッケージ、命名規約、早期リターンまで、コードを分けて読みやすくする道具を学びます。
- struct とメソッド 添字で対応づけていたデータに struct で名前を付け、メソッドとレシーバの使い分けを学びます。
- slice と map の中身 slice と map の内部構造を知り、関数に渡したときの共有や走査順序の非保証といった罠を、エディタで実際に踏んで確かめます。
- エラー処理 失敗が日常である本番のコードで、Go が例外ではなく値としてエラーを扱う理由と、if err != nil の慣習を学びます。
- インターフェース 「何ができるか」だけを定めるインターフェースと、io.Reader や io.Writer が Go 全体の共通言語になっている理由を学びます。
- goroutine と並行性 Web サーバーの土台である goroutine を動かし、共有変数が壊れる競合状態を実際に起こして sync.Mutex で直します。
- テストを書く 競プロのサンプルケース照合を自動化して恒久化したものとしてテストを捉え、go test とテーブル駆動テストを手元で書きます。