ECサイトの商品情報スクレイパーを追加。WebScraperクラスを一切修正せず、新クラス追加だけで対応。開放閉鎖原則(OCP)を実証し、拡張性の高い設計の価値を体感します。SOLID原則の実践的な理解を深めます。
validate_data()フックメソッドを追加。デフォルトは何もしないが、必要に応じてサブクラスでデータ検証を実装できる柔軟な設計を実現します。Hook Methodsの拡張パターンを習得し、実践的なバリデーション手法を学びます。
save_data()メソッドにデフォルト実装(ファイル保存)を用意。必要に応じて各サブクラスでカスタマイズできるHook Methodsの活用方法を学びます。柔軟な設計の実現を体験し、拡張性の高いコードの書き方を習得します。
NewsScraperとWeatherScraperクラスをextendsで作成。extract_data()メソッドをオーバーライドして各サイトの抽出ロジックを実装します。Primitive Operationsの実装方法を学び、継承とオーバーライドの実践的な使い方を習得します。
WebScraperクラスを作成し、scrape()メソッドで処理の流れを定義。各ステップを抽象メソッドとして宣言し、Template Methodパターンの基礎を構築します。継承ベースの設計手法を実践的に学びます。
ニュース・天気予報のスクレイパーで「取得→抽出→保存」という共通の処理手順を発見。関数化して重複を削減しますが、まだ改善の余地があります。クラス設計の準備段階として処理の骨格を洗い出します。
天気予報サイトもスクレイピングしたくなった!前回のコードをコピペして対応するが、同じ処理が散在して保守性が低下。コード重複の問題に直面し、リファクタリングの必要性を認識します。
PerlとMojo::UserAgentを使ってニュースサイトから見出しを取得する基本的なWebスクレイパーを作成します。Mojo::DOMでHTMLから要素を抽出する方法を学び、Webスクレイピングの基礎を身につけます。
「Perlでハニーポット侵入レーダーを作ろう」シリーズ全10回の目次です。Observerパターンを使った通知設計を学びながら、セキュリティ監視システムを構築します。
シリーズで作ってきた設計がGoFのObserverパターンそのものだったことを明かします。クラス対応表とPub/Subとの比較で理解を深めましょう。
すべてのObserverを統合し、ハニーポット侵入レーダーを完成させます。ログ・スコア・リスクレベル・アラートが連動する司令室の完成コードをお届けします。
開放閉鎖の原則(OCP)を実践して、新しいRiskLevelObserverを追加します。既存コードを一切変更せずに機能拡張できることを確認しましょう。
IntrusionHubにdoes制約を導入し、IntrusionObserverロールを実装していないオブジェクトの登録を拒否します。型制約による堅牢な設計を学びましょう。
深夜帯だけアラートを有効にするなど、Observerを動的に登録・解除する機能を実装します。attach/detachを活用したランタイム制御で柔軟な運用を実現しましょう。
複数のObserverを一元管理し、侵入イベント発生時に一斉通知するIntrusionHub(司令塔)を実装します。attach/detach/notifyの基本構造を作りましょう。