🛞

1.未完成のタイピング練習サイトを題材に選んだ理由|Phase1|タイピング練習サイトPHP化編(基礎固め)

に公開
2026/01/26

本記事の位置づけ

本記事は、本シリーズにおける Phase 1 の入口である。

ここでは「完成したプロダクトを作る」ことは目的としない。設計や実装を考えるための 題材として、どのような性質を持つものを選ぶかその判断基準を明確にする。

以降のフェーズでは、この題材を使って API 設計やデータフロー整理を行うが、本記事はそれらの 前提条件を定義する章である。

このシリーズの最初の題材として、私は「未完成のタイピング練習サイト」を選んだ。新しく何かを作るのではなく、すでに GitHub で公開している、HTML/CSS/JavaScriptだけで完結したサイトをベースにしている。

理由はシンプルで、学習効率を最優先したかったからだ。ゼロから新規に作ると、どうしても「画面を作る」「動くところまで持っていく」ことに意識が引っ張られる。一方で、既に動いているものがあれば「なぜこうなっているのか」、「ここに何を足せばいいのか」という思考に集中できる。今回は0 → 1よりも、1 → 1.5を狙った。

あえて扱わないこと

本フェーズでは、以下の要素は意図的に扱わない。

  • 本番運用を前提とした認証・認可の完成形
  • セキュリティ事故を想定した運用設計
  • 大規模ユーザーを想定したスケーラビリティ

これらは重要であるが、設計の初期段階で同時に扱うと「なぜそう設計したのか」という思考過程が見えなくなる。そのため本シリーズでは、一度 自前で設計を考えるフェーズ を通過したうえで、後続フェーズにて判断を見直す構成を採用する。

このタイピングサイトは、PHP化の作業中も フロントエンドだけで完結している状態を維持している。つまり、PHP化は「置き換え」ではなく「拡張」だ。実務で言えば、ベータ版と正式版、あるいはフリーウェアとシェアウェアの分かれ目に近い。既存の体験は壊さずに、裏側の構造だけを段階的に変えていく。

既存のHTML/JS資産は、そのまま使う。無理に書き直さない。それは手抜きではなく、「現実の開発に近づける」ための割り切りだ。実務では、きれいな状態から始まることの方が少ない。多少いびつでも、動いているものを前提に考える力が必要になる。

もちろん、未完成なものを題材にする以上、割り切りも必要だ。機能は最小限に留めるし、見た目の完成度も追わない。その代わり「なぜこの構成なのか」、「ここで詰まりそうだ」を言語化できる状態を目指す。

この章の結論はひとつだけだ。完成度よりも、考えどころが残っている題材の方が学習には向いている。次の章では、このフロントエンド完結のサイトに、なぜサーバーサイドを足す必要があるのかを整理していく。

次の記事からは Phase 1 を継続し、このタイピング練習サイトを題材に、

  • フロントエンドだけでは何が足りないのか
  • なぜサーバーサイドを分離するのか
  • API という境界をどう設計したのか

を順に整理していく。

なお、認証やセキュリティに関する最終判断は、設計を一通り整理した後の Phase 1.5 にて改めて扱う。

◀前へ | 次へ▶

Discussion