Tags
413 ページ目
Moo
共有した弾の種類は自分の位置を知らない。描画のたびに座標を渡して弾を動かす【外部状態】
同じ種類の弾を2回 new してしまう。なければ作って返すキャッシュで使い回す【オブジェクトプール】
同じ見た目の弾が100発とも形や色を持っている。種類と位置に分けて共有する【内部状態と外部状態】
弾を1000発撃ちたい。素朴に全属性を持たせると1発約600バイト、1万発で約6MBになる【メモリ計測】
見出しの階層をif/elseで組むと分岐が爆発する。PerlとMooのCompositeで目次ツリーを組み直す全8回【目次】
リンク付きの目次を、既存のクラスに触れずに足す。見出しからアンカーIDを作る【開放閉鎖原則】
同じツリーからMarkdown・HTML・JSONの目次を出す。入れ子のHTMLも再帰で正しく閉じる【複数フォーマット出力】
見出しの配列から親子のツリーを自動で組む。H2を飛ばしたH3も複数のH1もスタック1本で扱う【スタック】
子を持つ見出しも持たない見出しも、同じrenderで描く。分岐を書かずに階層を出す【Composite】
見出しがH1からH3に飛ぶと、ulが2重に開いて目次のHTMLが壊れる。分岐で塞ぐと増え続ける【条件分岐の爆発】
インデントを足せば目次らしく見える。でも配列には親子関係がなく、入れ子のHTMLは組みにくい【フラット配列】
「## 第1章」からレベル2と「第1章」を取り出す。正規表現1本で見出しを抜く【キャプチャ】
目次ジェネレーターの土台に、Markdownを全行読み込むクラスをPerlとMooで作る【lazy】
SQLを文字列結合で組むと、引数が増えてインジェクションも通る。PerlとMooのBuilderで組み直す全8回【目次】
from を呼び忘れても、並び順に変な値を渡しても、SQLができてしまう。croak で止めてテストで固める【バリデーション】
1
…
14
15
16
…
28