タグ

ブックマーク / blog.j5ik2o.me (7)

  • ドワンゴを退職しました - かとじゅんの技術日誌

    2/28日付けでドワンゴを退職しました。お世話になった会社なのでちゃんとお礼をいっておこうと思います。 初めてのコンシューマ向けウェブサービスでした。とてもよい経験をさせてもらいました。ありがとうございました。 一番大きいところは、ScalaとDDDを採用したサービスを開発してリリースしたってことですね。そのあたりの詳しい話は Scala Conference 2013 で聞けると思います*1。 Scalaで開発した感想ですが、よく話題になる習得コストはそれほどかからなかったように思います。ある程度先にScalaをやっている人がいれば、その人を軸に最初は命令型(var)で書いて言語仕様も部分的な理解でも問題なかったですね。慣れてきたらvalのコードに挑戦するとよいですね。valでコードが書けるとより関数型スタイルになるので、コードが理解しやすくなります。 こういう風に段階的に学習して、プロ

    ドワンゴを退職しました - かとじゅんの技術日誌
    ocs
    ocs 2013/03/01
  • クラスローダについて - かとじゅんの技術日誌

    Javaでは欠かせないクラスをロードするためのクラスローダ。普段意識していないかもしれませんが、しっかりと縁の下で支えているよね。(Java言語仕様を確認しながら書いてないので間違っていたらツッコミよろしくです) クラスローダとは Javaクラスローダー(英: Java Classloader)とは、Java仮想マシンの一部で、JavaクラスをJava仮想マシンに動的にロードする役割を持つ [1]。通常、クラスは必要になったとき初めてロードされる。Javaの実行系は、クラスローダーがあるおかげでファイルやファイルシステムについて知る必要がない。 大きく分けて以下の3つの種類があります。 ブートストラップ クラスローダ エクステンション クラスローダ システム クラスローダ ブートストラップは、Javaのコアライブラリ($JAVA_HOME/lib/rt.jar)のライブラリ、パッケージがj

    クラスローダについて - かとじゅんの技術日誌
    ocs
    ocs 2011/08/14
  • マルチコア時代に備えて本気でメモリモデルを理解しておこう - メモリバリア編 - - じゅんいち☆かとうの技術日誌

    このエントリを読む前提条件として、マルチコア時代に備えて気でメモリモデルを理解しておこう - リオーダー & finalフィールド 編 - - じゅんいち☆かとうの技術日誌を読んで、リオーダーとは何かを理解していることとします。 前回のおさらいをすると、 プログラムの実行順序は、リオーダーが許可される場合と禁止される場合がある。並行処理ではリオーダーを想定しなければ、処理結果の整合性が確保できない。(特にマルチプロセッサ環境) リオーダーを禁止して、可視性を保証する。(finalフィールドはコンストラクト時に完全に初期化され、コンストラクト後はスレッドから見えるようになる) でした。 リオーダーについて理解できたら、今度はメモリバリア命令でスレッド毎に扱うメモリと、大域のメインメモリとのメモリI/Oについて見ていきたいと思います。メモリバリアが理解できれば、以下のソース*1のスレッドがな

    マルチコア時代に備えて本気でメモリモデルを理解しておこう - メモリバリア編 - - じゅんいち☆かとうの技術日誌
    ocs
    ocs 2011/06/01
  • 生成だけではなく複製もファクトリに任せたほうがよい - かとじゅんの技術日誌

    DDDで設計を始めると不変条件を維持するために、エンティティなどの可変オブジェクトの複製を行うことがよくあります。 Javaの場合は、Cloneableインターフェイスを実装して、実装型に応じた複製インスタンスを返すcloneメソッドを作る。以下のような感じ。 public class Employee implements Cloneable { private String name; // setter, getter 省略 @Override public Employee clone() { try{ return (Employee)super.clone(); } catch (CloneNotSupportedException e){ throw new Error(e); } } } このcloneメソッドは便利なので普通に使っていたのですが、最近、簡単に使ってよいのだ

    生成だけではなく複製もファクトリに任せたほうがよい - かとじゅんの技術日誌
    ocs
    ocs 2011/03/16
  • JMockitは理想的なモックフレームワーク - かとじゅんの技術日誌

    テストを書いているとモックオブジェクトを使う機会が多いと思います。そのモックオブジェクトは自前で作るよりは、JMockやMockito*1などのフレームワークを利用した方が楽でしょう。 今回は機能的に、ほぼ最強と思われるJMockitを紹介します。 これが、他のモックフレームワークとの機能比較です。 MockingToolkitComparisonMatrix - jmockit - A feature matrix comparing several mocking toolkits. - Project Hosting on Google Code 機能が多ければ使いやすいか。そんなことはないと思います。しかし、これは使いやすいかもと周りの人からお勧めがあったので、実際に使ってどんなところが使えるのか検証してみたので、書いてみます。あと、最後にScalaで使えるか試してみました。 あ、

    JMockitは理想的なモックフレームワーク - かとじゅんの技術日誌
    ocs
    ocs 2011/02/08
  • JavaプログラマがScalaを学習するときに参考になる本 - かとじゅんの技術日誌

    とりあえず、ひとり Scalaに感染させますた。 scalaを始めたんですね。前々からやろうと思っていましたが、id:j5ik2o氏に触発されて格的に。 ということで、JavaプログラマがScalaを始める時に参考になるとか、列挙します。 Javaとの対比で書かれているので理解しやすい。REPL(Read Eval Print Loop)を使っての写経にはもってこいです。一番おすすめしたいScalaプログラミング入門 作者: デイビッド・ポラック,羽生田栄一,大塚庸史出版社/メーカー: 日経BP社発売日: 2010/03/18メディア: 大型購入: 10人 クリック: 227回この商品を含むブログ (29件) を見る Scalaの文法は巨大です。なのでそういう時は、網羅的なよりポイントが絞られているから、まず読んでみることをおすすめします。Javaの話も出てくるので読みや

    JavaプログラマがScalaを学習するときに参考になる本 - かとじゅんの技術日誌
    ocs
    ocs 2010/11/04
  • ドメインモデリング能力を鍛える - かとじゅんの技術日誌

    ドメインモデルに対する日米の温度差|Ouobpo 私が思うにドメインモデリングが敷居が高いということではなくて、オブジェクト指向自体がそもそも敷居が高いからだと思う。 多態性やデザインパターンとか出てくると目がぐるぐる回るというかw そこまで厳格にオブジェクト指向を追求しなくても、わかりやすいコードでよいというものわかる。 でも、考えてみると、アプリケーションの文はドメイン、問題領域を扱うこと。会計処理のできない会計ソフトや、データベース設計ができないERDツールはどんなにわかりやすいコードを書いても目的を達成していないことになる。いくら利口なUIを作っても、問題解決できないアプリケーションに価値はない。オブジェクト指向で、問題領域をいかにして扱うかに注力しているのがドメインモデルの考え方。あくまでこのドメインモデルが幹で、UIORMは枝葉になる。多少難易度が高くても目的を達成できる手

    ドメインモデリング能力を鍛える - かとじゅんの技術日誌
    ocs
    ocs 2010/07/13
  • 1