PerlとMooでBuilderパターンを学ぶ実践連載の目次。SQLクエリビルダーを作りながら、SQLインジェクション対策とFluent Interfaceの実装技法を習得する全8回シリーズ。
SQLクエリビルダー最終回。バリデーション、エラーハンドリング、Test::Moreによるユニットテストを実装。完成版コードを公開します。
SQLクエリビルダー第7回。Directorパターンでよく使うクエリパターンを再利用可能に。「ページネーション付き検索」「集計レポート」など定型クエリを簡単に生成。
SQLクエリビルダー第6回。JOIN句、ORDER BY、GROUP BY、HAVINGなど複雑なクエリを段階的に構築。Builderパターンの拡張性を実感します。
SQLクエリビルダー第5回。プレースホルダー(バインドパラメータ)を導入し、SQLインジェクションを完全に防ぐ。セキュアなクエリ実行の実装方法を解説。
SQLクエリビルダー第4回。Builderパターンを導入し、Fluent Interface(メソッドチェーン)で美しいAPIを実現。パラメータ地獄から脱出します。
SQLクエリビルダー第3回。文字列結合でSQLを組み立てる危険性を、SQLインジェクション実験で体験。セキュリティ意識を高める教育的コンテンツ。
SQLクエリビルダー第2回。WHERE条件を追加しようとしてコンストラクタの引数が爆発。Telescoping Constructorアンチパターンの問題点を体験します。
PerlとMooでSQLクエリビルダーを作る連載第1回。シンプルな文字列結合で「SELECT * FROM users」を生成する方法を学びます。Builderパターン習得への第一歩。
PerlとMooで学ぶDecorator - ログ解析パイプライン実装(全8回)のシリーズ目次です。
最終回は、YAML設定ファイルからDecorator構成を読み込み、動的にパイプラインを構築するPipelineBuilderを作成。開放閉鎖原則(OCP)を実現したシステムの完成です。
「連続404エラー」などの異常条件を検知してアラートを出すAlertDecoratorを実装。Decoratorが副作用(Side Effect)を持つパターンを解説します。
状態(State)を持つDecoratorの実装例として、処理したログの統計情報を集計するStatsAggregatorDecoratorを作成します。Decoratorパターンの柔軟性を体験します。
いよいよDecoratorパターンの登場です。Roleを使った共通インターフェースの定義と、Mooのaround修飾子を使った動的な機能追加(ラッピング)の実装方法を解説します。
「404エラー検出」かつ「特定IP除外」のような複合条件により、サブクラスが爆発的に増える「クラス爆発」問題に直面します。継承の限界を体験します。