Claude CodeでPipes and Filtersパターンを設計する:データ変換パイプライン・ミドルウェアチェーン・型安全な処理

はじめに 「データ変換の処理が増えるたびにサービスが肥大化している」——Pipes and Filtersパターンで各変換ステップを独立したFilterにし、Pipeline(パイプ)で組み合わせて再利用可能なデータ変換チェーンを構築する設計をClaude Codeに生成させる。 CLAUDE.mdにPipes and Filters設計ルールを書く ## Pipes and Filters...

By · · 1 min read
Claude CodeでPipes and Filtersパターンを設計する:データ変換パイプライン・ミドルウェアチェーン・型安全な処理

Source: DEV Community

はじめに 「データ変換の処理が増えるたびにサービスが肥大化している」——Pipes and Filtersパターンで各変換ステップを独立したFilterにし、Pipeline(パイプ)で組み合わせて再利用可能なデータ変換チェーンを構築する設計をClaude Codeに生成させる。 CLAUDE.mdにPipes and Filters設計ルールを書く ## Pipes and Filters設計ルール ### Filterの設計 - 各Filterは単一責任(1つの変換だけを行う) - 入力と出力の型を明示(TypeScript Generics) - Filterはステートレス(状態を持たない) - エラーはFilterがスローしてPipelineがキャッチ ### Pipeline構成 - Filterを配列で順番に指定 - 途中でエラーが出たら後続のFilterは実行しない - 非同期FilterとStream Filterを混在可能 ### テスト容易性 - 各Filterは独立してテスト可能(入力→出力の純粋関数) - Pipelineは結合テスト(全Filterの連結) Pipes and Filters実装の生成 Pipes and Filtersパターンを設計してください。 要件: - 型安全なGenericパイプライン - 非同期Filter対応 - エラーハンドリング - 条件付きFilter(スキップ可能) 生成ファイル: src/pipeline/ 生成されるPipes and Filters実装 // src/pipeline/pipeline.ts — 型安全なパイプラインエンジン export type Filter<TIn, TOut> = (input: TIn, context: PipelineContext) => Promise<TOut> | TOut; export interface ConditionalFilter<TIn, TOut> { filter: Filter<TIn, TOut>; when?: (input: TIn, context: PipelineContext) => boolean; } export interface Pipel

Similar Topics

#ai (16747) #programming (3999) #large language models (3406) #security (717) #webdev (254) #javascript (229) #opensource (171) #api (110) #node (42) #nextjs (28) #fix (21) #html (17) #css (17) #feat (17) #code generation (11) #chore (10) #backbonejs (6) #modernization (6) #es6 (6) #redis (3)

Related Posts

Trending on ShareHub

Latest on ShareHub

Browse Topics

#artificial intelligence (31552) #data science (24017) #ai (16738) #generative ai (15034) #crypto (14987) #machine learning (14680) #bitcoin (14229) #featured (13550) #news & insights (13064) #crypto news (11082)

Around the Network