🔩 ねじき教室 Go と Web の教室

🔩 ねじき教室

競プロはできるけど Web はよくわからない。
そんな人が ISUCON で戦えるようになるまでの教室です。

ねじき教室の学習経路競プロの経験を出発点に、Go、Web、サーバー、SQL、アプリ開発、計測、性能、スケールを学び、ISUCONの改善へ進みます。競プロGoコードWebDBSQL計測ISUCON

この教室について

この教室は、競技プログラミングの経験はあるが、Web 開発はほぼ未経験という人のために書かれています。 if 文や for 文、配列や連想配列といった基本は知っている前提で、それ以外はすべてゼロから説明します。

ゴールは ISUCON(お題の Web サービスを制限時間内に高速化するコンテスト)に参加して、自分の手で改善を入れられるようになることです。 そのために、Web の仕組み、Go でのプログラムの書き方、SQL とデータベース、そして性能改善のやり方を順番に学びます。

学習に必要なもの

最初に必要なのは、Web ブラウザだけです。 Part 1 まではページ内のエディタで演習できます。

Part 3 からは、手元のマシンに Go と curl が必要です。 Part 4 からは、MySQL を動かすために Docker Desktop も使います。 Windows では WSL と VS Code を使う手順を Part 0 で説明します。

コード例は Go 1.26MySQL 8.4 で動作を確認しています。 Part 3 のルーティングで使う機能に Go 1.22 以降が必要なため、それより古い Go では一部のコード例が動きません。

すべての演習を行う場合、全体の所要時間は 26〜39 時間が目安です。 読む速さや、発展課題に取り組む時間によって前後します。

進め方

  • 各章は上から順に読む前提で書かれています。迷ったら Part 0 から始めてください。
  • Go の章では、ページの右側にエディタが付いています。コード例を読み込んで、その場で書き換えて実行できるので、環境構築が終わっていなくても試せます。
  • コマンドやコードは、読むだけでなく実際に手を動かして確かめることを強くおすすめします。
  • 前に出てきた用語を忘れたら、用語集から説明している章へ戻れます。

Part ごとの到達点

所要時間は、本文を読み、「試してみよう」の演習を行う場合の目安です。

Part所要時間終了時にできること必要な環境
Part 0 準備30〜60 分学習のゴールを確認し、Go のコードを手元で実行できるブラウザ、Go、VS Code、curl。Windows では WSL
Part 1 Go の基礎4〜6 時間Web 開発で使う Go のコードを読み、エラー処理や並行処理を書けるブラウザだけでも可
Part 2 Web の仕組み1〜2 時間URL を入力してから画面が表示されるまでを説明できるブラウザだけでも可
Part 3 Web サーバーを書く3〜5 時間Go で HTTP リクエストを受け、レスポンスを返せるGo、curl、ターミナル
Part 4 データベースと SQL4〜6 時間SQL を読み書きし、Go から MySQL を操作できるPart 3 の環境、Docker Desktop
Part 5 ミニ掲示板を作る4〜6 時間投稿、登録、ログインを備えた Web アプリを組み立てられるPart 4 と同じ。Git を推奨
Part 6 ISUCON に挑む4〜6 時間計測からボトルネックを見つけ、定番の改善を試せるPart 5 と同じ
Part 7 性能の理論2〜3 時間負荷と処理時間から、先に限界へ達する資源を見積もれる追加の環境は不要
Part 8 スケールの理論3〜4 時間データ配置や台数を増やす方法の代償を比較できる追加の環境は不要

カリキュラム

  1. Part 0 準備 この教室のゴールを確認して、手元で Go が動く状態を作ります。 全 2 章
  2. Part 1 Go の基礎 競プロで書く Go と、チームで動かし続ける Go の違いを埋めます。 全 10 章
  3. Part 2 Web の仕組み ブラウザとサーバーの間で何が起きているかを、コードを書く前に理解します。 全 3 章
  4. Part 3 Web サーバーを書く Go で HTTP サーバーを書き、ページ内の REST クライアントから動きを確かめます。 全 6 章
  5. Part 4 データベースと SQL データの保存と検索を担う MySQL を、SQL の書き方から仕組みまで学びます。 全 8 章
  6. Part 5 ミニ掲示板を作る ここまでの全部を使って、ログインできる掲示板を一つ作り切ります。 全 7 章
  7. Part 6 ISUCON に挑む 計測して、ボトルネックを見つけて、直す。ISUCON の基本動作を身につけます。 全 7 章
  8. Part 7 性能の理論 1 台を使い切るための理論。どこが先に限界に来るかを、測る前に見当をつけられるようにします。 全 5 章
  9. Part 8 スケールの理論 増やす前に代償を知る。データの置き場所とツールの選び方、台数を増やしたときに何が起きるかを扱います。 全 6 章
  10. 付録 本編の補助資料。必要になったときに読んでください。 全 3 章