分類の関数は色ではなく段階を返す:計算と表示の役目を分ける
天気や紫外線の値を段階に分ける関数が色まで返していて、配色を変えると計算のコードまで直す作りになっていた。分類の関数は1〜5の段階だけを返し、段階を何色で塗るかは表示の側の対応表が決める形に分け直した。
ALL POSTS

TypeScriptやAIツールのこと、開発で詰まって調べたことを書いています。
天気や紫外線の値を段階に分ける関数が色まで返していて、配色を変えると計算のコードまで直す作りになっていた。分類の関数は1〜5の段階だけを返し、段階を何色で塗るかは表示の側の対応表が決める形に分け直した。
AI に作業を任せても、途中の確認で画面の前から離れられない。工程の順番と人の判断を待つ位置を LangGraph に持たせ、Claude Code を1つの部品から呼ぶ形にし、止めたあと別のコマンドから再開できるかを、リンク切れの点検で1回確かめた。
メモや設計書に自分で付けた名前が、数か月後には自分でも読めなくなる。名前の良し悪しを、説明を読まずに初めて読む人が中身の見当をつけられるかの1問で判定し、読めなくなる名前を5つの型に分けた。とくに見落としやすい、記号に置き換えた名前と比喩を組み合わせた名前を、悪い例と良い例で示す。
パスワード、ワンタイムパスワード、パスキーは、ログインのときに何を確かめ、何を相手に渡すかが違う。パスキーが偽サイトに強い理由と、代わりのログインの方法やログインの後に残る危険を、シーケンス図と TypeScript の短いコードで初心者向けに解説する。
Express は書けるのに、NestJS でサービスを import しても起動で止まった。Express と Hono はつなぐコードを自分で書き、NestJS はモジュールに登録して任せる。この違いと、起動で止まるエラーの読み方を、同じ API を書いて確かめた。
課題の番号で探した課題がデータベースに無いとき、リポジトリが「見つからない」のエラーを出すと、無いのが正常な操作までエラーになる。リポジトリは null を返すだけにし、エラーにするのはユースケース層にする分け方を、最小のコードで示す。
「題名は空にできない」という業務ルールは、API の入口で使う Zod にもドメイン層にも書けてしまい、両方に書くと片方だけ変えたときに食い違う。Zod には値の形だけを書き、業務ルールはドメイン層の関数1つに書く分け方を、最小のコードで示す。
会社が保存している個人情報は、なぜ外の人に持ち出されるのか。国の機関が公表した事例をもとに、認証だけを行い認可を行っていない API を TypeScript の短いコードで再現し、他人の情報が返る理由と直し方を初心者向けに解説する。
共通鍵、公開鍵と秘密鍵、パスワード、API キーは、だれが持ち、だれに配ってよいかが違う。暗号化とハッシュ化の違いと、「元に戻せない」が絶対にできないという意味ではない理由を、図と TypeScript の短いコードで初心者向けに解説する。
ソニーのミラーレス一眼α7C IIで、街歩きのスナップがブレる、ピントが外れるという悩みを減らすため、撮る場面を「被写体が動くか」で3つに分け、シャッター速度やピントの合わせ方をまとめてモードダイヤルの1・2・3に登録した。
Claude Codeに「この操作はしないで」と指示書に書いても、守るかどうかはそのときのAIの判断しだいになる。元に戻せない操作のうち機械で判定できるものは、実行の直前に走るhookで止める。sedの一括置換で起きた事故、hookの書き方と試し方、hookに移せない決まりの扱い。
Claude CodeとCodexを併用すると、CLAUDE.mdとAGENTS.mdに指示が二重になります。本文をAGENTS.mdに置き、CLAUDE.mdから@AGENTS.mdで読み込む形にまとめました。Codexで@の読み込みを試した結果も載せています。
つくることで、見える景色がある。

