BookShelfクラスにiterator()メソッドを追加し、外部から走査機能を取得できるようにします。while文を使った新しいループ処理も紹介。
Moo::Roleを使って走査ロジックを専用クラスに分離。has_next()とnext()メソッドを持つインターフェースを定義し、責任の分離を実現します。
本棚アプリの全ての本を表示する機能を追加。forループで配列に直接アクセスするとカプセル化が崩れる問題を体験し、より良い設計を考えます。
Perl入門者向けにMooを使った本棚アプリの作り方を解説。Bookクラスの定義から始め、オブジェクト指向プログラミングの基礎を実践的に学びます。
Perl入学式卒業者向け。天気情報ツールを作りながらAdapterパターンを自然に学べる全5回シリーズの目次記事です。
橋渡しクラスの正体はAdapterパターン!GoFデザインパターンの解説と応用例を紹介。Perl/Moo連載最終回。
3つ目のサービスを追加し複数サービスをループ処理。統一インターフェースの効果を体験します。Perl/Moo連載第4回。
異なるインターフェースを持つサービスを統一する「橋渡し役」を作成。委譲とラッピングを学びます。Perl/Moo第3回。
別の天気サービスを追加したいがメソッド名や戻り値が違う!異なるインターフェースの問題を体験。Perl/Moo第2回。
Perl入学式卒業者向け。Mooを使った天気情報ツール連載の第1回。シンプルなWeatherServiceクラスを作成します。
「URL短縮サポーターを作ってみよう」シリーズの目次記事です。各回へのリンクと簡単な説明をまとめています。
URL短縮サービスが完成!見た目を整え、Mooでクラス化してリファクタリングします。シリーズ全12回の学びを振り返り、次のステップへ進みましょう。
悪意のあるURLを拒否するバリデーション機能を実装します。Data::Validate::URIでHTTP/HTTPSスキームのみを許可し、セキュリティを強化しましょう。
短縮URLから元のURLへリダイレクトする機能を実装します。HTTPリダイレクト(302 Found)の仕組みと301との違いを学びましょう。
短縮コードから元のURLを検索する方法を学びます。SELECT文とfetchrow_hashrefでデータベースからデータを取得しましょう。