シックス・アパート・フレームワーク

  • 5,249 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
5,249
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
0
Comments
0
Likes
6

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. シックス・アパート・フレームワーク シックス・アパート株式会社 YAPC::Asia 2009
  • 2. 自己紹介  
  • 3. 重田崇嗣 (Takatsugu Shigeta)
    • TypePad 開発 シニアマネージャー
    • 2005 年 5 月 シックス・アパート株式会社入社 -> TypePad 開発エンジニア
    • 2007 年 11 月 TypePad 開発 シニアマネージャー
    • 現在に至る
  • 4. TypePad Profiles http://www.typepad.com/profiles/
  • 5. http://profile.typepad.com/comewalk  
  • 6.  
  • 7. Where is TypeKey?
  • 8. " TypeKey is now part of TypePad    TypeKey has evolved, and is now part of TypePad." http://www.typepad.com/profiles/typekey-faq.html
  • 9. Get started right away ! http://www.typepad.com/profiles/
  • 10. 会社紹介
  • 11. 会社概要
    • シックス・アパート株式会社 ( 英文 : Six Apart KK)
    • 米国 Six Apart の日本法人
    • SAKK と呼ばれることもあります。
  • 12. http://www.sixapart.jp/anniversary/history.html
  • 13. http://www.sixapart.jp/anniversary/history.html
  • 14. http://www.sixapart.jp/anniversary/history.html
  • 15. http://www.sixapart.jp/anniversary/history.html
  • 16. http://www.sixapart.jp/anniversary/history.html
  • 17. twitter.com/sixapartkk twitter.com/sixapart
  • 18. 製品紹介
  • 19. Movable Type TypePad Vox
  • 20. http://blogs.com/
  • 21. http://jp.blogs.com/
  • 22.  
  • 23. シックス・アパート・フレームワーク
  • 24. Product History
    • 2003 Released Movable Type 2.6 2003 Launched TypePad 2005 Acquired LiveJournal 2006 Released Movable Type 3.3 2006 Launched Vox 2007 Released Movable Type 4 2009 New TypePad
    • 2009 Movable Type 5
  • 25. MT フレームワーク   ArcheType
  • 26. MT フレームワーク
  • 27. Product History
    • 2003 Released Movable Type 2.6 2003 Launched TypePad 2005 Acquired LiveJournal 2006 Released Movable Type 3.3 2006 Launched Vox 2007 Released Movable Type 4 2009 New TypePad
    • 2009 Movable Type 5
  • 28.  
  • 29. http://conferences.yapcasia.org/ya2008/talk/1005
  • 30. use base qw( MT );
  • 31. Movable Type Directory Tree : /
    • +--addons +--alt-tmpl +--default_templates +--extlib +--import
    • +-- lib +--mt-static +--php +--plugins +--search_templates +--themes +--tmpl +--tools
    •  
  • 32. Movable Type Directory Tree: lib/MT
    • +--MT |  +--App |  |  +--Search |  +--ArchiveType |  +--Asset |  +--Auth |  +--BackupRestore |  +--Cache |  +--CMS |  +--Compat |  +--FileMgr |  +--I18N |  +--L10N
    • |  +--Meta |  +--Object |  +--ObjectDriver |  |  +--DDL |  |  +--Driver |  |  |  +--Cache |  |  |  +--DBD |  |  +--SQL |  +--Plugin |  +--Revisable |  +--Summary
    |  +--Template |  |  +--Context |  |  +--Tags |  +--Theme |  +--TheSchwartz |  +--Upgrade |  +--Util |  |  +--Archive |  |  +--YAML |  +--Worker
  • 33. (Show Class Tree)
  • 34. Model: MT::Object
  • 35.  
  • 36. ( 例 ) MT::Entry
    • package MT::Entry; use strict;
    • use base qw( MT::Object MT::Taggable MT::Scorable MT::Summarizable MT::Revisable );
    • __PACKAGE__->install_properties({     column_defs => {         'id' => 'integer not null auto_increme
  • 37. Create / Read
    • # create new
    • my $entry = MT->model('entry')->new;
    • $entry-> save ;
    • # read one
    • my $entry = MT->model('entry')-> load ($entryid);
    • # use iterator
    • my $iter = MT::Tag-> load_iter ( { id => @tag_ids } );
    • while (my $tag = $iter->()) {
    •     print $tag->name;
    • }
  • 38. Update / Delete
    • my $entry = MT->model('entry')-> load ($entry_id);
    •  
    • # update
    • $entry->title('YAPC::Asia 2009');
    • $entry-> save ;
    • # delete
    • $entry-> remove ;
  • 39. View: MT::Template
  • 40. $app->load_tmpl( 'list_blog.tmpl', param );
  • 41.
    •     require MT::Template;     my $tmpl = MT::Template->new (
    •         ( 中略 )     );
    MT::Component->load_tmpl
  • 42. Controller: MT::App
  • 43.
    • 1     mt.cgi?__mode=list_blog にアクセス
    • 1.1   MT::CMS::Blog->list へディスパッチ
    •   use MT::Bootstrap App => 'MT::App::CMS';
    • 1.1.1 ページ作成
    •   sub list {
    •   ( 中略 )
    •     return $app->load_tmpl( 'list_blog.tmpl', param );
    •   }
  • 44. Plugins / Addons Callbacks
  • 45. Product History
    • 2003 Released Movable Type 2.6 2003 Launched TypePad 2005 Acquired LiveJournal 2006 Released Movable Type 3.3 2006 Launched Vox 2007 Released Movable Type 4 2009 New TypePad
    • 2009 Movable Type 5
  • 46. Model: TypePad::Object
  • 47.  
  • 48.
    • Create
    •   my $entry = MT::Entry->new; $entry->save;
    • Read
    •   my $entry = MT::Entry->lookup($id);
    •  
    •   my $iter = MT::Entry->search({domain=>'help.typepad.jp'});
    •   my $entry = $iter->();
    • Update
    •   my $entry = MT::Entry->lookup($id); $entry->save;
    • Delete
    •   my $entry = MT::Entry->lookup($id); $entry->delete;
  • 49. View: HTML::Template
  • 50. Controller: MT::App
  • 51. Plugins Callbacks / Hooks Portal
  • 52. Product History
    • 2003 Released Movable Type 2.6 2003 Launched TypePad 2005 Acquired LiveJournal 2006 Released Movable Type 3.3 2006 Launched Vox 2007 Released Movable Type 4 2009 New TypePad
    • 2009 Movable Type 5
  • 53. Why Open Matters [It Pro Challenge 2008] http://www.slideshare.net/miyagawa/why-open-matters-it-pro-challenge-2008-presentation
  • 54. YAPC::Asia 2008 - ArcheType room
  • 55. “ We’re migrating TypePad to a next-generation platform, essentially a new infrastructure based on the best of what we’ve learned from Vox, Movable Type and over five years of development on TypePad” July 31, 2008 Building A Bright New TypePad http://everything.typepad.com/blog/2008/07/building-a-br-1.html
  • 56. ArcheType
  • 57.  
  • 58.  
  • 59. package TypePad::App ;
    • use Catalyst qw( ArcheType                  ArcheType::Analytics                  ArcheType::Data                  ArcheType::I18N                  ArcheType::iPhone                  ArcheType::JSONRPC                  ArcheType::Mobile                  ArcheType::TokenValidation                  Authentication::TypeCore                  AtomServer                  XMLRPC                  Compress::Gzip                  MortalForward                  PathFilters                );
  • 60. ArcheType の位置づけ Catalyst ArcheType Vox TypePad
  • 61. We are using Catalyst 5.7x
  • 62. ArcheType Directories
    • +-- archetype
    • |  +--lib
    • |  |  +-- ArcheType
    • |  |  |  +-- Assets
    • |  |  +-- Catalyst
    • |  |  |  +-- Plugin
    • |
    • +-- typepad
    • |  +-- lib
    • |  |  +-- ArcheType
    • |  |  |  +-- Assets
    • |  |  +-- Catalyst
    • |  |  |  +-- Plugin
    • |  +-- templates
  • 63. Model
    • my $user = ArcheType::M::User->lookup_by_email(
    •     'ben@sixapart.com’
    • ); 
    •  
    •  
    • How we build Vox
    • http://www.slideshare.net/miyagawa/how-we-build-vox
  • 64. View
    • typepad/lib/TypePad/App/V/JSON.pm:
    • use base qw( Catalyst::View::JSON );
    • typepad/lib/TypePad/App/V/TT.pm:
    • use base qw( TypeCore::Catalyst::View::TT );
    • typepad/lib/TypePad/App/V/Atom.pm:
    • use base qw( Catalyst::View::Atom::XML );  
    • typepad/lib/TypePad/App/V/XML.pm:
    • use base qw( Catalyst::View );
  • 65. Controller
    • package TypePad::App::C::Dashboard;
    • package ArcheType::C::Asset;
  • 66.  
    • # Access to http://www.typepad.com/site/blogs/<id>/dashboard
    • sub dashboard : PathPart Chained( 'blog' )
    • # Access to http://www.typepad.com/site/blogs/<id>/comment/<id>/
    • sub comment : PathPart( 'comment' ) Chained( 'blog' ) CaptureArgs( 1 )
  • 67. forwarding
  • 68. Why did you adopt Catalyst?
    • we wanted to move away from managing our own application framework (MT::App, in MT and TP)
    • we liked the API that Catalyst provided (Request/Response objects, etc)
    • we liked the dispatching mechanism
    • Catalyst was the first such framework for Perl that felt like a good fit for us
  • 69. 開発関連  
  • 70. ドキュメント MediaWiki Kwiki  
  • 71. ソースコード管理 Subversion Trac  
  • 72. 110000+ (end of Aug 2009) since 1 Dec 2007
  • 73. バグトラッキング FogBugz  
  • 74. http://www.fogcreek.com/FogBugz/
  • 75. ソースコードレビュー Review Board  
  • 76. http://www.review-board.org/
  • 77. コミュニケーション IRC/Jabber/ メール /Polycom  
  • 78. オープンソース  
  • 79. http://code.sixapart.com/
  • 80. http://www.sixapart.com/labs/
  • 81. http://github.com/sixapart
  • 82. http://conferences.yapcasia.org/ya2008/
  • 83. http://conferences.yapcasia.org/ya2008/talk/1005
  • 84. http://movabletype.org/
  • 85.  
  • 86. http://conferences.yapcasia.org/ya2008/talk/1145
  • 87. http://start.typepad.jp/typecast/#typecast
  • 88. http://start.typepad.jp/typecast/#emoji-about
  • 89.  
  • 90. http://www.sixapart.jp/ http://www.sixapart.com/
  • 91. ご清聴ありがとうございました!