タグ

ブックマーク / digitalsoul.hatenadiary.org (14)

  • Greg Young流CQRS - Mark Nijhof - Digital Romanticism

    この記事はMark Nijhof氏のブログ記事「CQRS à la Greg Young」を氏の許可を得て翻訳したものです。(原文公開日:2009/11/11) この記事は以前のブログである"blog.fohjin.com"にて公開していたものです。 以前、2日間の講習を受けた時に、ビールを飲みながらGreg Young氏とドメイン駆動設計について語るという幸運に恵まれたことがあります。その時の話題は専ら、コマンドクエリ責務分離(CQRS:Command and Query Responsibility Segregation)パターンに関するものでした。Gregは、Eric Evans氏が著作において説明したドメイン駆動設計を受け継ぎ、主に技術的な実装を進化させています。コマンドクエリ分離(CQS)は元々Bertrand Meyer氏によって考案されたもので、オブジェクトのレベルで適用さ

    Greg Young流CQRS - Mark Nijhof - Digital Romanticism
    nobeans
    nobeans 2013/04/19
  • テスト駆動開発の進化 - Digital Romanticism

    デブサミ関西2012での講演内容まとめ はじめに 今月、GOOS日語版が発売されました。 実践テスト駆動開発 (Object Oriented SELECTION) 作者: Steve Freeman,Nat Pryce,和智右桂,高木正弘出版社/メーカー: 翔泳社発売日: 2012/09/14メディア: 大型購入: 4人 クリック: 262回この商品を含むブログ (31件) を見る継続的デリバリーに続き、高木さんと一緒にお仕事をするのはこれで二冊目です。今回も多くの人に助けられて、目標としていたデブサミ関西での出版にこぎつけることができました。関係者の皆さま、どうもありがとうございました。 講演では触れませんでしたが、ここで「実践テスト駆動開発」というタイトルの由来について少し書いておきます。原書のタイトルはご存じの通り、"Growing Object-Oriented Softwa

    テスト駆動開発の進化 - Digital Romanticism
    nobeans
    nobeans 2012/09/20
  • モックによるインターフェイスの発見 - Digital Romanticism

    設計ツールとしてのモックの使い方について考える。 導入 先日、"Mock Roles, not Objects"の日語版「ロールをモックせよ」を公開しました。この論文は2004年に書かれたもので、著者はSteve Freeman氏、Nat Pryce氏、Tim Mackinnon氏、Joe Walnes氏という豪華メンバーです。また、Steve Freeman氏とNat Pryce氏は『Growing Object-Oriented Software, Guided by Tests (Addison-Wesley Signature Series (Beck))』(いわゆるGOOS)の著者でもあり、"Mock Roles, not Object"で語られている思想はGOOSのベースになっているとも言えます。 今回は、この"Mock Roles, not Objects"(以下、MRnO

    モックによるインターフェイスの発見 - Digital Romanticism
  • 書評:アジャイルサムライ―達人開発者への道 - Digital Romanticism

    オーム社様と監訳者の方々より献いただきました。厚くお礼申し上げます。ありがとうございます! アジャイルサムライ−達人開発者への道− 作者: Jonathan Rasmusson,西村直人,角谷信太郎,近藤修平,角掛拓未出版社/メーカー: オーム社発売日: 2011/07/16メディア: 単行(ソフトカバー)購入: 42人 クリック: 1,991回この商品を含むブログ (257件) を見る はじめに まずは「読者の声」から: 最初は、軽いノリの入門書だろうと高をくくっていた。「マスター・センセイ」だし、そもそも「サムライ」だし。でも、そんなに甘くない。軽い文体とは裏腹に、アジャイルな開発のありかたが、きわめてロジカルかつ網羅的に語られている。ありそうで、なかった。手元に置いておけば、きっといいことがあるはずだ。 > 和智右桂 『エリック・エヴァンスのドメイン駆動設計』訳者 私はこの

    書評:アジャイルサムライ―達人開発者への道 - Digital Romanticism
    nobeans
    nobeans 2011/07/19
    圧倒的な書評力
  • 書評:プログラミングGroovy - Digital Romanticism

    著者の方々より献頂きました。厚く御礼申し上げます。ありがとうございます! プログラミングGROOVY 作者: 関谷和愛,上原潤二,須江信洋,中野靖治出版社/メーカー: 技術評論社発売日: 2011/07/06メディア: 単行(ソフトカバー)購入: 6人 クリック: 392回この商品を含むブログ (155件) を見る はじめに まずはじめに、これはGroovyを好きな方々、Groovyのことが気になっている方々にとっての必携書になると思います。素晴らしいお仕事をなさった著者のみなさまに感謝します。 さて、の紹介をする前に、私のGroovyに対するポジションを明らかにしておきたいと思います。過去の記事を見て頂けばおわかり頂ける通り、私は時々Groovyを触っています。たとえばDSLを書いてみたいとき、DCIアーキテクチャで何か作ってみたいとき、モダンTDDを試したいとき・・・。意図が伝わ

    書評:プログラミングGroovy - Digital Romanticism
    nobeans
    nobeans 2011/07/07
    "Javaプログラマに対するGroovyの敷居の低さは驚異的"/”Groovyに対して、どう控えめに見てももっと評価されてよい”/"頭の中に、「あ、こんなことができるんだ」というインデックスを作ることが重要"
  • TDDの実践 〜TDDBC仙台レポート〜 - Digital Romanticism

    2011年7月2日に開催されたTDDBC仙台のレポート。 導入 「TDD Boot Camp」通称TDDBCにはずっと参加したいと思っていたわけですが、今回仙台で機会を得ることができました。最初はJavaでと思っていたのですが、Scala組に入れて頂きまして、山中(@ymnk)さん、武田(@takedasoft)さんと3人でチームを組んでペアプロという貴重な体験をさせて頂きました(どうもありがとうございました!)。最終的には仕様変更2が何となくかたちができたところで時間切れとなりました*1。 プログラムが組み上がっていく過程や、興味深いリファクタリング、うっかりテストを書かずにコードを修正してしまったことによるバグの埋め込み、モックを使ったタイマー処理の分離など、非常に興味深い体験を数多くさせて頂きましたので、ここにご報告させて頂きます。なお、作業中のコードは記憶を頼りに書いていますので、

    TDDの実践 〜TDDBC仙台レポート〜 - Digital Romanticism
    nobeans
    nobeans 2011/07/05
  • ドメイン駆動式ソフトウェアの育て方 - Digital Romanticism

    レッツゴーデベロッパー2011での発表原稿とスライド 導入 2011年05月28日「レッツゴーデベロッパー2011@仙台」が開催されました。このイベントのテーマは「共有と交流」。"「共有」には、最新技術、知識、復興への想い、それぞれの決意を共有することを、「交流」には、東北と東北圏外のデベロッパーやコミュニティ同士の交流を深めることを込めて。" このイベントにてDDDセッションに登壇させて頂きましたので、そのときの発表原稿とスライドを公開致します。なお、当日はワークとして参加者の方にペアモデリングを行って頂きましたが、このドラフトではその部分を割愛しています。 スライドはこちら また映像はこちらで公開して頂いています。 さて今年4/9にDDD日語版が出版されました。それから2ヶ月弱、翔泳社様から、はやくも増刷のお知らせを頂きました。多くの方々とおかげと深く感謝しています。さて、この増刷が

    ドメイン駆動式ソフトウェアの育て方 - Digital Romanticism
  • 戦略的設計入門 - Digital Romanticism

    "Beautiful Development"(2011.04.09 DevLOVE)の講演資料と原稿 はじめに 日(4/9)、DevLove様と共同で、第2回"Beautiful Development"を開催致しました。これは、日語版DDDの発売を記念し、DDDに造詣の深い方々に集まって頂き、2枠構成で講演して頂くという豪華なものでした。このカンファレンスでトリを務めさせて頂きましたので、講演資料と原稿を公開致します*1。なお、今回の発表は「ドメイン駆動設計入門」では駆け足でまとめてしまった部分を、改めてクローズアップした続編と考えて頂くこともできるでしょう。 アジェンダはこちら 戦略的設計とは? サンプル業務 モデル駆動設計をすると? 戦略的設計 スライドはこちら 戦略的設計とは? 「戦略的設計(Strategic Design)」とは、DDD第4部のタイトルです。DDDは全体で

    戦略的設計入門 - Digital Romanticism
    nobeans
    nobeans 2011/05/09
    4部の内容がきれいにサマライズされている。すごい。
  • ドメイン駆動設計入門 - Digital Romanticism

    "Beautiful Develpment"(10/27 DevLOVE)の講演資料と原稿 はじめに 日(10/27)、DevLOVE様主催で、"Beautiful Develoment"と題されたイベントが開催されました。これは「ドメイン駆動設計("DDD:Domain-Driven Design")」を題材に、入門から実践までを語り尽くすというコンセプトのものです。このイベントにおける講演のトップバッターとして、ドメイン駆動設計の根底にある基的な考え方についてお話しさせて頂きましたので、講演資料と原稿を公開いたします*1。 スライドはこちら アジェンダは以下の通りです。 導入 オブジェクトとは? モデルとは? ドメイン駆動設計とは? まずは、ドメイン駆動設計のベースとなっている、「オブジェクト指向」や「モデル」について整理した上で、実際にドメイン駆動設計とはどういうものかを見ていき

    ドメイン駆動設計入門 - Digital Romanticism
    nobeans
    nobeans 2010/10/28
  • 組織パターン トップ10 - James Coplien - Digital Romanticism

    この記事はJames Coplien氏の記事「Organizational Patterns: Building on the Agile Pattern Foundations」を、氏の許可を得て翻訳したものです(元の記事が長いため抄訳としています)。(原文最終更新日:2006年7月9日) 目的の統一性("Unity of Purpose") 顧客の参画 ("Engage Customers") ドメイン専門家という役割 ("Domain Expertise in Roles") アーキテクトがプロダクトをコントロールする ("Architect controls Product") 作業の均等な分配("Distribute Work Evenly") 関数の所有者とコンポーネントの所有者 ("Function Owner and Component Owner") 雇われアナリスト (

    組織パターン トップ10 - James Coplien - Digital Romanticism
    nobeans
    nobeans 2010/10/17
    "抽象的なものというのは、無知の訓練された形式にすぎません","アーキテクトは開発者にアドバイスしたり、コミュニケーションしたりするだけでなく、実装に参加しなければなりません"
  • 内部DSLの表現力 - Digital Romanticism

    FolwerのDSL Bookを参照しつつ、クロージャを利用したサンプルを用いて内部DSLの表現力について考察する。 導入 - クロージャについて 前回までのエントリでは、内部DSLの実装パターンとしてObject ScopingとMethod Chainingを利用しました。これらのパターンについてFowlerはこう説明しています。 One of the main purposes for Method Chaining and Object Scoping is to narrow the scope of a function call to a single object. This narrowing both provides a limited namespace for the functions that are part of the DSL and targets a

    内部DSLの表現力 - Digital Romanticism
  • DCIアーキテクチャ - Trygve Reenskaug and James O. Coplien - Digital Romanticism

    この記事はartima developerに掲載されている、Trygve Reenskaug氏とJames O. Coplien氏による記事「The DCI Architecture: A New Vision of Object-Oriented Programming」を、著作権者であるBill Bennrs氏の許可を得て翻訳したものです。文内の図の著作権はArtima, Inc.に帰属します。(原文公開日:2009年3月20日) 要約 オブジェクト指向プログラミングはプログラマとエンドユーザの視点をコンピュータコードにおいて統一するものと考えられていた。この恩恵はユーザビリティとプログラムの分かりやすさの両面にわたる。しかし、オブジェクトは構造をとらえるのに長けている一方で、システムの動作をとらえることができていない。DCIはエンドユーザのロールに関する認識モデルとロール間の関係を

    DCIアーキテクチャ - Trygve Reenskaug and James O. Coplien - Digital Romanticism
  • モデル駆動エンジニアリングのために汎用言語とDSLを組み合わせる - Johan den Haan - Digital Romanticism

    この記事はJohan den Haan氏のブログ記事「http://www.theenterprisearchitect.eu/archive/2008/04/15/combining_general_purpose_lang」を、氏の許可を得て翻訳したものです。(原文公開日:2008年4月15日) モデル駆動エンジニアリングに関する以前の記事で、私はMDEの基的な原則は「全てがモデルである」ということだと述べた。モデルとその要素にはファーストクラスの地位が与えられている。質的な違いは、モデルがもはやプログラマのための単なるドキュメントとして使用されるだけではなく、ソフトウェア開発を駆動させるために直接利用できるということだ。モデルは、実装、変換、ソフトウェア成果物の諸相、システムに関する視点などを定義するのに用いられる。この記事で、私はモデルとは何なのか(モデルに関する様々な利用シナ

    モデル駆動エンジニアリングのために汎用言語とDSLを組み合わせる - Johan den Haan - Digital Romanticism
    nobeans
    nobeans 2010/05/19
  • モデルレイヤと言語レイヤ - Digital Romanticism

    Martin FowlerのDSL Bookで紹介されている内部DSLの基的なアーキテクチャについて、サンプルコードと合わせて考察する。 導入 内部DSL("Internal DSL")とは、ホスト言語を使って構築されるDSLを指します。外部DSL("External DSL")がXMLなどを用いてホスト言語とは関係なく構築できるのと対称的に、内部DSLではホスト言語の文法的制約の中で自然言語的なAPIが構築されます。具体例としては、Mockitoのコードを以下に挙げます(サイトに紹介されているサンプルを一部改変)。 LinkedList mockedList = mock(LinkedList.class); when(mockedList.get(0)).thenReturn("first"); when(mockedList.get(1)).thenThrow(new Runtim

    モデルレイヤと言語レイヤ - Digital Romanticism
  • 1