タグ

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

  • 難解なSerializableという仕様について俺が知っていること、というか俺の理解 - 都元ダイスケ IT-PRESS

    java.io.Serializable …、ある程度Javaに触れて来た人は必ず見たことがあるインターフェイスだと思う。私も何度も見てきたし、必要に迫られて自分の作ったクラスにSerializableをつけたこともある。しかし、こいつは一体何なのか? 継承の便利さ 僕らがまだJava初心者だった頃。継承というメカニズムに助けられながら育って来た。簡単に言えば、HttpServletクラスを継承しさえすれば、自分の作ったクラスがサーブレットとして認識されるのだ。また、abstractメソッドなどという便利な機能もあり、継承にあたって実装しなければいけないメソッドは確実に指示され、言われた通りにそのメソッドを実装すれば良い。 StrutsのActionも然り。そう、多くの場合は「継承さえすれば、望む物がだいたい出来上がる」というのがJavaの世界だと思っていた。 だが、世の中そんなに甘くない

    難解なSerializableという仕様について俺が知っていること、というか俺の理解 - 都元ダイスケ IT-PRESS
    suginoy
    suginoy 2013/07/03
  • 不可算名詞 - 都元ダイスケ IT-PRESS

    懐かしいですね。受験の時勉強したなぁ。water, music, love等の名詞については、基的に複数形を使わないよ、というアレですね。形がないものや抽象概念を表すので個数として数えにくいものや、集合全体の概念をとらえた単語なんかがそれに当たります。(参考:http://www.linkage-club.co.jp/ExamInfo&Data/uncountables.html) で、昨日プログラミングの話で「 getStudies():List 」なんていう話をした時に「勉強という意味でのstudyは不加算名詞。論文とかにする研究については加算だけど…」なんていう話を聞いて懐かしくなった。その場は「おお、そうなのか。昔習ったような忘れたような…w」という感じで getStudy() にしてみたのだが。 確かに「自然言語としての英語の世界」ではそうなのかもしれない。しかし自分は今、「勉

    不可算名詞 - 都元ダイスケ IT-PRESS
  • ソフトウェア開発者、完売いたしました - 都元ダイスケ IT-PRESS

    転職活動をはじめて2ヶ月弱。ようやく次の落ち着き先を決めました。ちなみに「転職したのに上司が変わらなかった」っていうネタも考えていたのですが、id:j5ik2o と行き先は別々になりました。まぁ、かとうさんは「永久名誉上司」として、永遠にエロ上司扱いしてやろうと思っています。あ、某D社の皆様も、早速エロ呼ばわりしてみると良いと思いますよ。喜ぶと思いますw …さて。 正直、先日のエントリを上げる直前は、もうこの業界に自分の居場所はないかもしれない等と考え、薬屋への撤退戦略などを考えたりしていました*1。しかし、エントリを上げた途端当人らがびっくりするほどの反響を頂き、最初の1ヶ月は一つ一つお話を聞かせて頂くべく東奔西走していました。この真夏の陽気で外回りは結構体力的にも大変*2でしたが、この年になって社会科見学をしているようで、様々な勉強をさせて頂きました。当に皆さん、色んな考えを持ってソ

    ソフトウェア開発者、完売いたしました - 都元ダイスケ IT-PRESS
    suginoy
    suginoy 2011/09/03
    クラウドスタディって人雇う余裕あったんだ。密かに注目してたので話ききたいぐらい。
  • 【転職活動】ソフトウェア開発者のバリューパックを発売、限定1セットのみ! - 都元ダイスケ IT-PRESS

    さて突然なんですが、私と上司(id:j5ik2o)は7月末を以て現職を退職することと相成りました。 まぁ、社内不仲とかクーデターとかそういうんじゃなくて、研究開発プロジェクトをクローズすることになったのであります。私が進めていた研究開発業務としては、みんなで結構頑張って企画を練っていて、その成果として、パイロット版を次週あたりにも社内向けにローンチできる!? とかいうタイミングだっただけに、非常に無念…。 で、このまま会社に残留してSI事業のメンバーとして居残る道もあったのですが、各所で囁かれているように、SIだけを続けていても近々えなくなる日が見えてきていると思う。そして、都元自身としても、あらためて自分の想いを整理すると、そもそもSIをやりたいがためにこの業界に転進した訳ではないなと思いました。一言で言えば「なんかサービス作りてえよ」*1と思っているので、その道で頑張ってみたい。そん

    【転職活動】ソフトウェア開発者のバリューパックを発売、限定1セットのみ! - 都元ダイスケ IT-PRESS
  • UnsupportedOperationExceptionと相続拒否 - 都元ダイスケ IT-PRESS

    昨日ご紹介したbaseunitsですが、そのコードを社内コードレビューに掛けた際、id:cobonasからこんな指摘がありました。 package jp.tricreo.baseunits.util; import java.util.Iterator; /** * 明示的に、対象のコレクションに対する操作ができないことを表す反復子。 * * @param <T> 要素の型 */ public abstract class ImmutableIterator<T> implements Iterator<T> { @Override public void remove() { throw new UnsupportedOperationException("sorry, no can do :-("); } } https://github.com/tricreo/baseunits/b

    UnsupportedOperationExceptionと相続拒否 - 都元ダイスケ IT-PRESS
  • 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
  • イリュージョニストにならないために - 都元ダイスケ IT-PRESS

    前回は「クライアントにとって使いやすいAPI」について語りました。今回は「読みやすい実装」について。ネタ元は同じくSqlExecutor。 まず。javadoc厨で契約(仕様)原理主義の立場でいきなり厳しいことを言ってしまえば、「そもそもクライアントに実装を読ますなよ。javadocで全部伝わるように書け。」ってことになるのだが、まぁまぁ、そこまでスパルタンにはなるまい。 でだ。何か追いかけたい事があって、メソッドの実装を追いかけ始めた。そして、以下のようなコードに出会ったとする。 java.sql.Statement stmt = ...; java.sql.ResultSet rs = ...; ResultHandler handler = ...; String sql = ...; if (stmt.execute(sql)) { rs = stmt.getResultSet()

    イリュージョニストにならないために - 都元ダイスケ IT-PRESS
    suginoy
    suginoy 2010/07/24
  • クラスがメソッドの実行に必要なインスタンスを手に入れる方法色々 - 都元ダイスケ IT-PRESS

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

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