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

  • 「エリック・エヴァンスのドメイン駆動設計」 を献本していただきました - かとじゅんの技術日誌

    嬉しいことに「エリック・エヴァンスのドメイン駆動設計」 を献していただきました! 訳者の和智さん、関係者の方々、翔泳社さん ありがとうございます。おめでとうございます!Tシャツまでもらった!! 実は、私とid:daisuke-mは、この翻訳版の実装編のレビューに参加させていただきました。 昨年、DevLOVEのイベント「Beautiful Develpment」でDDDの話を聞いた後に、翻訳版が発売される噂を聞きつけ、和田さん(id:t-wada)に「レビューに参加したい!」と無理を言って、訳者の一人である和智さん(id:digitalsoul)を紹介してもらいました。 和智さんは快く対応くれて、レビューさせてもらうことになりました。ありがとうございました。 ドメイン駆動設計との出会いは、id:daisuke-mに勧められたのがきっかけです。洋書だし、分厚くて枕になりそうだし、英語も文体

    「エリック・エヴァンスのドメイン駆動設計」 を献本していただきました - かとじゅんの技術日誌
  • [モデリング][Java] モデリング能力を鍛えるシリーズの書籍 - じゅんいち☆かとうの技術日誌

    下の2冊は読んでない...。読んでみるかー。 他におすすめながあれば教えてください。 Domain-Driven Design: Tackling Complexity in the Heart of Software 作者: Eric Evans出版社/メーカー: Addison-Wesley Professional発売日: 2003/08/22メディア: ハードカバー購入: 4人 クリック: 109回この商品を含むブログ (89件) を見る ビジネスパターンによるモデル駆動設計 作者: Pavel Hruby,依田智夫,溝口真理子,依田光江出版社/メーカー: 日経BPソフトプレス発売日: 2007/08/13メディア: 単行 クリック: 7回この商品を含むブログ (14件) を見る アナリシスパターン―再利用可能なオブジェクトモデル (Object Technology Seri

    [モデリング][Java] モデリング能力を鍛えるシリーズの書籍 - じゅんいち☆かとうの技術日誌
  • 並行処理におけるメモリの可視性保証について - かとじゅんの技術日誌

    並行処理プログラミングにおいてJavaのメモリモデルを深く掘り下げたことがなかったのでちょっと気出してみます。しかし、間違っているところあるかもしれません。ツッコミいただければ適宜訂正させていただきます。 可変データへのアクセスを同期化 JavaでActorっぽいものを作ってみるで使っていた、canceledフラグはvolatileという修飾子を付けて宣言しています。 簡単にいうとと固有ロックを使わずに、フィールドを読み込むスレッドが、最後に書きこまれた値を見えるようにするためのvolatile修飾子です。 と、あまりに簡単に説明しているので、もう少し具体的に理解するために、まず、volatile修飾子を付けない通常の変数では、どうなるのかEffective Java第二版の「項目66 共有された可変データへのアクセスを同期する」の例で考えてみたいと思います。 Effective Jav

    並行処理におけるメモリの可視性保証について - かとじゅんの技術日誌
  • ビジネスモデリングで考えること ー基礎編ー - かとじゅんの技術日誌

    DDDとかの抽象度の高い話はなかなか分かりずらいという方もいると思うので、以下の書籍で扱っているビジネスパターンでのモデリングも併せて考えていきたいと思います。 私もまだ勉強不足というものあるし、チャレンジングな試みなので途中でヘタれるかもしれませんが、、、頑張りたいと思います。お付き合いいただければ幸いです ビジネスパターンによるモデル駆動設計 作者: Pavel Hruby,依田智夫,溝口真理子,依田光江出版社/メーカー: 日経BPソフトプレス発売日: 2007/08/13メディア: 単行 クリック: 7回この商品を含むブログ (14件) を見る 登場人物 とりあえず、今回は登場人物だけ把握しましょう。 まず、書で主軸に掲げているREAとはなんでしょうか。 REA = Resource, Event, Agentの略で、書では経済リソース、経済イベント、経済エージェントと表現して

    ビジネスモデリングで考えること ー基礎編ー - かとじゅんの技術日誌
  • 並行処理プログラミングを究めるシリーズの書 - かとじゅんの技術日誌

    並行処理プログラミングを究めるシリーズの書 とりあえず以下を読んでます。他に何かよいのがあれば教えてください。 Java言語仕様 第3版 (The Java Series) 作者: ジェームズゴスリン,ガイスティール,ビルジョイ,ギッラードブラーハ,James Gosling,Guy Steele,Bill Joy,Gilad Bracha,村上雅章出版社/メーカー: ピアソンエデュケーション発売日: 2006/12メディア: 単行購入: 1人 クリック: 108回この商品を含むブログ (42件) を見る The Java Language Specification The Java Language Specification - Threads and Locks Java並行処理プログラミング ―その「基盤」と「最新API」を究める― 作者: Brian Goetz,Joshua

    並行処理プログラミングを究めるシリーズの書 - かとじゅんの技術日誌
  • スレッドセーフにするために考えること 〜応用編 その2〜 - かとじゅんの技術日誌

    スレッドセーフにするために考えること 〜応用編 その1〜 - じゅんいち☆かとうの技術日誌 では、エンティティのインスタンスを共有せずに、スレッドの振る舞いを関数型のようにするとよいという話をしました。そして、アトミックを必要とするトランザクション操作は、リポジトリの責務にしました。 エンティティのインスタンスを共有しない場合はよいが、どうしても共有しなければならない場合はどうしたらよか という点はまだ解決できていません。それをこのエントリで考えていきましょう。 スレッドセーフに対するエンティティとバリューオブジェクトの違い まず、エンティティとバリューオブジェクトで共有した時の影響が異なる点について説明しておきます。 前エントリでも説明したようにEmployeeなどのエンティティは、同一インスタンスで状態を変更できる可変オブジェクトです。スレッドセーフにするときに工夫が必要なのは可変オブ

    スレッドセーフにするために考えること 〜応用編 その2〜 - かとじゅんの技術日誌
    pekepekesamurai
    pekepekesamurai 2011/02/02
    [[あとで読む]]
  • [Java][並行処理] スレッドセーフにするために考えること 〜応用編 その1〜 - かとじゅんの技術日誌

    スレッドセーフにするために考えること 〜基礎編〜 - じゅんいち☆かとうの技術日誌 基礎編では、スレッドセーフについての基的な考え方を書きました。 スレッドセーフにするには、アトミック性を保証することが必要でした。この応用編では、その点を注意しながら、実際にドメイン層の振る舞いを持つドメインモデルでどのようなことを気をつければスレッドセーフになるか考えてみたいと思います。考えながら、書いてるのでちょっとおかしいところがあるかも。ご容赦をw モデルオブジェクトを複数のスレッドで共有して操作してみる とりあえず、典型的なサンプルとして従業員と部署。。もうやだ〜このサンプル〜。とか言わないのw 以下の従業員は名前と役職、所属部署(複数可)を保持します。スレッドとか気にせずとりあえず適当にモデリング。toStringはデバッグ用にcommons-langのToStringBuilderを使います

    [Java][並行処理] スレッドセーフにするために考えること 〜応用編 その1〜 - かとじゅんの技術日誌
    pekepekesamurai
    pekepekesamurai 2011/02/01
    [[あとで読む]]
  • [Scala] Scalaでコードを書きたいけど、どの開発環境がいいの? - かとじゅんの技術日誌

    最近、Scalaが増えてきてますが、早い話こういう話になりますよね。はわかった、コード書かせろとw 実際にコーディングするための開発環境はどれがいいのか、触ってきた感想を超簡単にレポートします。 触った開発環境は以下です。 Eclipse + Scalaプラグイン Emacs + ENSIME NetBeans + Scalaプラグイン IntelliJ IDEA + Scalaプラグイン EclipseのScalaプラグインであるScala IDE for Eclipseは頑張っているようですが、時々応答しなくなるとか、まだ安定性に欠ける感じです。まぁ、時間で解決できるような気がしています。安定するようになれば、インクリメンタルビルドも使えるようになると思うので、かなり期待してます。ですが、今はちょっと実用レベルではないと思います。 Emacs + ENSIMEは結構軽そうで よさげ

    [Scala] Scalaでコードを書きたいけど、どの開発環境がいいの? - かとじゅんの技術日誌
    pekepekesamurai
    pekepekesamurai 2011/01/31
    [[あとで読む]]
  • スレッドセーフにするために考えること 〜基礎編〜 - かとじゅんの技術日誌

    ええっと、リクエストされたので、今回は並行処理ネタにいってみます。 並行処理といえば、このは必読書ですね。でも、書いてることは、かなりムズカシイデス(´・ω・`) Java並行処理プログラミング ―その「基盤」と「最新API」を究める― 作者: Brian Goetz,Joshua Bloch,Doug Lea出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/11/22メディア: 単行購入: 24人 クリック: 419回この商品を含むブログ (163件) を見る ということで、並行処理について、もうちょっと優しく分かりやすく解説できないか考えて書いてみます。 スレッドセーフにするには 今回は、プログラムをスレッドセーフにするためにどんなことを考えればよいか。そういうテーマです。 アンスレッドセーフなコードから このの最初の方に、"スレッドのリスク"という章で、スレッド

    スレッドセーフにするために考えること 〜基礎編〜 - かとじゅんの技術日誌
    pekepekesamurai
    pekepekesamurai 2011/01/31
    [[あとで読む]]
  • ドメイン駆動設計を始めるときにおすすめなコード例 - かとじゅんの技術日誌

    ドメイン駆動設計で開発する時に、まずお手となるコード例をみたいですよね。 まず、これ見ましょう。 DDDSampleは、Javaで実装されたものです。*1 原書の内容と連動しているので、原書を読んでいる人にとっては分かりやすいと思います。読んでいなくても、概念を抑える前に具体的なコードで実態を把握しておいて、を読んでもいいと思います。 ちなみに、このあたりを見ていただくと、ドメインオブジェクトを規定するためのインターフェイスが定義されています。 http://dddsample.svn.sourceforge.net/viewvc/dddsample/trunk/dddsample/tracking/core/src/main/java/se/citerus/dddsample/tracking/core/domain/patterns/ このインターフェイスを参考に別のライブラリに切

    ドメイン駆動設計を始めるときにおすすめなコード例 - かとじゅんの技術日誌
  • ウェブアプリケーションの構造について - かとじゅんの技術日誌

    日経ソフトウエア 11月号の特集2で「最新Eclipseで良いJavaプログラムを書こう」に関連する話題として、さらに視野を広げて実用的なウェブアプリケーションでのレイヤー構造とかドメインオブジェクトの関係はどうなるのか?という点について解説してみたいと思います。(まだ日経ソフトウエア11月号を手にしていない方はぜひ買ってくださいw) 結論から先に出しますが、ドメイン駆動設計では一般論として下図のようなレイヤー構造やオブジェクトの関連が提唱されています。 ドメイン層のオブジェクトについては変わりないのですが、ドメイン以外のレイヤーに新しく2つのサービスが登場しているので、まずそこから簡単に説明します。 ドメイン層以外のサービス 実はサービスはドメイン層だけではなく、アプリケーション層とインフラストラクチャ層にも存在する場合があります。その役割を以下にまとめてみました。 レイヤー オブジェク

    ウェブアプリケーションの構造について - かとじゅんの技術日誌
  • テストファーストは設計手法 - かとじゅんの技術日誌

    ご無沙汰しています。最近、アジャイルプロジェクトに参加している関係もあり、テストファースト(別名、テスト駆動開発=TDD)をガチでやっています。 みなさん、テストファーストとか聞くと、「なーんだ、テストか。実装には興味あるけど、テストは興味ねー」いいそうですね。でも、そんなことないんですよ。テストを利用して、より良い設計や実装を目指すための手法です。 細かい実践方法はid:t-wadaさんのブログや記事に任せるとして、メリットは二つあると思っています。 まず1点目。実装コードを書けるのは、テストが失敗した後だけです。こうすることでインターフェイス*1を先に考えて設計し実装できるようになります。内部の実装から始めてしまうと、このインターフェイスを基軸とした設計ができずに、無用な複雑さを織り込む可能性がでてきます。つまり、質的な設計に集中したいなら、まずはインターフェイス指向で考えて実装す

    テストファーストは設計手法 - かとじゅんの技術日誌
  • クラスローダについて - かとじゅんの技術日誌

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

    クラスローダについて - かとじゅんの技術日誌
    pekepekesamurai
    pekepekesamurai 2010/07/07
    [[あとで読む]]
  • チェック例外がJavaにあってC#にない理由 - かとじゅんの技術日誌

    例外の再考 - じゅんいち☆かとうの技術日誌 に引き続き、チェック例外がJavaにあってC#*1になぜがないか考察してみようと思います。 また、いろいろググっているとよい記事がありました。 なぜ C# の言語仕様に検査例外がないのか?という記事。 "Why doesn't C# have exception specifications?" http://msdn.microsoft.com/en-us/vcsharp/aa336812.aspx 基原文読んでくださいね。私の英語力は当てにならないのでw ここで言及しているのは以下の項目。順におっかけてみよう。 Versioning Productivity and code quality Impracticality of having class author differentiate between "checked" and

    チェック例外がJavaにあってC#にない理由 - かとじゅんの技術日誌
  • 1