2025-01-01から1年間の記事一覧

ユーザーの内部IDの発行権を他人に握らせてはいけない

結論 ユーザーの内部IDを自システム以外に委ねるべきではありません。 ユーザーの内部IDの実装について気をつけるべきことを2つ紹介します。 外部サービスが発行したIDを内部IDにするべきではない ユーザーが変更可能な値を内部IDにするべきではない 外部サ…

なぜTypeScriptでメソッド記法を避けるべきか?実務に近い事例の紹介

参考文献 プロを目指す人のためのTypeScript入門 安全なコードの書き方から高度な型の使い方まで | 技術評論社 通称ブルーベリー本。コラム17に記載。 Method Shorthand Syntax Considered Harmful | Total TypeScript TypeScript の変性(共変・反変)を 5 …

生成AIにMermaid.jsでロバストネス図を描いてもらう

背景 生成AIによる要求分析 要求分析はチームによるシステム開発の要であり、関係者の認識を揃えるために非常に重要なプロセスです。 システム開発のための要求分析の手法としてICONIXやRDRAなどが知られていますが、その過程ではユースケース図やロバストネ…

ドメインイベントを容易に記録できるコード設計を考える

はじめに データアナリストの現場の苦しみ 近年、ビジネスの意思決定にはデータの活用が重要だという認識が広まりつつあります。実際、データアナリストに関する求人やデータ分析の発表が増えているのを実感します。 しかし、現場では、異常かつ不十分なデー…

Union型から交差型への変換

はじめに Union 型から交差型へ変換するユーティリティ型を紹介し、その仕組みを解説します。 私はこのユーティリティ型を時々利用しますが、その原理を度々忘れてしまうのでここにメモしておきます。 使い方 以下の例では、UnionToIntersection が Age | Na…

Discriminated Unionを利用したStateパターンの実現

この記事について 先日公開した下記の記事について、記事冒頭で紹介した「クラスベースによる状態遷移の実装」があまりに素朴な実装であり、その後Stateパターンへの言及がほとんどなされなかった上、あたかもクラスを用いた実装そのものに問題があるような…

複雑な状態遷移😭: クラスではなく関数とDiscriminated Unionで状態の定義と遷移を表現する

補足: 2025/02/25 本記事でほとんど紹介されなかった「Stateパターン」を含めて再構成した記事を公開しましたので、今後は下記の記事をご覧ください。 kosui.me 補足: 2025/02/21 クラスベースでも、Stateパターンを適用し、StateをDiscriminated Unionとし…