8

Click here to load reader

Whyfields

Embed Size (px)

Citation preview

Page 1: Whyfields

%FIELDS の勧め!

小林 弘明CPAN ID: hkoba

Twitter: hkoba

Page 2: Whyfields

プロフィール● perl5 歴 (多分 1994?から)

● 学生時代に Perl/Tk (800.400?)の日本語化● Oreilly の Perl Conference に呼んでもらえた!● 今は個人事業主(一応)

– CPANモジュール: YATT::Lite

– perl 屋さん募集中– FastCGI 15年目

Page 3: Whyfields

YAPC 個人的に嬉しかったこと!

● RJBS の YAPC 感想ブログ● オイラの名前が!

Page 4: Whyfields

RJBS と話したこと

● use fields は将来もコアに残る?– yes!

● んで fields って?

Page 5: Whyfields

%FIELDS 使ってますか?

package Foo::Bar::Baz {

BEGIN { our %FIELDS = (foo => 1) }

};

sub Foo () {'Foo::Bar::Baz'}

my Foo $foo = {};

$foo->{foo} = 1; # ok.

$foo->{bar} = 3; # COMPILE ERROR!

Page 6: Whyfields

コンパイル時検査!

● perl -wc でエラー検出– エディタの保存フックで検査すると幸せ!

● 実行時コストゼロ!

● object の実際のクラスには依存しない。● bless してない 生 HASH すらおk!

Page 7: Whyfields

デモ PSGI Env を検査!

Page 8: Whyfields

発展

● クラスビルダ– use YATT::Lite::Types

● (C の) struct 的な補助レコードを安全に書ける● アクセサの自動生成