Featured image of post 【目次】架空ECサイトで学ぶ決済審査システム(全3回)

【目次】架空ECサイトで学ぶ決済審査システム(全3回)

架空ECサイト「ペルマート」の決済審査システムを題材に、Chain of Responsibilityパターンを段階的に学ぶシリーズの目次ページです。Perl 5.36とMooで実装します。

@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パターンを学ぶシリーズもあります。

comments powered by Disqus
Hugo で構築されています。
テーマ StackJimmy によって設計されています。