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

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    3 Favorites & 1 Event

    シックス・アパート・フレームワーク - Presentation 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 );
      •     require MT::Template;     my $tmpl = MT::Template->new (
      •         ( 中略 )     );
      MT::Component->load_tmpl
    41. Controller: MT::App
      • 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 );
      •   }
    42. Plugins / Addons Callbacks
    43. 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
    44. Model: TypePad::Object
    45.  
      • 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;
    46. View: HTML::Template
    47. Controller: MT::App
    48. Plugins Callbacks / Hooks Portal
    49. 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
    50. Why Open Matters [It Pro Challenge 2008] http://www.slideshare.net/miyagawa/why-open-matters-it-pro-challenge-2008-presentation
    51. YAPC::Asia 2008 - ArcheType room
    52. “ 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
    53. ArcheType
    54.  
    55.  
    56. 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                );
    57. ArcheType の位置づけ Catalyst ArcheType Vox TypePad
    58. We are using Catalyst 5.7x
    59. ArcheType Directories
      • +-- archetype
      • |  +--lib
      • |  |  +-- ArcheType
      • |  |  |  +-- Assets
      • |  |  +-- Catalyst
      • |  |  |  +-- Plugin
      • |
      • +-- typepad
      • |  +-- lib
      • |  |  +-- ArcheType
      • |  |  |  +-- Assets
      • |  |  +-- Catalyst
      • |  |  |  +-- Plugin
      • |  +-- templates
    60. 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
    61. 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 );
    62. Controller
      • package TypePad::App::C::Dashboard;
      • package ArcheType::C::Asset;
    63.  
      • # 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 )
    64. forwarding
    65. 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
    66. 開発関連  
    67. ドキュメント MediaWiki Kwiki  
    68. ソースコード管理 Subversion Trac  
    69. 110000+ (end of Aug 2009) since 1 Dec 2007
    70. バグトラッキング FogBugz  
    71. http://www.fogcreek.com/FogBugz/
    72. ソースコードレビュー Review Board  
    73. http://www.review-board.org/
    74. コミュニケーション IRC/Jabber/ メール /Polycom  
    75. オープンソース  
    76. http://code.sixapart.com/
    77. http://www.sixapart.com/labs/
    78. http://github.com/sixapart
    79. http://conferences.yapcasia.org/ya2008/
    80. http://conferences.yapcasia.org/ya2008/talk/1005
    81. http://movabletype.org/
    82.  
    83. http://conferences.yapcasia.org/ya2008/talk/1145
    84. http://start.typepad.jp/typecast/#typecast
    85. http://start.typepad.jp/typecast/#emoji-about
    86.  
    87. http://www.sixapart.jp/ http://www.sixapart.com/
    88. ご清聴ありがとうございました!

    + Takatsugu ShigetaTakatsugu Shigeta, 4 months ago

    custom

    1521 views, 3 favs, 0 embeds more stats

    More info about this presentation

    © All Rights Reserved

    • Total Views 1521
      • 1521 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 3
    • Downloads 0
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Groups / Events