この教室について
この教室は、競技プログラミングの経験はあるが、Web 開発はほぼ未経験という人のために書かれています。 if 文や for 文、配列や連想配列といった基本は知っている前提で、それ以外はすべてゼロから説明します。
ゴールは ISUCON(お題の Web サービスを制限時間内に高速化するコンテスト)に参加して、自分の手で改善を入れられるようになることです。 そのために、Web の仕組み、Go でのプログラムの書き方、SQL とデータベース、そして性能改善のやり方を順番に学びます。
進め方
- 各章は上から順に読む前提で書かれています。迷ったら Part 0 から始めてください。
- Go の章では、ページの右側にエディタが付いています。コード例を読み込んで、その場で書き換えて実行できるので、環境構築が終わっていなくても試せます。
- コマンドやコードは、読むだけでなく実際に手を動かして確かめることを強くおすすめします。
カリキュラム
- Part 0 準備 この教室のゴールを確認して、手元で Go が動く状態を作ります。 2 章
- Part 1 Go の基礎 競プロで書く Go と、チームで動かし続ける Go の違いを埋めます。 8 章
- Part 2 Web の仕組み ブラウザとサーバーの間で何が起きているかを、コードを書く前に理解します。 3 章
- Part 3 Web サーバーを書く Go の標準ライブラリだけで HTTP サーバーを書き、Part 2 の知識とつなげます。 6 章
- Part 4 データベースと SQL データの保存と検索を担う MySQL を、SQL の書き方から仕組みまで学びます。 8 章
- Part 5 ミニ掲示板を作る ここまでの全部を使って、ログインできる掲示板を一つ作り切ります。 5 章
- Part 6 ISUCON に挑む 計測して、ボトルネックを見つけて、直す。ISUCON の基本動作を身につけます。 7 章
- 付録 本編の補助資料。必要になったときに読んでください。 3 章