first-app / overview · 約 6 分
最初のアプリのゴール
空リポから Node HTTP サーバを作り、プレビューと review まで通します。
動画の手順をテキストで読む
小さなアプリを作り、テストと画面で確かめる
- 完成条件を小さくする
操作対象:Codex — 依頼文の設計例
依頼に3つの完成条件を指定する
学習チェックリストを作って。 追加・完了・空入力の拒否に絞って。 まず設計を示し、実装後にテストして。確認:追加・完了・空入力拒否の3つを、テストできる完成条件にする。
ローカル実測の再構成 / AI 応答は未収録
- まず失敗を確認する
操作対象:Terminal — 修正前の実測結果
修正前の空白入力テストを実行する
node --test demo/empty-input.before.mjs確認:fail 1:空白のタスクが追加され、期待した例外が出ない。
実測 / Node.js テスト出力を抜粋
- 入力を整えて検証する
操作対象:demo/tasks.mjs — 修正後の実コード
addTask で空白を除去し、空なら拒否する
export function addTask(tasks, input) { const title = input.trim(); if (!title) { throw new Error( "学習内容を入力してください" ); } return [...tasks, {title, done: false}]; }確認:trim() → 空ならエラー → 有効な入力だけを配列に追加。
実装済み関数 / 表示用に改行を調整
- テストをまとめて実行
操作対象:Terminal — 修正後の実測結果
修正後の4件のテストを実行する
node --test demo/tasks.test.mjs確認:ローカル実測:追加・空白拒否・空白除去・完了の4件が成功。
実測 / Node.js テスト出力を抜粋
- 画面でも動きを確認
操作対象:Browser — 学習チェックリスト
入力 →「追加」→ タスクの完了を押す
確認:一覧への追加と「1 / 1 完了」を確認。実装済みデモの再構成。
ローカルデモの操作再構成
- 差分と結果を確認する
操作対象:Review — 実装した変更の要点
コードの差分と検証結果を照合する
export function addTask(tasks, input) { + const title = input.trim(); + if (!title) throw new Error( + "学習内容を入力してください" + ); - return [...tasks, {title: input, done: false}]; + return [...tasks, {title, done: false}]; }確認:4件成功。データはメモリー内のみで、再読み込み後の保存は未実装。
実コードの差分を表示用に再構成
学習目標
Codex に小さな Node HTTP アプリを作らせ、127.0.0.1 で応答を確認し、codex review します。
[codex-cli]
前提
インストール、認証、AGENTS.md があること。Node.js 18+。
なぜ必要か
設定ファイルを置いただけでは、作る → 試す → 直すのループを経験できません。
実行場所
アプリの生成と codex exec / codex review は local-bridge です。Web実習 (browser) では WebContainer の Node で server.js の起動と npm test ができます。API キーは使いません。
公式 prompting は、欲しい挙動、再現、制約、検証方法を書けと案内します。 [codex-prompting]
成功結果
.git があります。次レッスンで server.js を作ります。
失敗対処
Git 外だと Codex が拒否することがあります。git init してください。
このレッスンで接続する
ページを移動するとブラウザ内実習の接続とファイルは消えます。演習の直前に、このパネルから明示的に再接続してください(自動では戻りません)。