Perl と Moo で、呪われた高解像度アートを「覗き見」できるギャラリーを作る全5回の連載です。画面が固まる、誰でも見られてしまう、毎回待たされる、履歴が残らない、画像が外部サーバーへ移る。1回ごとに困りごとを1つ足し、そのたびに代理オブジェクト(Proxy パターン)で片付けます。
各回は前の回のコードに手を足していく作りなので、通して読むなら第1回からが早道です。このページは目次を兼ねた案内板です。入口は「どこから読むか」で、困りごとが決まっているなら「困りごとから探す」で、順に追うなら「全話一覧」で選んでください。
どこから読むか
- 第1回 — 最初から順に作るなら。全画像を読み込んで画面が固まる様子を確かめ、必要なときだけ読み込む仕組みに直す。前提は Moo のクラス定義の基礎
- 第2回 — 権限チェックを本来の処理から切り離したいなら。第1回のコードに、鍵付きの絵を足したところから始まる
- 第5回 — 呼び出し側を変えずに、ローカルからネットワーク越しへ移したいなら。第4回までのコードが前提
困りごとから探す
重い処理を、必要になるまで走らせたくない
本来の処理に、周辺の仕事が混ざって膨らむ
呼び出し側を変えずに、裏の事情を変えたい
- 第5回 — 画像をローカルから外部サーバーへ移す
全話一覧
- 高解像度で画面が固まる(Virtual Proxy)
- 呪いの絵は誰でも見ていい?(Protection Proxy)
- 何度も見るなら貯めたい(Caching Proxy)
- 誰が覗いたか記録せよ(Logging Proxy)
- 遠隔アーカイブへ引っ越し(Remote Proxy)
Proxy の5種類
| Proxy種類 | 主な目的 |
|---|---|
| Virtual Proxy | 遅延初期化(重いオブジェクトを必要時まで生成しない) |
| Protection Proxy | アクセス制御(権限のあるユーザーのみ許可) |
| Caching Proxy | キャッシュによる高速化(結果を保存して再利用) |
| Logging Proxy | 監査ログの集約(アクセス履歴を記録) |
| Remote Proxy | リモートアクセスの抽象化(ネットワーク越しを透過的に) |
前提知識
- Perl v5.36 以降の基本文法(signatures、postfix dereference など)
- Moo によるクラス定義の基礎(has、extends、with)
- 「Mooで覚えるオブジェクト指向プログラミング」シリーズを読み終えていると、スムーズに進みます

