PerlとMooで学ぶDecorator - ログ解析パイプライン実装(全8回)のシリーズ目次です。
最終回は、YAML設定ファイルからDecorator構成を読み込み、動的にパイプラインを構築するPipelineBuilderを作成。開放閉鎖原則(OCP)を実現したシステムの完成です。
「連続404エラー」などの異常条件を検知してアラートを出すAlertDecoratorを実装。Decoratorが副作用(Side Effect)を持つパターンを解説します。
状態(State)を持つDecoratorの実装例として、処理したログの統計情報を集計するStatsAggregatorDecoratorを作成します。Decoratorパターンの柔軟性を体験します。
いよいよDecoratorパターンの登場です。Roleを使った共通インターフェースの定義と、Mooのaround修飾子を使った動的な機能追加(ラッピング)の実装方法を解説します。
「404エラー検出」かつ「特定IP除外」のような複合条件により、サブクラスが爆発的に増える「クラス爆発」問題に直面します。継承の限界を体験します。
LogParserを継承してフィルタリング機能を追加する継承アプローチを紹介。特定IPのみ抽出するIPFilteredLogParserを実装します。
ログを構造化データにパースするLogParserクラスを実装。Combined Log Formatの正規表現と、名前付きキャプチャを使ったPerlらしい実装方法を解説します。
PerlとMooでログ解析の基礎を学ぶ連載第1回。ファイルを1行ずつ読み込むLogReaderクラスを実装し、Decoratorパターン学習の土台を作ります。Perl入学式卒業者向け実践シリーズ。
PerlとMooでWebスクレイピングツールを作りながら、Template Methodパターンを自然に学べるシリーズの目次です。全10回の構成で、継承・オーバーライド・フックメソッドを実践的に習得できます。
作ってきたものが「Template Methodパターン」だったことを明かします。Strategyパターンとの違いやHollywood Principleを解説し、デザインパターンの体系的な理解を深めます。GoFパターンの実践的な学習を完結させます。
ニュース・天気・商品情報を並行して取得できるWebスクレイパーシステムが完成!各クラスの役割と全体の構造を整理し、拡張性の高い設計を確認します。Template Methodパターンの威力を実感し、オブジェクト指向設計の集大成を体験します。
ECサイトの商品情報スクレイパーを追加。WebScraperクラスを一切修正せず、新クラス追加だけで対応。開放閉鎖原則(OCP)を実証し、拡張性の高い設計の価値を体感します。SOLID原則の実践的な理解を深めます。
validate_data()フックメソッドを追加。デフォルトは何もしないが、必要に応じてサブクラスでデータ検証を実装できる柔軟な設計を実現します。Hook Methodsの拡張パターンを習得し、実践的なバリデーション手法を学びます。
save_data()メソッドにデフォルト実装(ファイル保存)を用意。必要に応じて各サブクラスでカスタマイズできるHook Methodsの活用方法を学びます。柔軟な設計の実現を体験し、拡張性の高いコードの書き方を習得します。