@nqounetです。
「架空ECサイトで学ぶ決済審査システム」シリーズの目次ページです。
シリーズ概要
このシリーズでは、架空ECサイト「ペルマート」(Perl + Mart の造語)の決済審査システムを題材に、オブジェクト指向設計の実践を学びます。
シンプルなif文から始めて、要件追加によるコードの複雑化を体験し、最終的にデザインパターンで解決するという「段階的体験学習」アプローチを採用しています。
対象読者
- Perl入学式卒業程度の方
- 「Mooで覚えるオブジェクト指向プログラミング」シリーズを読了した方
- if文の複雑化に悩んだことがある方
- デザインパターンを実践的に学びたい方
前提知識
このシリーズは「Mooで覚えるオブジェクト指向プログラミング」シリーズの応用編です。まだ読んでいない方は、先にこちらをご覧ください。
技術スタック
- Perl v5.36以降(signaturesを使用)
- Moo(軽量オブジェクト指向フレームワーク)
- 外部依存なし(Moo以外)
記事一覧
第1回: 架空ECサイトの決済審査を作ってみる
- 決済審査の基本と条件分岐
- 金額上限チェック(10万円以上は拒否)の実装
- カード有効期限チェックの追加
- 早期リターンでコードを読みやすく
第2回: 審査条件が増えてコードが複雑化する
- if文ネストの問題点を体験
- ブラックリスト、残高確認、不正利用検知の追加
- 審査ルール5つ以上でコードが保守困難に
- テスト困難・新ルール追加困難の具体例
第3回: 審査ロジックをチェッカーに分離する
- Chain of Responsibilityパターンの基本
- 各審査ロジックを独立したクラスに分割
- PaymentChecker基底クラスとチェーン構築
- ExpiryChecker, LimitChecker, BlacklistCheckerの実装
- 拡張性の高い決済審査システムの完成
学べること
| 回 | 学べること |
|---|---|
| 第1回 | 決済審査の基本、早期リターン、ハッシュリファレンス |
| 第2回 | コードスメルの認識、リファクタリングの必要性 |
| 第3回 | Chain of Responsibilityパターン、責任の分離、拡張性 |
注意事項
このシリーズで扱う決済システムは学習用の架空システムです。
実際の決済システムを開発する際は、以下の点に注意してください。
- PCI DSS などのセキュリティ基準を遵守する
- カード番号は本番環境では暗号化して保存する
- 審査ロジックは決済代行会社のAPIを利用する
関連シリーズ
同じChain of Responsibilityパターンを別のドメインで学べるシリーズです。
CLIアプリケーションでCommandパターンを学ぶシリーズもあります。
