タグ

ブックマーク / daisuke-m.hatenablog.com (6)

  • Throwableについて本気出して考えてみた - 都元ダイスケ IT-PRESS

    Throwable、Exception、RuntimeException(RTE)、Errorあたりを整理しながら、色々考えてみた。私見に基づくので、間違っているかもしれないけれど、自分としては頭が整理できたかな、と感じたので晒してみる。異論があったらコメントください。 まず、一番基礎的なところで、継承関係の整理から。こんなツリーになっています。 Throwable Error Exception RuntimeException そして、稿での用語の定義。caller=呼出す側のコード callee=呼出される側(throwする側)のコードとします。 Throwable Throwableは「throw文に指定できる何か」という意味ですね。 Instances of two subclasses, Error and Exception, are conventionally used

    Throwableについて本気出して考えてみた - 都元ダイスケ IT-PRESS
    nobeans
    nobeans 2013/03/28
    改めて読み返すにつけ素晴らしい考察(5年越しのはてブ入り)
  • Spring 3.1 の Cache Abstraction(キャッシュの抽象化) - 都元ダイスケ IT-PRESS

    しばらくコード付きのエントリ書いてないなぁ、と思ったので。Springの新機能についてひとつ。 Spring3.1は、まだリリース版は出ていないのだけど、RC1が出ている。(参考 Spring 3.1 RC1リリース) その新機能にCache Abstraction(キャッシュの抽象化)ってのがあって、色々調べてみた。例えばWebAPIなんかを叩いて情報を取ってくるようなメソッドは、情報があまり変化しないものであればキャッシュしちゃえばいいよね。例えば Amazon API で、ASINから商品名やら何やかんやを取ってくるメソッドとか。 下準備 package jp.xet.sample; public interface EntityRepository { String get(int id); void put(int id, String value); } 例えばこんな(↑)イン

    Spring 3.1 の Cache Abstraction(キャッシュの抽象化) - 都元ダイスケ IT-PRESS
    nobeans
    nobeans 2011/11/28
    わかりやすい
  • Baseunits Library - 都元ダイスケ IT-PRESS

    さて、Java Advent Calendar -ja 2010 : ATND 10日目。昨日は、id:yuroyoro でした。二日連続で真っ黒な魔術が紹介されたので、ここは真っ白で実用的な奴をひとつ。 最近Domain Driven Design(DDD)っていう設計手法が、自分の周辺一部で話題になっている。当然、賛否両論なんだけども*1、個人的には好きな考え方でして。ま、詳細は色々な方がブログに書いているので割愛します。興味あれば読んでみましょう。洋書*2だけどw Domain-Driven Design: Tackling Complexity in the Heart of Software 作者: Eric Evans出版社/メーカー: Addison-Wesley Professional発売日: 2003/08/22メディア: ハードカバー購入: 4人 クリック: 113

    Baseunits Library - 都元ダイスケ IT-PRESS
    nobeans
    nobeans 2010/12/24
  • クラスがメソッドの実行に必要なインスタンスを手に入れる方法色々 - 都元ダイスケ IT-PRESS

    あるクラスが、メソッドによってある役割を果たすためには、別のインスタンスが必要なことが多い。ここでは、具体的にそのクラスを考え、そのインスタンスのを手に入れる方法を比較していこう。 ここでは、あるクラスをSqlExecutorとしよう。SQL文を受け取って、データベースのConnectionを使って実行するクラスだ。そして、SQL実行結果(ResultSet)をResultHandlerに渡して処理をする。さて、このクラスが責務を果たすためには「SQL文」「データベースConnection」「ハンドラ」の3つのインスタンスが必要だ。このクラスをいくつか書いて、比較してみよう。 どのインスタンスを、どのように受け取るかの違いだ。各インスタンスに対して、「setterで受け取る方法」「コンストラクタで受け取る方法」「メソッド引数で受け取る方法」がある。 A.全てsetterで受け取る方法 im

    クラスがメソッドの実行に必要なインスタンスを手に入れる方法色々 - 都元ダイスケ IT-PRESS
    nobeans
    nobeans 2010/07/17
    わかるわかる
  • hamcrestのMatcherメモ - 都元ダイスケ IT-PRESS

    技術ネタじゃないところで盛り上げてしまった。技術ネタいこう、技術ネタ。 さて、JUnitを使う際、hamcrestライブラリを使って、英語として読めるようなassertionを書く、なんてのは流行ってたり流行っていなかったり? JUnit4限定だけれど、assertionの際、assertEqualsとか色々assertionのメソッドはあるけど、全てassertThatで書くことができるはず。assertThatメソッドの第一引数にテスト対象、第二引数にhamcrestのMatcherインターフェイスの実装を与えます。なんのこっちゃですが。 Jiemamyでは、なるべくassertThat以外のassertionメソッドを使わないようにテストを書いています。(もしかしたらもう一つも残ってないかも。) まぁ、以下のように書くと、英語っぽいのが書けますよ、と。 assertThat(aaaa

    hamcrestのMatcherメモ - 都元ダイスケ IT-PRESS
    nobeans
    nobeans 2009/07/10
    hamcrestのMatcherの書き方サンプル。これは使える。/ Matchersはcoreには入ってないのか・・・
  • 萌え萌えIrenka - 都元ダイスケ IT-PRESS

    運命だったのか魔が差したのか、Irenkaのドキュメントを読んでしまって。惚れた。やばい、これは使わなければ。と、すぐに地豆に適用してしまったw Irenkaとは何か。 誤解を恐れずに言えば、高機能Checkstyleみたいなものです。ただ、出来ることは何かを見つけて指摘するだけじゃない。コンパイルのタイミングで、コードを書き換えちゃうことだってできるのだ。 とあるコーディング規約(Irenkaでは「掟」と呼ぶのか?w)があって、それに違反した箇所を見つけて指摘するのがCheckstyle。Checkstyleは、独自のルールを組む事が出来ない訳ではないのだが、俺はよく知らない。 Irenkaは、掟に背いた部分を「指摘する」のはもちろん、「勝手に直す」こともできる無茶苦茶な奴なんだ。しかも掟は自分で書ける。(というか、標準では提供されていないっぽいので自分で書くしかないw) コンパイルのタ

    萌え萌えIrenka - 都元ダイスケ IT-PRESS
  • 1