タグ

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

  • オブジェクト指向のソースを読むのが難しい理由 - 都元ダイスケ IT-PRESS

    ダラダラ書かない予定だよ。ざっくり行くよ。あと、分かってる人には当たり前な事だと思うよ。 あるクラスについて知りたかったら、まずその基底クラスを知れ 例えば、Integerクラスについて知りたいと思ったら、Integer.java だけを読んでいてはダメだ。確かに「Integerに特化した責務・構造・操作」は読み取れるかもしれないが、数値としての基的な責務・構造・操作はNumberに書かれている。それを読まずして、Integerが保つ数値という一面を知ることはできない。Integer.javaには「Integer - Number」*1の情報しか書いてないのだよ。差分プログラミング。 さらに、忘れちゃいけない。Object.javaを読め。全ての道は暗黙的にObjectにつながっている。Objectを知らずしてJavaのクラスを知る事は絶対にできない。Objectなんて、みんな「知った気

    オブジェクト指向のソースを読むのが難しい理由 - 都元ダイスケ IT-PRESS
    tarchan
    tarchan 2013/02/08
    もっとQBっぽく!>ソースを読むのが難しいのは、「英語を読みたくない」という甘えがあるからだ。英語ドキュメント読むよりトークン列を読むほうが楽だと、みんな思っているんだよね。僕にはわけがわからないよ。
  • Apache commonsが便利な件(commons-vfs編) - 都元ダイスケ IT-PRESS

    http://d.hatena.ne.jp/daisuke-m/20080702/1214982943 ユーティリティ系ばっかりじゃ飽きるかな。ということで今回はcommons-vfs。 commons-vfs は、バーチャルファイルシステム。ファイルというのはあらゆる形で存在します。例えば、 ローカルのファイル 圧縮ファイルの中 http越し、ネットの海 scp,ftpで別のサーバに WebDAVの向こう これらのファイルを抽象化して、すべて同じ操作でファイルの読み込み(場合によっては書き込み)ができるようにしたのがこのライブラリ。 このエントリはあんまり重くしません。基的だけど強力な使い方をひとつだけ。あとは全部応用するだけです。 public class Main { public static void main(final String[] args) throws Excep

    Apache commonsが便利な件(commons-vfs編) - 都元ダイスケ IT-PRESS
    tarchan
    tarchan 2012/07/26
    >FileObject resourceFile = VFS.getManager().resolveFile(args[0]);
  • Apache commonsが便利な件(commons-configuration編) - 都元ダイスケ IT-PRESS

    久々のシリーズ。 今回はcommons-configuration。設定ファイル、ってありますよね。Javaだとproperties、Windosだとiniファイルが使われる事が多い。複雑なものだとXMLで書いたりする。 さて、そんなファイルの読み込み・書き出しってどうしますか。まさかFileInputStreamで自前で読み出すとか、しないですよね。コメント行の処理等、やらなきゃいけないことは結構あります。まぁ、propファイルだったらPropertiesクラスで読み書きできますが、それでも、そうそう便利には出来ていません。 XMLファイルだったりすると、DOM組んで読み書きしますかね。これも結構大仕事。 という時に使うのがcommons-configurationのようです。まぁ、能書きよりコードですかね。 propertiesファイルの場合 foo = hoge foo.bar =

    Apache commonsが便利な件(commons-configuration編) - 都元ダイスケ IT-PRESS
  • 細かすぎて伝わらないJava7の変更点 - 都元ダイスケ IT-PRESS

    日のエントリーはJava Advent Calendarの25日目です。昨日は @mike_neck さんのmike、mikeなるままに…: hamcrestを拡張してmoreThanとか作ってみたでした。日はクリスマスですが、Advent Calendarはまだまだ続きます。明日はt.ogisawaさんのhttp://webinter.sakura.ne.jp/pbd/210です。 さて、今年はJava7がリリースされましたね。try-with-resources、diamond operator、invoke dynamic、Folk/Join framework…魅力的な新機能の数々が、多くの人によって紹介されています。が、Java7の変更はそれだけじゃないはず。小粒だが、キラリと光る変更がきっとあるはず。ということで、Java6とJava7のsrc.zipを比較してみました。小

    細かすぎて伝わらないJava7の変更点 - 都元ダイスケ IT-PRESS
    tarchan
    tarchan 2012/01/18
    >JSR 336 Java SE 7 Release ContentsのスペックのAnnex
  • DOMとSAXとStAXと。 - 都元ダイスケ IT-PRESS

    こんな名前のAPIがありますね。主にXMLの読み込みを行う為のAPI群であります。SAX以外は、書き出しもできますね。そう、SAXは書き出しできないのですね、基的に。 <foo> <bar>baz</bar> </foo> っていうもの凄い単純なXMLを、これらのAPIでどのように扱うのか。比較なエントリ。 まずはDOM DOMは、パース時にXMLの内容を全てメモリ上に保持し、パース後にどの要素にもいつでもアクセスできるような環境を作り出す。 import java.io.ByteArrayInputStream; import java.io.StringWriter; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.t

    DOMとSAXとStAXと。 - 都元ダイスケ IT-PRESS
  • 可視性と公開APIと非公開(内部)APIと - 都元ダイスケ IT-PRESS

    Javaではpublic, protected, default, privateという4種類の可視性がある。 Javaを始めてしばらくの間、この4つの使い分けがよくできていなかった。 「外から呼ぶならpublic、呼ばないならprivate」時代 当時から、なるべく可視性は下げた方が良い(オブジェクト指向は「隠す技術」である → 継承とコンポジット - 都元ダイスケ IT-PRESS参照)ということは理解していたので、「外から呼ぶならpublic、呼ばないならprivate」という指針からスタートした。 上記に加えて「継承先からしか呼ばないならprotected」時代 Template Methodパターンを覚えた頃の話。この時代が一番長かった。 そして残ったひとつ、default(package-private)の使い方が全く分からなかった時代でもある。色々使おうと頑張ってみたが、pa

    可視性と公開APIと非公開(内部)APIと - 都元ダイスケ IT-PRESS
    tarchan
    tarchan 2009/12/24
    自社ライブラリだと自分しかメンテナンスしてない罠
  • Throwableについて本気出して考えてみた 2nd Season - 都元ダイスケ IT-PRESS

    1st Seasonはこちら。Throwableについて気出して考えてみた - 都元ダイスケ IT-PRESS 以前は、何かをスローする状況を3つに分けてそれに合った設計をした例外を投げましょう、という考え方を示しました。 callerのバグ: RTE calleeのバグ: Error どちらでもない: Exception (非RTE) まぁ詳しくはSeason1の方で。 Seasar2はRuntimeExceptionですね。2004年ぐらいからのフレームワークはRTEをスローしていると思いますよって、ひがさんから情報。 チェックされる例外とチェックされない例外について - じゅんいち☆かとうの技術日誌 ただ、上記のような考え方もあるのも事実。実際.NETRuby, Python, 新鋭のScala等もcatchを強制する例外というものが言語仕様的に存在しません*1。逆に、チェック例

    Throwableについて本気出して考えてみた 2nd Season - 都元ダイスケ IT-PRESS
    tarchan
    tarchan 2009/10/21
    自分が基本部品を作って他人に使わせるという状況では、SQLExceptionなども全部非チェック例外でラッピングしてベースクラスで例外処理を引き受けてた/causeに原因となった例外を保存して条件分岐もしてた
  • 日経ソフトウエアに記事書いた!! - 都元ダイスケ IT-PRESS

    日経ソフトウエア 2009年 10月号 [雑誌] 作者: 日経ソフトウエア出版社/メーカー: 日経BP出版センター発売日: 2009/08/24メディア: 雑誌購入: 2人 クリック: 8回この商品を含むブログ (6件) を見る 日経ソフトウエア2009年10月号に特集で「最新Eclipse徹底マスター」という記事を執筆させていただきました。日発売です。 Javaでプログラムを書くためには、IDE(統合開発環境)の使用は欠かす事ができません。IDEの中でも広く普及しているEclipse、その最新バージョン3.5(Galileo)について初級〜中級向けの記事になっています。 インストール等の入門編から、コードフォーマッタ等を使って一貫性のある美しいコードを維持するコツ等、Javaプログラマ必携のテクニック満載です。今年の新卒エンジニアから、今ひとつEclipseを使いこなせていないと感じて

    日経ソフトウエアに記事書いた!! - 都元ダイスケ IT-PRESS
  • 萌え萌えIrenka - 都元ダイスケ IT-PRESS

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

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