ライブコーディング(?)で学ぶ  Perl オブジェクト指向   Perl Beginners #4     Lightning Talk      @ytnobody
ネタ的に時間オーバーの予感
銅鑼ないのであまり気にしてませんが
オブジェクト指向とはなんぞや
手前味噌ですが、     Perl Beginners #1 LT   「大ざっぱにオブジェクト指向」http://xrl.us/perlbeginners-roughoop          をご覧ください。
今回はライブコーディングを通して  Perlのオブジェクト指向を 知ってもらおうと思っています
よくある例:Animalクラス●   Cryという変数を持っている    ●   鳴き声を表現●   Barkというメソッドを持っている    ●   Cry変数で指定された鳴き声で鳴くことができる
DEMO: 動物を鳴かせよう●   Animalクラスを定義●   Animalオブジェクトを$catに格納●   $cat に “meow” と鳴かせる●   Animalオブジェクトを$dogに格納●   $dog に “bow” と鳴かせる
シンプルだが面倒●   毎回鳴き声を定義するのが億劫。●   そもそも俺は猫を定義したいんだ!●   じゃあどうする?    ●   「継承」という概念を取り入れよう
継承を取り入れると              継承                   Cat クラス Animal クラス
DEMO: 猫を鳴かせよう●   Animalクラスを継承したCatクラスを定義する    ●   鳴き声は基本”meow”●   $catにCatオブジェクトを格納する●   $catに “meow” と鳴かせる
DEMO: 鳥を飛ばそう●   Animalクラスを派生させて、Birdクラスも定義しよう    ●   鳴き声は特に指定なし    ●   Flyメソッドを追加する        – 鳥だから飛べるはず●   $birdにBirdオブジェクト...
DEMO:キメラをつくろう●   CatとBirdの両方を継承する Chimera クラスを定義●   $chimera に Chimeraオブジェクトを格納●   $chimeraを飛ばす●   さらに”meow”と鳴かせる
コウモリを作りたいが・・・●   コウモリは鳥じゃない●   でも飛べる●   どうする・・・    ●   「飛ぶ」能力だけを他のクラスに分ける        – Mixinといいます        – Exporterを使うといいんじゃない...
DEMO: コウモリを作る●   Animal::Mixin::Fly を定義する●   Batクラスを定義する    ●   鳴き声は”geeh!”    ●   Animal::Mixin::Flyをuseするのを忘れないように。。。●  ...
クラスを定義するのに便利なCPANモジュール●   Class::Accessor::Fast    ●   アクセッサと呼ばれるメソッドを簡単に定義できる●   Mouse    ●   アクセッサに型指定や読み書きの権限を設定できる    ...
DEMOこんどはMouseでコウモリを    つくってみる
まとめ●   “package Foo::Bar;” でクラスを定義    ●   1ファイルにつき1クラスが見通しよくていい感じ●   オブジェクト = bless { some => data, ... }, $classname;    ...
ありがとうございました
Upcoming SlideShare
Loading in …5
×

ライブコーディング(?)で学ぶPerlオブジェクト指向

886 views
847 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
886
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

ライブコーディング(?)で学ぶPerlオブジェクト指向

  1. 1. ライブコーディング(?)で学ぶ Perl オブジェクト指向 Perl Beginners #4 Lightning Talk @ytnobody
  2. 2. ネタ的に時間オーバーの予感
  3. 3. 銅鑼ないのであまり気にしてませんが
  4. 4. オブジェクト指向とはなんぞや
  5. 5. 手前味噌ですが、 Perl Beginners #1 LT 「大ざっぱにオブジェクト指向」http://xrl.us/perlbeginners-roughoop をご覧ください。
  6. 6. 今回はライブコーディングを通して Perlのオブジェクト指向を 知ってもらおうと思っています
  7. 7. よくある例:Animalクラス● Cryという変数を持っている ● 鳴き声を表現● Barkというメソッドを持っている ● Cry変数で指定された鳴き声で鳴くことができる
  8. 8. DEMO: 動物を鳴かせよう● Animalクラスを定義● Animalオブジェクトを$catに格納● $cat に “meow” と鳴かせる● Animalオブジェクトを$dogに格納● $dog に “bow” と鳴かせる
  9. 9. シンプルだが面倒● 毎回鳴き声を定義するのが億劫。● そもそも俺は猫を定義したいんだ!● じゃあどうする? ● 「継承」という概念を取り入れよう
  10. 10. 継承を取り入れると 継承 Cat クラス Animal クラス
  11. 11. DEMO: 猫を鳴かせよう● Animalクラスを継承したCatクラスを定義する ● 鳴き声は基本”meow”● $catにCatオブジェクトを格納する● $catに “meow” と鳴かせる
  12. 12. DEMO: 鳥を飛ばそう● Animalクラスを派生させて、Birdクラスも定義しよう ● 鳴き声は特に指定なし ● Flyメソッドを追加する – 鳥だから飛べるはず● $birdにBirdオブジェクトを格納する● $birdを飛ばす
  13. 13. DEMO:キメラをつくろう● CatとBirdの両方を継承する Chimera クラスを定義● $chimera に Chimeraオブジェクトを格納● $chimeraを飛ばす● さらに”meow”と鳴かせる
  14. 14. コウモリを作りたいが・・・● コウモリは鳥じゃない● でも飛べる● どうする・・・ ● 「飛ぶ」能力だけを他のクラスに分ける – Mixinといいます – Exporterを使うといいんじゃないですか● Animal::Mixin::Fly というクラスに定義してみる
  15. 15. DEMO: コウモリを作る● Animal::Mixin::Fly を定義する● Batクラスを定義する ● 鳴き声は”geeh!” ● Animal::Mixin::Flyをuseするのを忘れないように。。。● $bat に Batオブジェクトを格納する● $batを飛ばす & 鳴かす
  16. 16. クラスを定義するのに便利なCPANモジュール● Class::Accessor::Fast ● アクセッサと呼ばれるメソッドを簡単に定義できる● Mouse ● アクセッサに型指定や読み書きの権限を設定できる ● Mixin(MouseではRoleと呼ぶ)の実装が楽 ● 自動的にuse strict; use warnings; される
  17. 17. DEMOこんどはMouseでコウモリを つくってみる
  18. 18. まとめ● “package Foo::Bar;” でクラスを定義 ● 1ファイルにつき1クラスが見通しよくていい感じ● オブジェクト = bless { some => data, ... }, $classname; ● コンストラクタ(newとか)はこれをreturnする関数● 継承を使うと、親クラスにある機能は全部使える ● 親を複数指定してもOK(キメラのように)● クラスにないメソッドは呼べません ● Mixinを使うと、あとからメソッドを追加できます Exporterでmixinクラスを作る – – Mouse と Mouse::Roleを使って対応する● クラスの最後は真を置くべし! ● 1; とか、 Happy hacking! (; とか。 – 普通はだいたい”1;”
  19. 19. ありがとうございました

×