デブサミ1日目

今の案件は遅れているのだけど、去年からせっかく開発者に戻ったことだし2日間フルで参加しちゃう。
(そのかわり日曜日出勤する予定ですが。。。)


聞いたセッションと感想を
(不正確な内容もてんこ盛りだと思いますのでご了承下さい)


【17-E-1】DBも進化せよ〜変更に強いDB開発方法論を導入するためにJiemamyのチャレンジ
この時間、他のセッションは満席、僅かになっていたんだけど、ここに出てよかったと思えたセッション。
http://www.objectclub.jp/community/XP-jp/xp_relate/evodb-jp にあるような考え方の説明とそれをサポートするツール、Jiemamyについて。


今まで自分が開発してきた案件は、テストケースに対応するテストデータをリポジトリで管理するようにしてきていたんだけど、マスタの初期データなんかは全テストケース共通でつかえるものだと思うので、確かにデータモデルとセットにして持っていてもいいのかなと思う。

ただ、トランザクション系のデータは、全テストケース共通のデータを管理すると、テストケース作成時に必要データを追加していく際に、他のテストケースに影響が出ないようにするのは難しいのでは? なのでテストケースごとにデータを持っていたほうが、各テスト間の依存性がなくなっていいと思うのだけどどうだろう。


今は、A5:SQLというフリーのモデリングツールでデータモデルを管理し(テキストファイルでモデル情報を保持してくれるのでsvnで差分が見れる)、同時にDDLを出力して、モデル情報のファイルと、DDLリポジトリ管理対象としている。
(ERDがあればテーブル定義書は開発中に必要性を感じないので、A5:SQLでモデルから出力は出来るのだけど、特に出力していない。 納品時にはドキュメントにすると思う)
これにマスタの初期データもスキーマ情報として持つようにすればJiemamyで管理しているものとほぼ同じ情報が管理できるのかな。


Jiemamyeclipse上でモデルエディタがあり、mavenプラグインでビルドされるとのこと。.NETerの案件にどうつかっていくかは考えないと。モデル管理の為だけのプロジェクトをeclipseで作る感じかなぁ。ビルドの際はmaven(昔つかってたけどあまりしらない)でたたけるので、ビルドファイル作ってhudsonに組み込むのはできるな。


でもAsk the speakerにてお聞きしたところ、そのうちeclipseプラグインではなく、プラットフォームとしてeclipseを使ってアプリとしてモデルエディタを作るかもしれないとのことでした。
今の自分の案件でこの考え方を適用すると、A5:SQLのモデル情報+初期データExcel or CSV→→(デプロイ)→DBという仕組みを用意して、デプロイ部分はテストコードから呼べるようにしないと。次の案件で検討しよう。
ビルド(DDL生成&実行)についてはnantmsbuildのカスタムタスクになればいい?(jsで書いちゃう?vbscriptのほうが慣れてるけどこれからはjavascriptだよな。。。)


あ、あと運用中のDBに対してレイアウト変更を行う際は、最新のスキーマにする為のalter文などのパッチを作ると思うんだけど、それもリポジトリ管理しろ、とfowler先生は言ってた気がするんだけど、そこがJiemamyではどう捉えているのかは聞くのを忘れた。。。
(2日目のXPJUGのopen jamに都元ダイスケさんが来ていたのでそこでもいろいろ聞いちゃいました。自動で差分をAlterなどで反映するような仕組みを考えているとのこと。すごい。ありがとうございました。)


テストデータの管理はシステム開発上(特にビルド、テスト、特に受入テストの自動化をしていくと)必須となってもおかしくないくらいだと思うんだけどなぁ。



【17-C-2】クラウド上でのエンタープライズアプリケーション開発
クラウド環境でエンタープライズアプリケーションは構築できるのか?ということで、RDBで実装されている、ロック制御、トランザクション制御、読み取り一貫性を実現する、簡単なサンプルアプリを4つのクラウド環境でつくってみたよ!という話。

GAE、force.comはあまり今までのRDBと変わらない考え方でできる
 →GAEはslim3、force.comは裏にoracleがあるおかげみたい。
  (force.comだけKVMではなくRDB)
 →AWS、Azureは結構工夫が必要(1トランザクションを1テーブルになど)


クラウドKVMだからといってエンタープライズアプリケーションをあきらめるのではなく、工夫次第でできるし、KVM使わないとクラウドのメリットをフルに受けられないので、頭から無理だと思わず、要件によって選択するべき、とのこと。


まだクラウドでいろいろやったことはないんだけど、これも面白そうな話でした。


【17-E-3】Hadoop:黄色い象使いへの道 〜「Hadoop徹底入門」より〜
Hadoopの説明と、書籍の内容説明。
多分、うちの会社で使ってるデータ量だとそろそろHadoopを活用してもいいくらいの量になってるんだと思うけど、まだ活用していない。
これは近い将来取り組む課題になると思っていて、やりたいと思っている。(でもその前にスマートフォンが。。)
おそらくうちでもDBからファイルにはいて、集計してその結果をRDBに入れて検索させる、といった形になると思う。DWHとして使用する形となるので、そのケースの事例はそこまでまだないのかな。
これからも注目してみていきたいです。


【17-D-4】いまだからこそ ALM 〜 「人・プロセス・ツール」
MS長沢さんの話。
メーカーのプロダクト宣伝みたいなセッションはいまいちなものが多いのは確かなんだけど、
スピーカーがMSの人だからといって、MS色の強いセッションになると思って参加しなかった人は残念賞。


のっけからKen Shueiberのビデオメッセージ。(英語よくわからない。。。)
なんでもUSでのALMのカンファレンスで、捕まえてメッセージをもらったらしい。すごい。
ALMとは?Plan、Delivery、Manage。企画、開発、運用。
ふだんやっている、お客さんの求めているシステムをつくって運用するということ。特別なことではない。


個人的にはもう少しMSのツールの部分も見たかったんだけど残念。
Excelをエディタとして使って、タスクリストをチェックアウトして編集してチェックイン、みたいなことをやっていた。
TFSつかうとどんなことができるのかよくわかってないので、もっと知りたいなぁ。


3月にALM DAYというMSのイベントもあるみたい。
時期的に参加は厳しそう。。。


【17-D-5】.NETの業務向けOSSフレームワーク鼎談
Enterprise LibrarySeaser.NET、terasoluna.netの界隈のかた3人によるパネル対談。
恥ずかしながら、EntLibterasoluna.netは知らなかった。terasolunajava版はうちの会社でも採用しているのに。
S2Dao.netはありがたく使わせていただいてます。


各々のF/Wの概要、およびウラ話など。
terasoluna.netはなんでEntlibのDIコンテナ使っていてS2じゃないの?とか。
USのMS Entlibチームは普通にアジャイルやってたよ、とか。


あと、福井さんが言っていた、案件ごとに薄い層の上位F/Wを作るという話。
コンテキストにより、F/Wにすべきところとそうでないところがあったり、新技術採用によりF/W部分を自前でカバーしなければならなかったりなどというのは、レベルは段違い平行棒なんだろうけど共感というか納得でした。


【17-D-6】.NETアセンブリの宿命
ちゃんとプログラム観てなかった自分も悪いんだろうけど、難読化のセッションとは思っていなかった。。。
個人的に期待していた内容からははずれていました。
.NETアセンブリの宿命でもなんでもない気が。。。


【17-E-7】デブサミオフィシャルコミュニティから選出のLT大会2011
まず、最初の岩切さんの挨拶が熱かった。
LTはバラエティに飛んでいて楽しめました。14歳のスピーカーの方も上手にプレゼンしてました。
女子部いいなぁ。
あとDevLOVE熱かった。
(2日目の最後のDevLOVEセッションもすごく良かった!!ここでの岩切さんも熱かった!)


ホントは17日に書いていたんだけど、子供2人の添い寝担当だったので下記途中に息子がぐずって長引いたので書き終わらなかった。。。