Featured image of post ギャラリーが固まる、誰でも見られる、毎回遅い。5つの困りごとをProxyで片付ける全5回【目次】

ギャラリーが固まる、誰でも見られる、毎回遅い。5つの困りごとをProxyで片付ける全5回【目次】

Perl と Moo で、呪われた高解像度アートのギャラリーを作りながら、画面が固まる・誰でも見られる・毎回待たされる・履歴が残らない・外部へ移すという5つの困りごとを、代理オブジェクト(Proxy)で順に片付ける全5回の連載の目次です。困りごとからも選べます。

Perl と Moo で、呪われた高解像度アートを「覗き見」できるギャラリーを作る全5回の連載です。画面が固まる、誰でも見られてしまう、毎回待たされる、履歴が残らない、画像が外部サーバーへ移る。1回ごとに困りごとを1つ足し、そのたびに代理オブジェクト(Proxy パターン)で片付けます。

各回は前の回のコードに手を足していく作りなので、通して読むなら第1回からが早道です。このページは目次を兼ねた案内板です。入口は「どこから読むか」で、困りごとが決まっているなら「困りごとから探す」で、順に追うなら「全話一覧」で選んでください。

どこから読むか

  • 第1回 — 最初から順に作るなら。全画像を読み込んで画面が固まる様子を確かめ、必要なときだけ読み込む仕組みに直す。前提は Moo のクラス定義の基礎
  • 第2回 — 権限チェックを本来の処理から切り離したいなら。第1回のコードに、鍵付きの絵を足したところから始まる
  • 第5回 — 呼び出し側を変えずに、ローカルからネットワーク越しへ移したいなら。第4回までのコードが前提

困りごとから探す

重い処理を、必要になるまで走らせたくない

  • 第1回 — 全画像の読み込みで画面が固まる
  • 第3回 — 同じ絵を開くたびにロードが走る

本来の処理に、周辺の仕事が混ざって膨らむ

  • 第2回 — 画像クラスに権限チェックを直接書いている
  • 第4回 — ログ出力があちこちのクラスに散らばっている

呼び出し側を変えずに、裏の事情を変えたい

  • 第5回 — 画像をローカルから外部サーバーへ移す

全話一覧

  1. 高解像度で画面が固まる(Virtual Proxy)
  2. 呪いの絵は誰でも見ていい?(Protection Proxy)
  3. 何度も見るなら貯めたい(Caching Proxy)
  4. 誰が覗いたか記録せよ(Logging Proxy)
  5. 遠隔アーカイブへ引っ越し(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で覚えるオブジェクト指向プログラミング」シリーズを読み終えていると、スムーズに進みます

参考リンク

オブジェクト指向における再利用のためのデザインパターン amazon.co.jp
comments powered by Disqus
システム開発・AIワークフローのご相談は Meetsource へ
Hugo で構築されています。
テーマ Stack は Jimmy によって設計されています。