Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AIのための特別なアーキテクチャはいらない 0→1開発で実践した設計原則とガードレール
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
株式会社カミナシ
May 10, 2026
Technology
580
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AIのための特別なアーキテクチャはいらない 0→1開発で実践した設計原則とガードレール
カミナシ Tech Night #3
https://kaminashi.connpass.com/event/387233/
Shimmy
ソフトウェアエンジニア
株式会社カミナシ
May 10, 2026
More Decks by 株式会社カミナシ
See All by 株式会社カミナシ
AWS Summit Japan 2026の振り返りと2027へ向けて / AWS Summit Japan 2026 Recap and Prospects for 2027
kaminashi
1
180
Amazon Redshift zero-ETL 統合を活用した軽量なマルチプロダクトデータ可視化基盤 / Lightweight Multi-Product Data Visualization with Amazon Redshift Zero-ETL
kaminashi
0
150
実践 TanStack Start ― 新規プロダクトを開発して確立した、サーバーとクライアント境界の設計パターン / Practical TanStack Start Server-Client Boundary Patterns
kaminashi
3
710
スクラムの中で AI-DLC workflow を 使い始めて3ヶ月の振り返り
kaminashi
0
790
The essence of decision-making lies in primary data
kaminashi
0
1.1k
JAWS DAYS 2026 AWS知識・技術力を使って隠された旗をゲットせよ!〜出張版「ごーとんカップ」〜 解説編
kaminashi
0
1k
それ、本当にLambdaでやりますか? / Do You Really Need Lambda for This?
kaminashi
1
1k
「AIと一緒に開発する」を本格始動して 1ヶ月の振り返り / One-Month Retrospective: Starting Full-Scale AI-DLC
kaminashi
0
1.1k
高凝集と疎結合、純粋なドメイン層。AIの力を最大限引き出す設計思想と、それを破らせない仕組み(10分バージョン)
kaminashi
5
2k
Other Decks in Technology
See All in Technology
GitHub Copilot運用のリアル ~AI Credit時代にどう向き合うか~
takafumisu2uk1
0
620
AIDLC_ヤフーショッピングの取り組み
lycorptech_jp
PRO
0
500
“ID沼入口” - 基本とセキュリティから始める、考え続けるためのID管理技術勉強会 告知&イントロ
ritou
0
380
#エンジニアBooks 30分でわかる 「技術記事を書く技術」 / engineer-books 2026-06-30
jnchito
1
180
“全部コピーしない”ファイルデータの活用 : — FSx for ONTAP × S3 Tables × Icebergで作るメタデータカタログ
yoshiki0705
0
320
Multi-Agent並列開発を 安全に回すための技術 / Technology for Safely Multi-Agent Parallel Development
tooppoo
0
250
product engineering with qa
nealle
0
140
金融の未来を考える / Thinking About the Future of Finance
ks91
PRO
0
150
プロンプト_きのこカンファレンス2026_LT
yurufuwahealer
0
130
打造你的 AI 工作流:Agent Skill + MCP 實戰工作坊
appleboy
0
450
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
水を運ぶ人としてのリーダーシップ
izumii19
4
1.2k
Featured
See All Featured
A better future with KSS
kneath
240
18k
Making Projects Easy
brettharned
120
6.7k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
Design in an AI World
tapps
1
260
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
480
GitHub's CSS Performance
jonrohan
1033
470k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Optimizing for Happiness
mojombo
378
71k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
440
Joys of Absence: A Defence of Solitary Play
codingconduct
1
410
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
380
Transcript
AIのための特別なアーキテクチャはいらない 0→1開発で実践した設計原則とガードレール カミナシ Tech Night #3
⾃⼰紹介 • 名前: Shimmy • 所属: 株式会社カミナシ ◦ ソフトウェアエンジニア ◦
カミナシで新規プロダクトを開発中 ◦ TanStack Startを使ってFull TypeScriptで開発 • その他: ◦ 最近はポケポケに時間を取られています ◦ AIのお陰で個⼈開発にまた⽕がついて、ゴリゴリコードを書いてます (AIが)
今⽇話すこと 1. AIの⼒を最⼤限引き出す設計条件 2. その設計を決定論的に守らせる仕組み
AIの⼒を最⼤限 引き出す条件
条件1: 関⼼の分離
Feature-First構成 関⼼事でディレクトリを分ける • ある機能を修正したいとき、修正したい箇所がまとまって いると扱いやすい • 1つの関⼼事がすべて1ディレクトリの中にあるのでAIの コンテキストに載せやすい • 並列にAI開発しても関⼼ごと別に分ければコンフリクトし
にくい
結合をバランスさせる 結合を「避ける」のではなく「バランスさせる」 • 「結合の強さ」が⾼いなら「距離」を短く ◦ -> Feature内部は⾼凝集 • 「距離」が⻑いなら「結合」を弱く ◦
-> Feature間は疎結合
Feature内のディレクトリ構成 • domain/ ◦ 純粋関数のみ • infrastructure/ ◦ DBアクセスなどI/O •
server/(api) ◦ オーケストレーション domainとinfrastructureを組み⽴てる • index.ts ◦ Public API 外部に公開するものだけをexport
Featureを横断するケー ス
パターン1: shared/ 複数featureが使う共通ロジックを切り出す • 純粋関数をsrc/shared/lib/に置く • 依存⽅向は常に features/ → shared/
パターン2: routes/ 複数featureを組み合わせるページ • 各featureのPublic APIをimportして統合する • featureは互いの存在を知らない
条件2: 価値の⾼いテスト
テストの4つの柱 『単体テストの考え⽅/使い⽅』より • 退⾏保護: バグを⾒逃さない • リファクタリング耐性: 内部を変えても壊れない • 迅速なフィードバック:
すぐ結果がわかる • 保守しやすさ: テスト⾃体がシンプル
出⼒値ベーステスト • Inputを⼊れてOutputを検証する • 内部実装に依存しない → リファクタリング耐性が⾼い • モック不要でAIに書かせやすい •
テスト実⾏が速い → AIの試⾏錯誤ループが速く回る
domain層の純粋関数 • Inputを受け取り、純粋関数を組み合わせて計算し、 Outputを返す • DB参照なし、副作⽤なし、I/Oなし
domain層の関数のテスト • テストはInputを組み⽴て 関数を呼び、Outputを検証するシンプルなもの • モック不要、DI不要
Functional Core + Imperative Shell I/Oとロジックを分離し、副作⽤を端においやる • Functional Core ◦
domain/ : 純粋関数でビジネスロジック • Imperative Shell ◦ infrastructure/: DBアクセスなどI/O操作 ◦ server/ : API層。組み⽴ててエンドポイントを提供する
設計を決定論的に 守らせる仕組み
なぜ「決定論的」的に守る必要があるか • ルールを教えただけでは守らないことがある • AIの出⼒速度に⼈間のレビューが追いつかない -> 決定論的に守る「ガードレールが必要」
ガードレールの条件 • 決定的であること ◦ AGENT.mdは確率的 → 守られないことがある -> 決定的なシステムが必 要
• 速くフィードバックできること(Shift Left) ◦ AIの試⾏錯誤ループの中でフィードバックしたい
静的解析 dependency-cruiser
dependency-cruiserで設計を強制する import⽂を静的解析して依存関係のルール違反を検出する ツール • 設計思想をdependency-cruiserのルールとする • 新規プロダクトでは12個のルールを定義
ルール定義①: 純粋なドメイン層 domain/からinfrastructure/やserver/をimportす るとエラー
ルール定義②: Feature間の疎結合 同⼀feature内はOK。別featureを直接importするとエラー
ルール定義③: Public API境界 index.tsを通さずにfeature内部を参照するとエラー
その他の静的解析ツール • knip: 未使⽤コードを検出 ◦ AI実装で⽣まれる未使⽤exportやファイルを⾃動検出 • Biome: コード品質を統⼀ ◦
any型禁⽌、⾮nullアサーション禁⽌、awaitされていないPromise検出
Git hooksで統合する
lefthook: コミット前に⾃動で弾く • pre-commit: Biomeのチェック + dependency-cruiser • pre-push: 型チェック
+ knip + テスト
開発フロー アウトプットではなく、プロセスを信頼できるものにす る 1. AIにコードを書かせる 2. git commit a. Biome
+ dependency-cruiser が⾛る b. 設計違反があればエラー c. → AIが⾃動修正 3. git push a. → 型チェック + knip + テスト が⾛る
まとめ
設計条件を振り返る • 関⼼の分離 ◦ 関⼼事ごとにファイルをまとめる ◦ AIのコンテキストに載せやすく、並列開発でもコンフリクトしにくい • 価値の⾼いテスト ◦
domain層を純粋関数で構成し、出⼒値ベースの単体テストを書く ◦ モック不要でリファクタリングに強い。質の⾼いテストを書きやすい構 造が整う • 依存⽅向の決定 ◦ 層ごとのルールを明確にする ◦ AIが迷わず、静的解析で機械的に強制できる
設計を決定論的に守らせる dependency-cruiserで設計思想をガードレールに • domain層から他の層をimportしたらエラー • 別featureを直接importしたらエラー • index.tsを通さずfeature内部を参照したらエラー knip +
Biome も活⽤し、lefthookで確定的に実⾏
良い設計をちゃんと守る
株式会社カミナシ https://kaminashi.jp