• Save
シックス・アパート・フレームワーク
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

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

  • 7,063 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
7,063
On Slideshare
7,057
From Embeds
6
Number of Embeds
3

Actions

Shares
Downloads
0
Comments
0
Likes
6

Embeds 6

http://www.slideshare.net 4
http://paper.li 1
http://s.deeeki.com 1

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. ご清聴ありがとうございました!