2014年8月25日月曜日

最終回 Java7はここが違う!


前回

登場人物
  • NRT
    猪突猛進なプログラマー
    考える前に体力勝負でプログラミングするタイプ。
    たまに鋭い洞察力を見せるため、
    周囲からは落ち着いてさえいれば…と言われている。
  • SSK
    冷静沈着なプログラマー
    20:80の法則に習い、実は仕事の一部分を学習に当てている。
    他の人はそれに気がついていない。
    Java7についても以前からチェックはしていた。
  • SKR
    紅一点なプログラマー
    暗算は早いけど、プログラミングはそこそこ。
※登場人物は忍者ではありません。架空のプログラマーです。

新機能:The try-with-resources StatementとCatching Multiple Exception Types and Rethrowing Exceptions with Improved Type Checking


~~~ 社内 - 談話室 ~~~


SSK「もうJava8が出ているのだが…」


SKR「でも後ふたつで終わるんだし、せっかくだから完結させたら?」


NRT「へへっ!腕が鳴るってばよ!」


SSK「その情熱はJava8に向けてくれ…
       そうだ、先に行っておくと日本語ドキュメントはもう揃っているからな。
       これからの話は、もう英語が読めなくても独学で学べる。」


SKR「さすがに年単位で連載が空けば、そうもなるかしらね。」


SSK「メタな話は置いておいて、
       まずはtry-catch句の拡張から話すか。」


NRT「うげっ!ようやく使い方が分かってきたのにもう変わるのか!?」


SSK「別に今までの書き方でも構わないが、
       拡張構文を使うとずっと楽になるぞ?
       こんな感じだな。」


try (BufferedReader br = new BufferedReader(new FileReader(path))) {
    // ファイルの内容を使った処理
} catch(FileNotFoundException e) {
    // ファイルが無かったときの処理
}


SSK「どこが楽になったか分かるか?」


SKR「う~ん、ファイルを読み込む処理が移動したのは分かるわ。」


NRT「あーー!分かったってばよ!finallyが無いんだってばよ!!」


SSK「…ほう、使い方が分かったというのはまんざらでも無いらしいな。
       そうこの書き方では、
       finallyで記述しなければならなかったcloseメソッドを書かなくても良くなった。」


SKR「ということは、勝手にclose()してくれるの?」


SSK「そういうことだ。
       Java標準クラスでclose()が必要だったものは、
       ひと通り同じ書き方が使える。
       自作のクラスでも、
       AutoCloseableかCloseableを実装すれば同じ書き方にできるぞ。」


NRT「こりゃあゴキゲンだってばよ♪」


SSK「じゃあもう次に行くぞ。
       またtry-catch句からだ。
       これは例を見せた方が手っ取り早いな。」


try {
    // 何かの処理
} catch (ExceptionA|ExceptionB|ExceptionC e) {
    // 例外処理
}


NRT「こ、これは…!?」


SKR「これはいいわね!何度こういう書き方をしたいと思ったことか♪」


SSK「例外クラスでメソッドを追加することなんてほとんど無いからな。
       これでようやく同じ例外処理を並べる苦痛から解放されたわけだ。」


NRT「これでもっともっと楽にプログラミングできるってばよ!!」


SSK「そうか、ならこのままJava8のラムダ式にいってみるか?」


NRT「それは勘弁して欲しいってばよ~!?」


終われ


前回

2014年8月22日金曜日

理想的なパスワード

網膜認証、指紋認証、静脈認証、いわゆる生体認証と呼ばれるものは数あれど、
共通する欠点を抱えています。

2014年8月20日水曜日

たとえ話は相手の態度も重要なのか

確か/.Jだったと思うのですが、
たとえ話は相手に理解しようとする意思があるときに有効であって、
否定する気の相手だと揚げ足を取られて話が進まないというコメントがありました。

2014年8月4日月曜日

コードの美しさを認知心理学で測定できないか

汚いソースコードを読むたびに、
どうしてこんな実装をしてしまったのかと半眼になってしまいます。

そしてソースコードの実装者がいれば文句のひとつも言うわけですが、
その指摘をどうにも理解してもらえないというところまでがパターン化しています。

LAN内ならオレオレ証明書でも問題ないか

さすがに公開されているWebサイトでオレオレ証明書なんて使っていないと思いますが、
ふと、これがLAN内で使われることを考えました。