Challenge Engineer Life !

エンジニア人生を楽しみたい!仕事や趣味で学んだ技術的なことを書いていくブログです。

Developers Summit 2013ことデブサミに行ってきました

業務都合にて午後からの参加となりましたが、以下4つのセッションに参加しました。

各々簡単に感想を。

自動改札機の運賃計算プログラムのデバッグ手法

対象となるシステムは違えど、開発者として、この話は本当に面白かったです。

「自動改札機の運賃計算プログラム」と聞いただけで、複雑だろうな…と開発者は誰もが思うと思いますが、中身を聞くと本当に複雑でした(^^;

駅と経路の組合せ、それに定期券有効区間が入ったり。さらには乗換時間や方向性(A->BとB->Aで違う)、子供料金…などなど。
エリア固有の特殊ルールもあったりするらしく、もう考えただけで「ひええ」という感じでした。

テーマとしては3つあって

  • 見落としのないテスト
  • 大規模なテスト
  • 仕様書のテスト

とありました。

見落としのないテスト

全パターン網羅なんてのは非現実的で、タイトルにあるように10の40乗とかそういうオーダになるようです。
アプローチとしては、まず駅や乗換といった概念をモデル化して、その中でテストケース全体を洗い出すとのこと。
そのテストケースから3段階に分けて絞り込んでいく。あり得ないパターンとか、よく考えたら不要なパターンとか…。

で絞り込んだパターンをやるそうです。なるほど。
漏れるケースも当然あるとのことですが、絞込みの定義をしっかりすることで、なぜ漏れたか、も明確とのこと。ふむぅ。

これは自分達も同じことできるなぁ、と思いました。
業務システムでも各業務フローごとに様々なパターンがあって、ユーザによる違いもあるし、マスタデータによっても違いがでるし、組合せを考えるとすごいパターンあったりします。

でも現実的には、業務的にありえないケースもあったりするわけで、そこに時間をかけるより、もっと本質的な部分に時間をかけるべきだよなぁ、と。参考になりました。

大規模なテスト

これはホント大がかりだなぁ、と思ったのですが、本番用ソフトウェアとは全く別の検証用ソフトウェアを開発しているとのこと。

しかも、完全に別のチーム、別のプログラム、別のアルゴリズム…で、テストデータのみを共有して
結果が一致するか突き当てをしているそうです(^^;すげぇ。

本番用は処理性能やメモリなどに色々な制限があり、色々工夫した運賃計算アルゴリズムになるらしい。
検証用はそういう制限を無視して、できるだけ正確な運賃計算をするような仕組みにすることを意識して作られているとのこと。ひー。

仕様書のテスト

これまた斬新だなぁ、と個人的には思ったのですが、テスト仕様書自体に曖昧性が入り込むため
形式記述言語VDM++なるもので仕様書を定義する試みをしているそうです。

例として挙げられていたのが「6の字定期」なるものでしたが、なんでも山手線の丸と埼玉へ延びるラインが6にみえるからそう呼ばれるらしいのですが、これの定義自体は結構人それぞれで違うことがあるらしく、そういった曖昧性を排除するために形式的手法を使ったとのこと。

ほええ。

そんなこんなで、テストの観点に関してとても勉強になるセッションでした。

The Action for Making the future Java

発表資料が公開されています。

http://www.slideshare.net/OracleMiddleJP/the-action-for-making-the-future-java-16521009

ので私がここで書くことはあまりなかったり(^^;

今回、聞いているこちら側が少し恥ずかしくなるくらい、寺田さんの「Javaが好き!」という気持ちが伝わるプレゼンでした(^^;

そして個人的には、発表の中で紹介されていた「Javaの10年」という書籍がすごく読みたくなりました。歴史好きなので。

ただ残念ながら絶版らしく、Amazonの中古で買うかどうか悩ましい所。
とりあえず、会社の古参な人に持ってないか聞いてみようと思います。

あと発表の中でNIO2のことに触れられていて、昨日自分が仕事で書いたテスト用のファイル処理で古いIOを利用していたことを認識し、無事帰社して修正することができました(^^;

また、発表後に、日頃何かとお世話になっている@megascusさんとお話させて頂くこともできて良かったです(^^)

クラウド漫談

チケット駆動の話を申し込もうとしたら満員だったので、今の自分からは少し遠い「クラウド」をあえて選んでみました。

のっけから「笑い過ぎてあの世にデプロイされないようにご注意ください」みたいなアナウンスで開発者の笑いを誘ってました。

自己紹介の中で発表者2名の各々がおもしろツールを紹介されていたのですが

  • KINECT de DEPLOYというツールで、KINECTにバンザイしながら「デプロイ」と叫ぶとWindows AzureUbuntuがデプロイされる実演
  • ArduinoのスイッチをPCで捉えて、PUSHERなるサービスでWebSocket通信で参加者のスマホブラウザへ画像の切換えをする実演

がありました。どっちもギークな(^^;でも面白かったです。

ちょっとクラウド触ってみよう、と思うセッションでした。

Enterpriseでもモバイルアプリ開発

タイトルに惹かれて参加したセッションです。
発表者はSalesforceの方で、部屋に入って初めて、「あ、Salesforceのなんだ;」と気づきました。

製品紹介で終わってしまうかな、と思っていたのですが、モバイルアプリの開発に関するアプローチの話やBaaSとか概念的な話もあって、勉強になりました。

いかんせん自分がモバイル開発と縁が遠すぎるため、色々ついていけてない部分がありますが、今後はもっと伸びるだろうし、少しは知っておかんとなぁ、と改めて思いました。

趣味で遊ぶならJava FXでモバイル開発してみたい…かな(^^;

感想

雅叙園は何度か結婚式や会社忘年会で行ったのですが、あの和な雰囲気な中にITが溶け込んで(いたのかな;)なんとも不思議な感じでした。

今日参加した4つのセッションは各々全然違う話で分野も違います。
IT技術の進歩の速さと、こうした分野の幅広さとあって、自分の立ち位置とか、今後どうあるべきかとか色々悩みますが、良い意味で刺激を受けるのは間違いないかなと(^^)

今も開発始まって忙しくて、平日の昼に抜け出すのは周囲の目も気になる所です。が、そういうことを気にしていたら、いつまで経っても旧態依然とした開発から抜け出せない気がする危機感を持っています。
もちろん、息の長いプロジェクトが多いので旧態依然であっても仕方がない部分はあると思いますが、今の世の開発者や技術にあまりにも置いて行かれてしまうのは嫌だなぁと思います。

とりあえず自分で色々吸収して、実践して、結果が上手く出て、それを周りが評価してくれて、そして同じような取り組みが広がって、なんてことになれば嬉しいですが…そう現実は上手くいかないもんだったり(^^;

いずれにせよ、ブログのタイトルの通り、今はJava EE6にチャレンジして現行開発を遂行すべく、日々精進したい次第です。明日は残念ながら参加できず、若干物足りない感がありますが…デブサミ楽しかった!!

にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村