デブサミ行ってきました

Developers Summit 2009に行ってきました。
忘れないうちに備忘録メモです


【13-A-3】仮想化技術を用いた分散型システムの開発とテストの手法

仮想環境でテストするメリット
1.バグが発生したらその状態を保存できる
2.テストを動かす環境がすぐに用意できる


仮想環境では出来ないこと
ハードウェアの直接制御
この場合はエミュレーションソフトを作るべき?


仮想化のロードマップ
1.一つの物理サーバの中に、複数の仮想OSを載せる
2.複数の物理リソースをVMが集約する
3.それをサーバだけでなくクライアントPCにも適用する


VMwareをよろしくね

【13-E-4】「レガシーコード」とはいったい!? 〜あなたも書いてるかもしれないレガシーコード〜

レガシーコードとは
テストが存在しないコード


レガシーコード対策
レガシーコードから逃げない
レガシーコードを作らない
レガシーコードを作らせない


対策前:Edit&Pray(編集して、そして祈る)
対策後:Cover&Modify(カバーして変更する)


対策の一例
よく分からないコンストラクタやメソッドにテストをつけるには?
まず引数全部をnullにして振る舞いを確認していく。PassNullと言うらしい


DBのUnitTestの為だけに、S2Unitを使うのも効果的


テストを通すことよりも、今の振る舞いを明らかにすることが最優先事項よ


あと、とりあえず
書籍「Working Effectively with Legacy Code」(WEwLC)
を読んでおけ

【13-D-5】SQL Server アーキテクチャ入門 〜Oracle Database との対比〜

SQL Serverは、誰でもインストール直後に特別なチューニング無しで使える事を売りにしてるんだぜ。
昔のServer7や2000はともかく、2008はいけてるので昔のことには触れないでください・・・


課金単位はCore単位じゃなくてソケット単位だからアレより安いよ


基本は1SQL1トランザクションになっている。
複数走らせたければ、Begin Transactionをやればアレみたいに使えるよ


2008 Webは、企業向けでは使えないよ。SNSやBlogのDBとして使ってね。
>その割には高くね?

【13-A-6】ひよこクラブ ver.Engineer

勉強法
Inputをたくさん、Outputをそこそこ


・Blogなどに書く。あとでググれるから便利。
・分からないことは人に聞く。ググレカスを恐れない
・サンプルをコピペせずに写経してみる
・他の言語で書いてみる(C#のサンプルをRubyでなど)
・コードを読んでみる
・情報収集はRSSはてブのタグで(「Java」など)
・仕様書も読む
・勉強会も行ってみる
・本は読もう
・凄い人のブログは抑えておく
・コードを書く
・やったことをBlogに書く
・思ったことを実践する
・作ったものを公開する
・言語のぬいぐるみをゲットするなど、形から入る
・偉い人のコードを手元に
・気軽にコードを動かす環境を用意する
・何か一つ詳しいというのを見つけてみる。自信につながる
・プレッシャーにならない程度で
・BlogなどにOutputしていく

【13-A-7】Webセキュリティ攻守攻防パネルディスカッション「Webアプリケーション/Ajaxセキュリティ徹底バトル」

XSSには気をつけろ
UTF-7対策もしておけ
公開非公開関係なく対策しておけ。個人法人も関係なく対策しておけ
他所様のサイトで何か見つけたら、とりあえずIPAに報告しておけ
自己顕示はそれからだ
WAFはアンチウィルスソフトみたいなもの。お守りとして使え
でもWAFに頼るのはプログラマとしては敗北