先週末の YAPC::Asia 2009 のカンファレンスに引き続き、特別研修『Moose入門、モダーンなオブジェクト指向システム』に参加してきた。
研修の内容は、Moose とはなんぞやから始まり、以下(だいたい)7 部構成の入門講座。
- Moose Concepts : コンセプト
- ざっと機能一通りみてみる
- なぜ Moose なのか
- Classes : Class の基礎から使い方
- Moose::Object が何持ってるかとか
- BUIDLARGS, extends, override, super の使い方
- Moose 使ったあとの後始末 (no Moose;)
- Role : Role の基礎から使いかた
- Role の持つ意味
- 使い方
- alias で衝突回避
- Basic Attributes : Attribute いろいろ
- required, default/builder, lazy, clearer, predicate の使い方、使い道
- init_arg
- attribute の継承してみたり
- accessor を変更してみたり
- Method Modifires : Method Modifire いろいろ
- before / after / around の使い方、使い道
- Role での使いかた
- augment / inner の使い方、使い道(あんまりないよ><)
- Types : 型制約
- Built-in Type たち
- 自分で subtype 作る
- shortcuts (class_type/role_type/duck_type/enum)とか、anonymous subtype とか
- corecion のあれこれ
- MooseX たち
- Advanced Attributes : もっと Attribute
- Weak References と weak_ref => 1
- Triggers
- Delegation / Native Delegation
- Traits / MetaClasses
- おまけ
- 有用な MooseX たちが Task::Moose のってるよ
- MooseX::Declare
- Extension 書くのはむずいよ
ただ解説があるだけじゃなくて、各パートごとにエクササイズが用意されていて(テストコードと、やること書いてある POD)、
- 説明きいて、考えて、質問して
- フレッシュな記憶のうちにごりごり考えながらエクササイズ
- ちょっと実装して
- prove
- 直す、次の実装する
- 以上を、すべてのテストがパスするまで繰り返し
という進め方。
はっきりいって、大充実の内容でした。1日中ずっと集中してた。解説もわかりやすかったし、エクササイズもテストコードが用意されていたおかげで、確認しながら進めれたのでとてもスムーズ。
Moose は、去年ひととおりチュートリアルやっただけで(しかも中途半端に)、それ以降は使うこともなく…。それが最近 Catalyst が 5.8 になったりで、アレがアレしたりで、またやらねばと思ってたところにちょうどこの研修の開催を知って、なんにも考えずに飛びついたけど(お金ないんだけど…)、大正解だった。
どうかんがえても、今日の内容は週末ちまちま勉強してるだけじゃ1日ではこなせない内容。自分で POD 見ながら try and error で使い方を見つけていく、身につけていく方法はそれはそれでためになるけど、多少のお金をはらって短時間で凝縮して、変な苦労なくスムーズに学習できるとしたら、そんなラッキーなことはないかな、と。
残念ながら参加者は 11 名とちょっと寂しい状況ではあったけど、たぶん参加者は全員大満足のうちに帰ったはず。ジャンプスタートの機会を手にした数少ない人間なので。ちゃんと復習やって、妄想してないで、作るもん作っていこう。
JPA++