Developers Summit 2009 2日目にちょこっとだけ行ってきました (モダンPerl+モバイルクラウド)

2日間にわたってテスト関連のセッションを聞きました。
Apache::Test+Seleniumを使ってアプリからサーバからJSまで
一環してテストができるのがとても便利に感じました。

モダンPerlテスト

モダンPerl入門 (CodeZine BOOKS)モダンPerl入門 (CodeZine BOOKS)
牧 大輔

翔泳社 2009-02-10
売り上げランキング : 322

Amazonで詳しく見る
by G-Tools

テストの話
  • PMの視点から
  • 効率的に
  • 合理的に
単位テスト
  • CPが高い
  • 自動化が簡単

テスト!=追加作業
テスト==必須

  • エンジニア達にまともな生活をしてもらうことが本質目的
    • 質の高いコード
    • あとあと泣きを見ない
テストの前提
  • 必ず間違いを犯す
    • typo
    • 意思疎通
    • merge失敗..
  • 瑕疵期間..
  • 仕様変更..
  • debugは後手後手対症療法
予防としてのテスト
  • 将来への投資
現実的な落とし所
  • 80%を網羅を目指す
悪い例)Excel...手順の羅列
  • テストと呼ばない
  • 再現性が重要
  • 手動テストはよろしくない
  • なぜ悪いか..
    • テスト内容が口伝になってしまい蓄積されない
    • テスト実施自体に工数がかかる

うぅ耳が痛いお言葉です。。。
CSSの崩れ等の確認はどうするんでしょ?

自動テスト
  • テスト自体のコストはゼロ
    • svn/git commit後に自動テスト
    • バグを見つければそのバグをつぶすテストスクリプトを足せば再発防止に!!
自動テストフレームワーク
テストにはPerl
  • Perl==CGIというイメージが強すぎてPerlなんてつと出来ないんじゃないの?という声が
総合テスト環境としてのPerl
$ perl Makefile.PL
$ make
$ make test
make test
  • t/ dir のtestを実行
  • proveでも可
$ prove dirctory
$ prove filetest
Perlコミュニティはテストが異常に好き
  • CPAN Testers
    • いろいろなOS等でテストしまくっている
多言語比較
  • Java
    • 長い。。。
Proess p= Runtime....
my $out = qx/cmd/;
テストの極意
  • シンプルなテストを書く
  • Test Anything Protocol(TAP)
TAP Producer

↓STDOUT

TAP Consumer

TAPのPerserはPerlしかないが、Producerは多言語用意されている
リリース

Staging -> make;make teest -> production
Apacheの設定が面倒でテスト出来てないあなたに
  • Apache::Text(CPAN)
    • 複数のApacheインスタンス(port分割)が自在に立ち上げられる
    • mod_perlアプリOK
      • handler stop -> ソース入れ替え-> handler start ...めちゃくちゃめんどくさい
    • PHPもOK
      • TAPの出力さえあれば
    • Seleniumと組み合わせてブラウザ上でJSが立ち上がりつつ統合テスト
まとめ
  • 理想
    • TDD,Extreme,Eclips
  • 現実
    • Heterogenousな環境(Apache/Perl/JS...)
    • Perlは現実的な落とし所を担える
    • とあるハードウェアベンダーでは製品用テストが100%Perlで書かれている
JapanPerl Association
  • 設立目的
    • 言語の普及よりも、雇用等につなげるように
    • 現存のPerlグループは不真面目路線だがJPAは大人のModernPerl
  • 活動予定
    • 2009 4-
    • YAPC
    • Perl技術の啓蒙
    • 研究
    • 学習用リソース

モバイル、クラウドコンピューティング

以下の本が資料として配布されました

SQL Anywhere Studio 9 デベロッパーズガイドSQL Anywhere Studio 9 デベロッパーズガイド
アイエニウェア・ソリューションズ株式会社 株式会社トップスタジオ

翔泳社 2006-02-28
売り上げランキング : 305856

Amazonで詳しく見る
by G-Tools

クラウド
DBMS+WebGIS+自然言語エンジンの紹介
  • モバイルローカルストレージ
クラウド側にデータを置くとは
  • メリット
    • データ提供側:データ追加、更新削除を一極集中
  • デメリット
    • データ利用側:特定サーバの可用性に依存

→localにrich cpuがあるのにもったいない
→必要なデータだけをローカルにおいて、自由に組み合わせる環境を
1.cloud->local

  • a)順次更新可能
    • 地図、施設情報
  • b)一貫性要
    • マスタデータ配信

要するにUltraLight(Anywhere?)はモバイルで稼動可能な省スペースRDBMSっぽい