タグ

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

  • ScalaでEclipse Pluginを書いてみたよ - 都元ダイスケ IT-PRESS

    う ご く w w w http://bit.ly/gy1lJ8 都元ダイスケ🍅 on Twitter: "う ご く w w w http://bit.ly/gy1lJ8" えーと。id:kompiroさんとネタかぶりですがw 一足先にScalaを試したのでご報告。 普通に動きました。特に難しいことしてません。id:kompiroさんの手順の変法です、で済まそうとしたらちょっと違ったので手順を箇条書きしときます。 Eclipse for RCPにScala IDEをインストールしとく。 普通のScalaプロジェクトをつくる。 EclipseプラグインプロジェクトでHello worldのスケルトンを作る。 Scalaプロジェクトの .project と .classpath をプラグインプロジェクトに適当にマージする。 Scala-2.7のjarを*1libにコピーしてMANIFES

    ScalaでEclipse Pluginを書いてみたよ - 都元ダイスケ IT-PRESS
  • Hadoopとかに入門してみる 〜 分散技術が出てきた背景 - 都元ダイスケ IT-PRESS

    調べたメモ。色々思い込みや想定に基づいた事も書いてるので、鵜呑みして騙され注意報発令さしとく。 最近分散技術系の話題をよく聞くようになりました。企業内グループ内で使うような業務システムであれば、そこまで無茶な数のアクセスも無いだろうから、数台〜数十台規模のサーバを立てればだいたい事足りたのだろう。例えば、サーバ構成を「Webサーバ - APサーバ - DBサーバ」という3レイヤにして、各サーバを冗長化していく、等の手法でどうにかなった。 ただ、処理リクエスト数の増大や、処理対象データの増大、そして処理ロジックの複雑化に伴って、大量のデータを逐次処理するだけでは処理が追いつかない世界が出てきた。業務システムではなく、サービスプロバイダの世界では、この現象は顕著。 また、Webサーバ層とAPサーバ層の冗長化は比較的簡単だけども、DBサーバ層は大量のステートを持っているレイヤだから冗長化がめんど

    Hadoopとかに入門してみる 〜 分散技術が出てきた背景 - 都元ダイスケ IT-PRESS
  • ジェネリクスを使いこなそうゼ - 都元ダイスケ IT-PRESS

    というネタでエントリ書けよゴルァ、とid:happy_ryoに脅されて書くエントリー。 ジェネリクスご存知ですか。使ってますか。アノテーションと共にJava5から現れた、<> で囲まれた変な奴。 全くの余談ですが、アノテとジェネリクスの事を理解していなかったその昔。漠然と「たまに見かけるあの@とか、<> とかって何だろう」と思った訳ですよ。で、どうしようもなくて某所で聞いてみたんですね。そしたらさー、「ググれカス」って言われちゃってさwwww 「Java @」とか「Java <>」で検索してみるわけですよw 無理だろww はい、話し始める前から脱線してる都元ですコンバンワ。 ジェネリクス初心者がまず触れるのは、コレクションですかね。Listとかでお世話になる訳ですね。意図しない型のインスタンスを突っ込まれる心配もなく、取り出し時にキャストする必要もなくなる、なんか嬉しい奴、というイメージだ

    ジェネリクスを使いこなそうゼ - 都元ダイスケ IT-PRESS
    soh335
    soh335 2010/08/23
  • ボク、if文。わるいモンスターじゃないよ! - 都元ダイスケ IT-PRESS

    id:aroundthedistance に召還されたぜ。 http://d.hatena.ne.jp/aroundthedistance/20100727/1280227851 …その昔なー。Seasar Conferenceで「あなたのコードからnewとifが消えます、魔法のDI」みたいなセッションをした。今思い出して「釣りすぎたぜサーセン」という気分になったことをまず懺悔しておく。 この doBusinessん中のif〜else ifをなんとかしたい。 …(中略)… ちょっとすっきりした。けどまだifが残ってるよね。 ポリモーフィズムの例をもうちっと実用的に書いてみた。 - 都元ダイスケ IT-PRESS どんだけif文悪者なんだ。そこまで嫌ならば、一度もif文を書かずにコードを書けばいい。無理だがなw と自嘲。 if文に限らず、問題になるのは濫用なのだ。"ある知識"がトッ散らかって

    ボク、if文。わるいモンスターじゃないよ! - 都元ダイスケ IT-PRESS
    soh335
    soh335 2010/08/03
  • イリュージョニストにならないために - 都元ダイスケ 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
    soh335
    soh335 2010/07/17
  • 可視性と公開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
    soh335
    soh335 2009/12/24
  • 例えば、if〜instanceofを避ける(2) - 都元ダイスケ IT-PRESS

    例えば、if〜instanceofを避ける(1) - 都元ダイスケ IT-PRESSの続き。 解決策は幾つかある。とりあえず今回は1つ紹介。 public enum Processor { LIST(List.class) { @Override public void process() { // List用処理 } }, MAP(Map.class) { @Override public void process() { // Map用処理 } }; private final Class<?> clazz; private Processor(Class<?> clazz) { this.clazz = clazz; } public abstract void process(); public static Processor get(Object obj) { for (Pro

    例えば、if〜instanceofを避ける(2) - 都元ダイスケ IT-PRESS
    soh335
    soh335 2009/05/23
  • 継承とコンポジット - 都元ダイスケ IT-PRESS

    id:happy_ryoに「わかんねーんだよ、説明してみろゴルァ」されたので、書いてみる。 前書き*1 とりあえず、日のエントリのキモを最初に。「オブジェクト指向は、隠す技術である」(俺談w)ということを意識して読んで見てください。隠すとは何か? 公開しすぎない事。分かりやすく言えば、publicをprivateに変える事。これが「隠す」。 んじゃあ、隠すと何が良いのか。あるクラスから、見えるもの(=操作できる可能性の範囲(scope))が狭ければ狭いほど出来る事のバリエーションが減るから、プログラムは単純になる。つまり、隠すと複雑性(complexity)が下がる*2。 要件を満たした上で、いかに型(class, interface, etc.)やメンバ(field, method)の可視性を落とすか。可能な限り可視性を下げ、プログラムを単純化し、メンテナンス性を上げるにはどうしたらい

    継承とコンポジット - 都元ダイスケ IT-PRESS
    soh335
    soh335 2009/05/20
  • 1