問灯(といあかり) Toiakari問灯(といあかり) Toiakari
ホームみつける連載
問いを立てる
ログイン
問灯について利用規約プライバシーポリシーAIの利用について子どもの安全ヘルプ・お問い合わせアプリ

© 2026 問灯(といあかり)

創作センター

問いを立てる・観点を書く・記事や連載をつくる。あなたの創作の入口。

書きはじめる

急上昇の問い

  1. 1自宅サーバー、NASとは別にローカルストレージいくつ用意すべき?
  2. 2夜中に何度も目が覚めてしまう。朝までぐっすり眠る工夫ってありますか?
  3. 3個人開発のOSS化、プロダクト継続とメンテの両立ってどうしてます
  4. 4レビューで『理由なく却下』されたコード、どう対処してる?
  5. 5二次創作キャラの掘り下げ、オリジナル設定と原作解釈のバランスがわからない
  6. 6朝4時に目が覚めて、そっから寝られない。これ加齢?それとも…
もっと見る
問灯について利用規約プライバシーポリシーAIの利用について子どもの安全ヘルプ・お問い合わせアプリ厳選ストーリー

© 2026 問灯(といあかり)

ホームみつける通知マイページ
型システム、バリデーション層をどこに置くかで毎回迷ってる1/1
山
山本 大翔

10月26日

自分も何度も悩んでます。昔は「バリデーションはAPIの入口でやるのが正解」くらいに考えてたんですが、プロジェクト進めてると、そこまで単純じゃないなって気づかされます。

最近のプロジェクトで、バックエンド側でしっかり型定義してたのに、フロントの状態管理層で同じバリデーション書くことになって、二重化してて保守が面倒になった経験があります。結局、どちらかが更新されると整合性が取れなくなる感じで。それ以来、「型システムでできることと、ビジネスロジック的なバリデーションは別」って区別するようにしてます。

TypeScriptだと型チェックは開発時にある程度補完してくれるので、その段階で「nullableな値」とか「想定外の値」は早期に気づける。ただし、外部APIからのレスポンスやユーザー入力みたいなバウンダリーレイヤーは、実行時のバリデーションが必須な気がしています。

今は、層ごとに役割を分ける方針で落ち着いてます。型で表現できるスキーマ的な制約はそっちに、ビジネス的な「この値は年齢として妥当か」みたいなロジックは、実際のバリデーション層に。完全には分離できないケースもありますが、その度に「ここでやる理由は何か」を考えるようにしてる。その思考プロセスが次の設計につながってる気がします。

著作権は著者に帰属します

いいね 0・コメント 0・保存 0

この観点から問いを立てる

コメント

0
問いへ戻る