Changeset 23798 for docs/tokuhirom

Show
Ignore:
Timestamp:
11/15/08 20:57:12 (8 weeks ago)
Author:
tokuhirom
Message:

added slides

Location:
docs/tokuhirom/20081115-llonsen-lt
Files:
1 modified
1 copied

Legend:

Unmodified
Added
Removed
  • docs/tokuhirom/20081115-llonsen-lt/main.txt

    r19456 r23798  
    1 memcachedに最適な言語はなにか 
     1PerlがもっともLightweightな件 
    22<div style="text-align: right"> 
    3 2008-09-17(Wed) Memcachedの未来サミット 
     32008-11-14(Sat) LL温泉のLT 
    44tokuhirom 
    55</div> 
    66---- 
    7 memcachedは速い 
    8 libmemcachedは速い 
     7Lightweight? 
    98---- 
    10 アプリケーションは? 
     9軽量言語とは 
     10脳にかける負担がすくないこと 
    1111---- 
    12 推測するな 
    13 計測せよ 
     12Perl がもっともいい 
    1413---- 
    15 Benchmarking 
     14Perl はプログラマの柔軟性を活かそうとしている 
    1615---- 
    17 incr 10000 times. 
     16WHY? 
    1817---- 
    19 <img src="assets/img/benchmark.png" width="600" /> 
    20 1.2x faster 
     18たとえば 
    2119---- 
    22 結論: <B>memcached</B> をつかうときは <B>Python</B> をつかう 
     20たくさんのメソッドをつくりたい 
    2321---- 
    24 That's all 
     22コピペしたいなあ…… 
     23---- 
     24そこで 
     25---- 
     26Module::Compile::TT 
     27---- 
     28>|| 
     29sub foo { 
     30    my $self = shift; 
     31    $self->{foo} = shift if @_; 
     32    $self->{foo}; 
     33} 
     34sub bar { 
     35    my $self = shift; 
     36    $self->{bar} = shift if @_; 
     37    $self->{bar}; 
     38} 
     39||< 
     40---- 
     41>|| 
     42use tt ( fields => [qw/foo bar/] ); 
     43[% FOREACH fields IN fields %] 
     44sub [% field %] { 
     45    my $self = shift; 
     46    $self−>{'[% field %]'} = shift if @_; 
     47    $self−>{'[% field %]'}; 
     48} 
     49[% END %] 
     50no tt; 
     51||< 
     52---- 
     53ソースコードフィルタ 
     54---- 
     55すばらしいですね 
     56---- 
     57たとえば 
     58---- 
     59>|| 
     60sub get { 
     61    my ($self, $key) = @_; 
     62    $self->{$key}; 
     63} 
     64||< 
     65---- 
     66use Method::Signatures; 
     67---- 
     68>|| 
     69method get($key) { 
     70    $self->{$key}; 
     71} 
     72||< 
     73---- 
     74Perl に実行時に動的に 
     75パッチをあてている! 
     76---- 
     77すばらしいですね 
     78---- 
     79たとえば 
     80---- 
     81Switch 文をかきたいケド 
     82Perl には Switch がない 
     83---- 
     84if 文いっぱいかくのめんどい 
     85---- 
     86use Switch; 
     87---- 
     88>|| 
     89switch ($val) { 
     90    case 1     { print "number 1" } 
     91    case "a"   { print "string a" } 
     92    case /\w+/ { print "pattern" } 
     93} 
     94||< 
     95---- 
     96ソースコードフィルタって 
     97すばらしいですね 
     98---- 
     99SQL を楽に書きたい 
     100---- 
     101>|| 
     102for my $row (SELECT * FROM t;) { 
     103    print "v: $row[0]\n"; 
     104} 
     105||< 
     106---- 
     107実にすばらしいですね!!! 
     108---- 
     109まとめ 
     110---- 
     111Perl の柔軟性は神!