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

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

on

  • 6,764 views

 

Statistics

Views

Total Views
6,764
Slideshare-icon Views on SlideShare
6,758
Embed Views
6

Actions

Likes
6
Downloads
0
Comments
0

3 Embeds 6

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

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

    • シックス・アパート・フレームワーク シックス・アパート株式会社 YAPC::Asia 2009
    • 自己紹介  
    • 重田崇嗣 (Takatsugu Shigeta)
      • TypePad 開発 シニアマネージャー
      • 2005 年 5 月 シックス・アパート株式会社入社 -> TypePad 開発エンジニア
      • 2007 年 11 月 TypePad 開発 シニアマネージャー
      • 現在に至る
    • TypePad Profiles http://www.typepad.com/profiles/
    • http://profile.typepad.com/comewalk  
    •  
    • Where is TypeKey?
    • " TypeKey is now part of TypePad    TypeKey has evolved, and is now part of TypePad." http://www.typepad.com/profiles/typekey-faq.html
    • Get started right away ! http://www.typepad.com/profiles/
    • 会社紹介
    • 会社概要
      • シックス・アパート株式会社 ( 英文 : Six Apart KK)
      • 米国 Six Apart の日本法人
      • SAKK と呼ばれることもあります。
    • http://www.sixapart.jp/anniversary/history.html
    • http://www.sixapart.jp/anniversary/history.html
    • http://www.sixapart.jp/anniversary/history.html
    • http://www.sixapart.jp/anniversary/history.html
    • http://www.sixapart.jp/anniversary/history.html
    • twitter.com/sixapartkk twitter.com/sixapart
    • 製品紹介
    • Movable Type TypePad Vox
    • http://blogs.com/
    • http://jp.blogs.com/
    •  
    • シックス・アパート・フレームワーク
    • 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
    • MT フレームワーク   ArcheType
    • MT フレームワーク
    • 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
    •  
    • http://conferences.yapcasia.org/ya2008/talk/1005
    • use base qw( MT );
    • Movable Type Directory Tree : /
      • +--addons +--alt-tmpl +--default_templates +--extlib +--import
      • +-- lib +--mt-static +--php +--plugins +--search_templates +--themes +--tmpl +--tools
      •  
    • 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
    • (Show Class Tree)
    • Model: MT::Object
    •  
    • ( 例 ) 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
    • 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;
      • }
    • Update / Delete
      • my $entry = MT->model('entry')-> load ($entry_id);
      •  
      • # update
      • $entry->title('YAPC::Asia 2009');
      • $entry-> save ;
      • # delete
      • $entry-> remove ;
    • View: MT::Template
    • $app->load_tmpl( 'list_blog.tmpl', param );
      •     require MT::Template;     my $tmpl = MT::Template->new (
      •         ( 中略 )     );
      MT::Component->load_tmpl
    • 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 );
      •   }
    • Plugins / Addons Callbacks
    • 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
    • Model: TypePad::Object
    •  
      • 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;
    • View: HTML::Template
    • Controller: MT::App
    • Plugins Callbacks / Hooks Portal
    • 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
    • Why Open Matters [It Pro Challenge 2008] http://www.slideshare.net/miyagawa/why-open-matters-it-pro-challenge-2008-presentation
    • YAPC::Asia 2008 - ArcheType room
    • “ 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
    • ArcheType
    •  
    •  
    • 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                );
    • ArcheType の位置づけ Catalyst ArcheType Vox TypePad
    • We are using Catalyst 5.7x
    • ArcheType Directories
      • +-- archetype
      • |  +--lib
      • |  |  +-- ArcheType
      • |  |  |  +-- Assets
      • |  |  +-- Catalyst
      • |  |  |  +-- Plugin
      • |
      • +-- typepad
      • |  +-- lib
      • |  |  +-- ArcheType
      • |  |  |  +-- Assets
      • |  |  +-- Catalyst
      • |  |  |  +-- Plugin
      • |  +-- templates
    • 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
    • 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 );
    • Controller
      • package TypePad::App::C::Dashboard;
      • package ArcheType::C::Asset;
    •  
      • # 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 )
    • forwarding
    • 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
    • 開発関連  
    • ドキュメント MediaWiki Kwiki  
    • ソースコード管理 Subversion Trac  
    • 110000+ (end of Aug 2009) since 1 Dec 2007
    • バグトラッキング FogBugz  
    • http://www.fogcreek.com/FogBugz/
    • ソースコードレビュー Review Board  
    • http://www.review-board.org/
    • コミュニケーション IRC/Jabber/ メール /Polycom  
    • オープンソース  
    • http://code.sixapart.com/
    • http://www.sixapart.com/labs/
    • http://github.com/sixapart
    • http://conferences.yapcasia.org/ya2008/
    • http://conferences.yapcasia.org/ya2008/talk/1005
    • http://movabletype.org/
    •  
    • http://conferences.yapcasia.org/ya2008/talk/1145
    • http://start.typepad.jp/typecast/#typecast
    • http://start.typepad.jp/typecast/#emoji-about
    •  
    • http://www.sixapart.jp/ http://www.sixapart.com/
    • ご清聴ありがとうございました!