# kosui > kosuiの活動記録。技術ブログ、登壇資料、外部メディア寄稿などを発信しています。 - [llms-full.txt](https://kosui.me/llms-full.txt): 全投稿の本文を含むフルバージョン ## Posts - [サーバサイドTypeScriptを選ぶ前に向き合ってほしいこと](https://kosui.me/posts/2026/06/26/before-choosing-server-side-typescript): Coding Agentがコードを書く時代でも、アプリケーションコードを書くだけでは解決できない問題がある。サーバサイドTypeScriptが本当に自分たちの要求にフィットしているか、考えるきっかけにしてほしい。 - [SaaS企業のプラットフォームチームとして大切にしていること](https://kosui.me/posts/2026/05/31/important-for-platform-team): コンパウンドスタートアップを謳うSaaS企業が抱える課題を、プラットフォームチームはどのような考え方で解決するべきか提案する。 - [人を増やしても減らしてもアウトプットの品質は向上しない](https://kosui.me/posts/2026/04/29/knowledge-entropy-and-normative-layer): 人を増やしても減らしても組織のアウトプットの品質は向上しないと考えています。前半では知識のエントロピーが文脈共有コストと中央集権化を引き起こす構造を、後半では自律的な存在の限界と規範レイヤーの設計について検討します。 - [サーバサイドTypeScriptの関数型ドメインモデリングを実践するエージェント向けプラグインを公開](https://kosui.me/posts/2026/04/08/functional-ts-principles): サーバーサイドTypeScriptで関数型ドメインモデリングを実践するための原則を、コーディングエージェント向けスキルプラグインとして公開した。 - [TSKaigi 2026にプロポーザルが採択されました](https://kosui.me/posts/2026/03/tskaigi): TSKaigi 2026で「TypeScriptのclassはなぜこうなったのか」というテーマで30分セッションに登壇します。classの歴史的経緯・落とし穴・使いどころを体系的に整理するトークです。 - [ログのPII漏洩を防止する: TypeScriptの型推論とランタイムの境界](https://kosui.me/posts/2026/03/16/typescript-pii-logging-defense): TypeScriptの構造的部分型はログへのPII混入を型レベルで防げない。型の限界を認めた上で、センシティブな値を関数クロージャに閉じ込めるSensitive型と、Pino redactによる多層防御の設計パターンを提案する。 - [仕様について考える前に要求分析をしよう](https://kosui.me/posts/2026/03/15/sdd-requirements-analysis): SDDが話題だが、その前工程である要求分析が見落とされがちだ。RDRAの表形式フォーマットがコーディングエージェントと相性が良い理由と、Claude Codeを使った実践ワークフローを紹介する。 - [すぐにポストモーテムを準備したい!Claude Codeスキルの設計指針](https://kosui.me/posts/2026/03/claude-code-postmortem): ポストモーテムの準備は辛い。情報源が散在し、テキスト量が膨大で、インシデント直後の疲弊した状態でやらなければならない。Claude Codeのカスタムスキル機能を使って、この準備作業を大幅に軽くする設計指針を紹介します。 - [品質要求が相反するシステムをどう分割するか — サービスベースアーキテクチャの実践](https://kosui.me/posts/2026/03/03/service-based-architecture): マイクロサービスでもモノリスでもない選択肢として、サービスベースアーキテクチャを医療SaaSの共通基盤で採用した経緯と実装、運用の教訓を紹介します。 - [Node.jsパフォーマンスチューニングをDatadog APMとClaude Codeでサクッとやる](https://kosui.me/posts/2025/12/10/210415): Datadog APMでNode.jsのプロファイルを取得し、Claude Codeと組み合わせてパフォーマンスのボトルネックを特定・改善する方法を紹介します。 - [私がTypeScriptで `interface` よりも `type` を好む理由](https://kosui.me/posts/2025/10/23/214710): interfaceの宣言マージがセキュリティリスクを招く可能性を示しながら、アプリケーション開発でtypeを優先すべき理由を解説します。 - [ユーザーの内部IDの発行権を他人に握らせてはいけない](https://kosui.me/posts/2025/06/02/225249): 外部サービスのIDやユーザーが変更可能な値をシステムの内部IDに使うべきでない理由と、そのリスクを具体例で説明します。 - [なぜTypeScriptでメソッド記法を避けるべきか?実務に近い事例の紹介](https://kosui.me/posts/2025/06/02/221656): TypeScriptでメソッド記法を使うと引数の型チェックが甘くなる理由を、タスク管理サービスの実例を交えて解説します。 - [生成AIにMermaid.jsでロバストネス図を描いてもらう](https://kosui.me/posts/2025/05/08/011826): Mermaid.jsのフローチャート機能を活用してロバストネス図を描く手法を紹介し、生成AIを用いて図を自動生成する実践例を示した記事です。 - [TypeScriptでドメインイベントを容易に記録できるコード設計を考える](https://kosui.me/posts/2025/05/06/142842): データ変更の記録をドメインイベントとして型安全に設計する方法を、リポジトリ設計とテーブル設計の観点から具体的なコード例とともに解説した記事です。 - [Union型から交差型への変換](https://kosui.me/posts/2025/05/05/113306): TypeScriptのUnion型を交差型へ変換するユーティリティ型の実装を、条件型の分配法則と関数引数の反変性という2つの型システムの性質を用いて詳しく解説した記事です。 - [Discriminated Unionを利用したStateパターンの実現](https://kosui.me/posts/2025/02/25/021320): Discriminated Unionを活用したStateパターンの実装方法を、シンプルな状態遷移から振る舞いの入力が状態ごとに異なるケースまで段階的に紹介した記事です。 - [複雑な状態遷移😭: クラスではなく関数とDiscriminated Unionで状態の定義と遷移を表現する](https://kosui.me/posts/2025/02/20/005900): TypeScriptでクラスによる状態管理の課題を示し、Discriminated Unionとコンパニオンオブジェクトパターンを用いて型安全に状態遷移を表現する方法を解説した記事です。 - [網羅的なPRDやDesign Docを書かなくなった](https://kosui.me/posts/2024/06/12/130408): 網羅的なPRD・Design Docを書いてレビューするより、関係者と対話しながら観点とトレードオフを洗い出す方が少ない手数で良い意思決定ができるという主張をまとめた記事です。 - [TSKaigiにプロポーザルが採択されました🎉](https://kosui.me/posts/2024/03/tskaigi): TSKaigi 2024へのプロポーザル採択報告と、サーバサイドTypeScriptでfp-tsを活用した複雑なビジネスロジック検証の取り組みを紹介する記事です。 - [for...of 文を使わずに Promise を直列実行するための TypeScript 向けユーティリティ](https://kosui.me/posts/2023/05/serialize-array-returning-promises): for...of文を使わずにPromiseを直列実行するためのTypeScript向けユーティリティ関数forOfを紹介する記事です。 - [BigQuery の課金額で泣かないための UserScript](https://kosui.me/posts/2022/02/big-query-user-script): BigQueryで実行前にクエリの課金額をその場で表示するUserScriptの仕組みと実装を解説した記事です。 - [それでも .env を env したい](https://kosui.me/posts/2021/03/env): シェルと互換性のない.envファイルを安全に読み込む方法として、godotenvを使った解決策を紹介する短編記事です。 - [Go コンパイラのコードを読んでみよう](https://kosui.me/posts/2020/12/golang-compiler): Goの公式コンパイラgcのソースコードを字句解析・構文解析・AST変換の流れに沿って読み解く入門記事です。 - [ISUCON10 予選敗退の記録と反省](https://kosui.me/posts/2020/09/isucon10): ISUCON10予選に初参加した振り返りで、事前準備から当日の最適化作業、反省点までを詳しくまとめた記録です。 - [二者間交渉ゲームにおける交渉解の比較](https://kosui.me/posts/bargaining-solution): ゲーム理論における二者間交渉の代表的な解であるナッシュ交渉解・カライ・スモルディンスキー解・均等解の公理と特性を比較解説します。 ## Talks - [本当にTypeScriptのclassを使わずにシステムを運用できるの?](https://kosui.me/talks/2026/tskaigi-afterparty): TSKaigi 2026 事後勉強会 - 実際の運用中のシステムを紹介 - [TypeScriptのclassはなぜこうなったのか](https://kosui.me/talks/2026/tskaigi): TSKaigi 2026 - TypeScriptのclassが今の形になった歴史を紐解き、落とし穴を根本原因から整理し、対策を提示します。 - [開発チームが信頼性向上のためにできること](https://kosui.me/talks/2026/sre-kaigi-2026): SRE Kaigi 2026 - Embedded SRE不在でも開発チームが信頼性に責任を持ち、改善を続けるための具体的な方法論と、運用を通じて学んだ教訓を紹介します。 - [堅牢な認証基盤の実現:TypeScriptで代数的データ型を活用する](https://kosui.me/talks/2025/fp-matsuri): 関数型まつり 2025 - 医療システムの認証基盤で代数的データ型を活用し、複雑な状態管理を型安全に実現した事例を紹介します。 - [PdMのためのソフトウェアエンジニアリング入門](https://kosui.me/talks/2024/kakehashi-internal-lt): 社内LT - プロダクトマネージャー向けに、ソフトウェアエンジニアリングの基礎と、 PdMとエンジニアが協働するためのアプローチを解説する。 - [プロダクト成長に対応するプラットフォーム戦略: Authleteによる共通認証基盤の移行事例](https://kosui.me/talks/2024/authlete-study-group): OAuth & OpenID Connect 勉強会 ー 認可サーバーの作りかた(AWS編) - 医療SaaS企業カケハシが、複数プロダクト向けに統一認証基盤を構築した事例。 Authleteを活用したアーキテクチャと、プロダクトチームとの移行戦略を紹介。 - [複雑なビジネスルールに挑む:正確性と効率性を両立するfp-tsのチーム活用術](https://kosui.me/talks/2024/tskaigi): TSKaigi 2024 - fp-tsの柔軟な関数合成・エラー合成機能を活用し、Excel入稿機能の複雑なバリデーションで正確性と効率性を両立させた事例を紹介します。 - [品質とスピードを両立: TypeScript の柔軟な型システムをバックエンドで活用する](https://kosui.me/talks/2024/techplay-typescript-lt): Findy様 TypeScript 開発言語を統一 〜フロントからバックまで活用〜 Lunch LT - TypeScriptの柔軟な型システムをバックエンドで活用し、品質とスピードを両立させるための実践的なテクニックを紹介します。 - [更新"しない"ドキュメント管理 「イミュータブルドキュメントモデル」の実運用](https://kosui.me/talks/2023/document): Findy様 ドキュメント管理を制する 陳腐化を防ぐための実践事例 Lunch LT - ドキュメントを更新し続ける代わりに、意思決定を記録する「イミュータブルドキュメントモデル」の実運用について紹介します。 - [大規模SaaSにおけるプラットフォームシステム開発の進め方](https://kosui.me/talks/2023/techplay): SmartHR・カケハシ・リクルートのエンジニアが語る「複雑化するプラットフォーム開発をスムーズに進めるための方法」 - 大規模SaaSにおけるプラットフォームシステム開発で、要求分析とアジャイル開発を小さく反復する方法論を紹介します。 - [User-Agent 文字列削減によるサービス影響とその対策](https://kosui.me/talks/2021/dena-techcon-winter): DeNA TechCon 2021 Winter - Chrome の User-Agent 文字列削減がウェブサービスに与える影響と、 User-Agent Client Hints を使った対策について解説するライトニングトーク。 - [Goのコンパイラをみてみよう 〜iotaを通じて〜](https://kosui.me/talks/2019/mccmmancc): MCCMMANCC 2019 - Go言語の「iota」という言語機能に焦点を当て、 Goコンパイラのソースコードを読み解きながら内部実装を探索する。 ## External Articles - [共通基盤の構築にサーバサイドTypeScriptを選んで嬉しかったこと](https://kakehashi-dev.hatenablog.com/entry/2026/07/08/090000) (KAKEHASHI Tech Blog): 認証基盤・ID基盤の構築でサーバサイドTypeScriptを採用して得られた利点を紹介。OIDCのSSR実装、Discriminated Unionによる状態遷移管理、構造的型システムを活かした組織単位の設計を論じる。 - [サーバーサイドTypeScriptの型システムをどう教えるか — 他言語経験者に向けたオンボーディング事例](https://kakehashi-dev.hatenablog.com/entry/2026/03/31/110000) (KAKEHASHI Tech Blog): Python出身・Elixir出身のエンジニアにTypeScriptをオンボーディングした事例を紹介。「型検査とランタイムの境界を理解する」ことが言語背景を問わず最重要だと論じる。 - [TypeScriptのテストにはas const satisfiesが便利です](https://kakehashi-dev.hatenablog.com/entry/2025/12/14/110000) (KAKEHASHI Tech Blog): テストでダミーデータを定義する際の型検査エラーを、as const satisfies の組み合わせで解決する方法を紹介。Discriminated Unionやオプショナルプロパティを持つ型でも、型安全性を保ちながらリテラル型推論を活用できる。 - [TypeScriptの宣言的な配列操作 - ビジネスロジックを明確にする](https://kakehashi-dev.hatenablog.com/entry/2025/11/19/110000) (KAKEHASHI Tech Blog): 配列操作を手続き的スタイルから宣言的スタイルへ移行するメリットを解説。filterやmapなどの高階関数とカリー化を組み合わせ、ビジネスロジックの意図を明確にするコーディング手法を提案。 - [カケハシのマルチプロダクト インフラアーキテクチャ](https://findy-tools.io/companies/kakehashi/91/97) (Findy Tools): 医療SaaSを支えるマルチプロダクト基盤のアーキテクチャを紹介。OpenID Connectによる認証基盤、アカウント・アセット管理、Databricksを用いたデータ基盤、API・イベントドリブンによるプロダクト間連携の設計思想を解説。 - [日本の医療に本気で向き合う。認証・権限管理基盤チームの決意](https://kakehashi-dev.hatenablog.com/entry/2025/08/29/105510) (KAKEHASHI Tech Blog): 複数プロダクト間で共通する認証・権限管理を一元化する基盤の役割や、厚生労働省ガイドラインに基づく二要素認証必須化への対応など、医療DXを支える基盤チームの取り組みと展望を紹介。 - [他言語経験者が知っておきたいTypeScriptのクラスの注意点](https://kakehashi-dev.hatenablog.com/entry/2025/08/19/110000) (KAKEHASHI Tech Blog): Java/C#経験者がTypeScriptのクラスを使う際の4つの落とし穴を解説。構造的部分型によるドメインオブジェクトの混同、thisの動的束縛、private修飾子の実行時の限界などについて代替アプローチとともに紹介。 - [目的別データベースの実践: PostgreSQL 行レベルセキュリティと DynamoDB Outboxパターン](https://kakehashi-dev.hatenablog.com/entry/2024/09/19/110000) (KAKEHASHI Tech Blog): PostgreSQLの行レベルセキュリティによるテナント間データ分離と、DynamoDBのOutboxパターンによるイベント配信を紹介。医療SaaSにおける個人情報保護と高可用性の要件に応じた目的別データベース選定の実践例。 - [社内ドキュメントはなぜ更新されないのか?情報の鮮度を最小限の運用負荷で維持する「イミュータブルドキュメントモデル」のススメ](https://kakehashi-dev.hatenablog.com/entry/2023/10/16/100000) (KAKEHASHI Tech Blog): 情報を可変的なリソース情報と不変的なイベント情報に分類し、イベントの積み重ねとしてリソースを表現することで、最小限の運用負荷でドキュメントの鮮度を維持するアプローチを提案。 - [AWS ECS on Fargate + FireLens で大きなログが扱いやすくなった話](https://engineering.dena.com/blog/2022/08/firelens/) (DeNA Engineering Blog): ECS on Fargate環境でFireLensを使用した際に、16KB以上のログが分割されてJSONパースが失敗する問題の原因と、FluentBitのMultilineフィルタによるログ結合の解決策を解説。