miau's blog?

Developers Summit 2009(2 日目)

ということで、二日目の感想をば。





■Programming the Cloud / クラウドをプログラミングする

・Google の技術について、中の人からいろいろと。以前から公開されている情報らしいけど、勉強したことないから面白かった。
・まず、クラウドでは通常の ACID(DB の原則として有名なやつ) ではなく (Associative, Commutative, Idempotent, Distributed。前の 3 つは数学用語で、最後のは数合わせなのであまり気にしなくていいらしい。)が重要という話。計算の順序なんかを意識した造りはダメという話で、この考え方では順番を意識しなければならないループ処理なんかは悪になると。
・そして、基盤技術である GFS(Google File System), BigTable, MapReduce, Sawzall について。特に MapReduce や Sawzall なんかが新鮮。関数型言語とかやってる人の発想だなーと。関数型言語勉強したくなりました。
・どうでもいいけどブラウザが Chrome だったのがさすが。URL が見づらかったからアドレスバーの拡大機能があると便利だなー、と思ったり。それくらいなら bookmarklet とかで作れるけど。
・聴きとれないところ多数だったから、定期的に英語勉強せねば。

本筋と関係ないから別パラグラフでちらっと書いておくと、途中で出てきた「ループは悪」みたいな考え方は、分散処理じゃなくても持っていてほしいなーと個人的に思ってたり。map/grep で書ける処理をいちいちループで書かれたら「ただの map/grep 以外の処理をしたいのかな?」って注意して読んだりしてしまうので。

■デベロッパーに贈る!M-V-VMパターンで造るWPFアプリケーション

普段 M-V-C でクラス分割してて「もっとうまい切り口あるような気がするなぁ」と感じることが多いので、こういう新しそうなパラダイムには惹かれるわけですが・・・完全に WPF を前提とした話でした。M-V の間にひとつ層を挟みましょうという話。
普通の Web 開発に活かせる部分は少ないけど、最近はこうやって作るのねー、という参考にはなった。やっぱり .NET は生産性高いよね。たまに触りたい。

■Hudson によるインクリメンタルな開発

前の案件で Continuum 使ってたので CI については「うん、そうだよね」という感じ。Continuum との違いとしては、
・動作させるのが簡単
・レポーティングの機能が内包されている(プロジェクトサイトとか別に用意しなくていい)
・ジョブのチェーン設定が可能。(Maven2 使ってる場合は Ant みたいに自分で好きなタスクを作れないから、これ結構便利かも)
・クラスタリング可能
といったところ?まあ次回 Java の案件があったら使うのは確定してるんだけど、理解が深まった。

XFD による通知ってのはおもしろいと思った。ビルドエラーが発生するとオーブが赤く光るとか。うちだと何がいいかなぁ。

これまた本筋と関係ないけど、先月まで 4 か月くらい Java の案件やってたおかげで、ひととおりの話題についていけるようになっていた。メインで担当していたのが CI 部分だったからというのもあるけど、Java やっててよかったなーと思ったりもした。やっぱいろんな環境での開発を経験してたほうが世界が広がっていいなぁ。

■「レガシーコード」とはいったい!? 〜あなたも書いてるかもしれないレガシーコード〜

・Working Effectively with Legacy Code という本の読書会まとめ、みたいな。この本は結構前から注目してて、Safari Books Online に置かれたくらいの時期に Bookshelf に放り込んだにも関わらずまだ読めてなかったり。アンテナだけ張っても何の意味もないという好例。
・ただ注目してたのは「古いコードの保守に役立ちそう」という理由で、今日の話を聞いてみると的外れだったっぽい。「あなたも書いてるかもしれない」とのことだけど、この本での定義ではレガシーコード=テストがないコードとのこと。あー、確かにそれはそれは今でも書いてる。
・各問題&対処法に名前がついてるそうで。名前重要と。
・テストのためにはリフレクションも厭わない・・・どころか private を public にしたり、C のコードを C++ で書きなおすことさえ推奨されている(?)そうな。私も Java 案件で「テストしにくいなら全部 public にしてもいんじゃね?」とか主張してた testability 偏重な人間なので(元々 Perl 使ってるからというのもあるけど)、なんか気が合いそう。
・あと、この本では「リファクタリング」という言葉を極力使っていないそうな。「テストのないコードを手直しすることはリファクタリングとは言わない」のがその理由だそうで。これも耳が痛い。
・それにしても読書会やってたとは知らなかった。「レガシーコード=古いコードのことじゃないよ」という前フリありで、この読書会のことを知ってたら絶対に参加してたところ。惜しいなぁ。

■CodeZineスペシャルセッション モダン Perl テスト 〜 テストで業務効率改善

・Perl のモダンプログラミングの話かと思いきや、Perl を使って諸々テストしましょうって話だった。
・思想面については、まあ完全に同意で。テストコード自体はシンプルに保たないと誰も書かないよ、というのは確かにそういう経験あるので今回は気をつけよう。
・Java でテスト書くのめんどいよ、ってのにも同意。いくらフレームワーク使って言語の面倒くさい部分を隠ぺいしても unit test では結構その言語のベタな記述に頼ることになるわけで。Java とか PHP だとやっぱり面倒だなと。(PHP は標準関数で書けちゃうような処理には強いけど、データ操作弱いとかクロージャ使えないとかで結局面倒。Perl/Ruby/Python レベルの記述がしたい。)
・Test::More の出力は TAP(Test Anything Protocol) っていう共通形式だ、ってのはどこかで聞いたことあったはずだけど忘れてた。PHPUnit も対応してるってことは、PHP 案件のテストを Perl の CI に組み込めたりもするのかな?とちょっと期待。

講演者の方は Perl で CI やってたとのことなので、セッション後に Ask The Speaker コーナーで「Perl で CI やるいいツールとかあるんですか?」的な質問をしてみた。回答を簡単に書くと、

・その案件では大規模なソースを扱っていたので完全に作りこんでいた(それだけの投資効果があった)
・Perl で全部入りみたいなのがあるわけではないので、他の言語でやってるような CI+Web インターフェイスのシステム(Continuum、Hudson、CruiseControl みたいな)をやろうと思うと作りこむことになるだろう
・でも部品はあるから楽じゃない?

みたいな感じ。Perl でそこそこの規模の案件だったら作りこんでもいいんだけど、今回は「PHP なんだけど Java+PHP よりもいくらか Perl+PHP のほうがいいな」って程度の動機だから、やるとしても次回以降かなぁ。でもうちの会社で Perl の新規案件があるかっていうと・・・きっとないなぁ。

■ひよこクラブ ver.Engineer

・はじめの人のプレゼンかこいい。
・おおむね全員が「アウトプットしろ」ってことを言ってたような。最近自分もそれを心がけてるつもりだけど「未解決のことも書く」というのはなかなか難しいなぁ。「検索エンジン経由で来たひとが『なんだ結局解決してないのかよ』とか思っちゃいそう・・・」とかいって気がひけたり、「もうちょっと調べたら解決するかも?」とか思ってずるずるお蔵入りすることが多いので。前者についてはタイトルに「(未解決)」とか入れればいいとして、後者については「n 日以上放置したネタはとりあえず放出する」みたいな習慣をつければいいのかな。
・形から入るって話で、ML に入りまくったり O'reilly 本揃えたりしたことはあるけど、ぬいぐるみはやったことなかったなぁ。参考にしよう。
・http://php.net/function_name やら php --rf function_name やらでマニュアル引けるのは知らなかった。
・「『これには詳しい』って言えるものを持つ」というのは確かに重要。若い人はそういう気概を持って何かの技術に取り組んでほしいなぁ。自分はいろいろつまみ食いしすぎちゃったので、今だにこれといって得意分野がない感じ。

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

・表題のとおりの座談会。その道の有名人たくさん。
・いくつか知らない単語とかあった。やっぱセキュリティに疎くなってるなぁ、と痛感。
・JSON Hijacking は知ってたけど、while(1); みたいな対策は非推奨なんだそうな。「Google もやってるから」とかいって真似しちゃダメなんだとか。
・Yet Another JSON Hijacking なんて知らなかった。UTF-7 まだ現役なんだなぁ。
・世界で 2 人くらいしか UTF-7 の攻撃やってないからみんなもっとやりましょうって話・・・ではなかったと思う。
・Clickjacking ってのも知らなかった。帰ってから調べた&しばらく考えたけど、URL についてはブラウザの脆弱性ってことでいいのかな。ステータスバーにリンクが表示されている状態でマウスクリック or Enter 押下したら必ずその URL に飛ぶべしってことで。透明の iframe とかは・・・難しいなぁ。
・その他もろもろ細かいところで勉強になりました。考え方とか。

■その他

・毎年苦労してる申込。今年はこんな流れ。

「今年もデブサミの画面を使いやすくする GreaseMonkey でも作るかー。今年は公開できるレベルのちょっと凝ったの作ろうかな」とか思いつつなかなか時間がとれない→気がついたらいくつか満席に→デブサミ2009の参加セッションをじっくり選ぶ為のサイト Developers Summit 2009 ができてるっぽい。これ使っちゃえ

・満席だけど見たかった 4 セッションくらいについては、受付のひとに言って空席に座らせてもらったり立ち見させてもらったり。まあ去年と同じ。
・デブサミは配布資料とか結構多いからノートとか不要・・・と思ってたら結構配布資料少なくて焦った。まあ題目も少しずつ変化してるから、こんなものか。
・あとで blog に書くのは大変だからセッションの合間に書いたりしてたけど、分量がすごいことになってしまった。まあズルズル書かないよりはマシか。
・スタンプラリーの抽選はライトペン。
・衝動買いはオライリー・ジャパンで 2 冊。T シャツいただきました。

posted at 04:27:57 on 2009-02-14 by miau - Category: Events No Trackbacks - Permalink

TrackBack

このエントリにトラックバックはありません
現在トラックバックは受け付けていません。

Comments

No comments yet

Add Comments

現在コメントは受け付けていません。
お手数ですが、 こちら のコメント欄にでも記載していただければと思います。