モダンな Perl プログラミング

3,725 views
3,765 views

Published on

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

No Downloads
Views
Total views
3,725
On SlideShare
0
From Embeds
0
Number of Embeds
209
Actions
Shares
0
Downloads
11
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

モダンな Perl プログラミング

  1. 1. モダンな Perl プログラミング 天野卓 @ ToI 企画
  2. 2. 自己紹介 佐久市で Web アプリケーションを開発しています。 LAMP Movable Type のプラグインをフリーソフトウェアと して配布しています。 http://tec.toi-planning.net CPAN でも活動しています。 http://search.cpan.org/~usualoma/
  3. 3. アジェンダ Perl とは Perl5 の言語としての特徴 モダンなプログラミングスタイル Moose Catalyst 最近の動向 PSGI AnyEvent
  4. 4. Perl とは スクリプト言語 必要かつ十分に実行速度が高速 柔軟な文法と高い拡張性 豊富な拡張ライブラリ TMTOWTDI (There's more than one way to do it) 「やり方はひとつじゃない」
  5. 5. Perl の歴史 1987 年 1.0 1994 年 5.0 オブジェクト指向プログラミングをサポート 2000 年 5.6 our 文 や warning プラグマの導入 2002 年 5.8 Encode が標準ライブラリになる 2010 年 5.12 6
  6. 6. どこで使われているか? S 2ファクトリー株式会社 株式会社ガイアックス 株式会社ディー・エヌ・エー 株式会社ミクシィ 株式会社モバイルファクトリー 株式会社ライブドア 株式会社リクルート( Media Technology Labs ) YAPC::Asia Tokyo 2010 の協賛企業
  7. 7. Perl5 の言語としての特徴 “use strict; use warnigs;” で安全なプログラミング 明示的に指定するスコープ 後付けの結果として柔軟なオブジェクト指向 リフレクション アトリビュート
  8. 8. use strict; use warnings; (1)
  9. 9. use strict; use warnings; (2)
  10. 10. use strict; use warnings; (3)
  11. 11. use strict; use warnings; (4)
  12. 12. 明示的に指定するスコープ (1)
  13. 13. 明示的に指定するスコープ (2)
  14. 14. 明示的に指定するスコープ (3)
  15. 15. 明示的に指定するスコープ (4)
  16. 16. オブジェクト指向 (1)
  17. 17. オブジェクト指向 (2)
  18. 18. オブジェクト指向 (3)
  19. 19. リフレクション
  20. 20. アトリビュート (1)
  21. 21. アトリビュート (2)
  22. 22. アトリビュート (3)
  23. 23. モダンなプログラミングスタイル Moose Catalyst
  24. 24. Moose A Postmodern Object System for Perl Perl の高い拡張性を利用して、 Perl 上で近代的なオプ ジェクト指向プログラミングをサポートしようといういうモ ジュール
  25. 25. 代表的な Moose の機能 オブジェクトの定義 宣言的なオブジェクト定義 オブジェクトのロール Java の Interface や Ruby の mixin みたいな機能
  26. 26. オブジェクトの定義 (1)
  27. 27. オブジェクトの定義 (2)
  28. 28. オブジェクトの定義 (3)
  29. 29. オブジェクトの定義 (4)
  30. 30. オブジェクトのロール Traits(Composable Units of Behavior) の概念の実現 http://web.cecs.pdx.edu/~black/publications/TR_ CSE_02-012.pdf Java の Interface や Ruby の mixin みたいな機能
  31. 31. オブジェクトのロール (1)
  32. 32. オブジェクトのロール (2)
  33. 33. オブジェクトのロール (3)
  34. 34. オブジェクトのロール (4)
  35. 35. オブジェクトのロール (5)
  36. 36. オブジェクトのロール (6)
  37. 37. オブジェクトのロール (7)
  38. 38. オブジェクトのロール (8)
  39. 39. Catalyst MVC アーキテクチャを持つ WAF いくつかの WAF に強く影響を受けている Ruby on Rails, Maypole, Spring プラグイン ジェネレータースクリプト 組み込みのサーバー テスト
  40. 40. プロジェクトの生成
  41. 41. コントローラーの雰囲気
  42. 42. 最近の動向 PSGI フレームワークとサーバをつなぐ仕様 WSGI や Rack を参考にして作られた AnyEvent イベント駆動プログラミングのモジュール
  43. 43. 以上です
  44. 44. ご静聴ありがとうございました

×