タグ

ブックマーク / codezine.jp (5)

  • 実践DDD本 第5章「エンティティ」 ~一意な識別子で同一性を識別~

    前回記事:実践DDDの第4章「アーキテクチャ」 ~レイヤからヘキサゴナルへ~ エンティティと値オブジェクト DDDにおける「エンティティ」とは一意なものを表現する概念です。一意であるため、長期にわたって変化できるオブジェクトとなります。例えば「社員」というエンティティの場合、社員番号で社員を一意に識別することで、同じ人物であることを把握し、住所や所属といった属性を適切に変更できます。なお、一意に識別して変更を管理する必要がないものは「値オブジェクト(6章にて紹介)」として取り扱います。 エンティティと値オブジェクト DDDでよくある失敗 DDDで設計を始めてみると、データの格納方法ばかり気になってしまうことがよくあります。このようなERモデリング(テーブル構成とリレーション関係)を先に検討されたエンティティは、DB項目のプロパティしか存在しない機能不足なモデル「ドメインモデル貧血症」にな

    実践DDD本 第5章「エンティティ」 ~一意な識別子で同一性を識別~
    mkwtys
    mkwtys 2017/04/13
  • 実践DDD本 第4章「アーキテクチャ」 ~レイヤからヘキサゴナルへ~

    前回記事:IDDDの第3章「コンテキストマップ」の解説 稿で紹介するアーキテクチャの種類 エバンズでは、DDDのアーキテクチャは「レイヤアーキテクチャ」を中心に紹介していました。これに対してIDDDでは「ヘキサゴナルアーキテクチャ」を提唱しています。さらにヘキサゴナルアーキテクチャと関係が強い「サービス指向(SOA、REST)」「コマンドクエリ責務分離(CQRS)」「イベント駆動アーキテクチャ(パイプ&フィルター、長期サーガ、イベントソーシング)」といった概念やアーキテクチャ方式についても取り上げています。 特定のアーキテクチャに依存しないDDD DDDは特定の技術に依存していないため、自由にアーキテクチャを選択することができます。アーキテクチャの選定においては、構築するシステムに求められる「機能要求(ユースケース、ユーザーストーリー、ドメインモデルのシナリオ等)」と「品質要求(性

    実践DDD本 第4章「アーキテクチャ」 ~レイヤからヘキサゴナルへ~
    mkwtys
    mkwtys 2017/02/03
  • リアクティブプログラミングとRxJavaの概要

    この連載では、Javaでリアクティブプログラミングを行うためのライブラリである「RxJava」を使って、リアクティブプログラミングにおけるポイントや、RxJavaが持つ機能について学んでいきます。今回は、RxJavaおよびリアクティブプログラミングの概要について解説します。 対象読者 Java経験者(初心者可) RxJava未経験者 リアクティブプログラミング未経験者 RxJavaとは RxJavaは、Javaでリアクティブプログラミングを行うためのライブラリです。このライブラリは軽量であり、また、他のライブラリに対する依存がないのでRxJavaのjarをパスに通すだけで使えるようになります。対応しているJavaのバージョンは6からで、さらにAndroidもバージョン2.3(Gingerbread)からサポートしています。 そして、RxJavaは厳密には関数型リアクティブプログラミング(F

    リアクティブプログラミングとRxJavaの概要
  • ドメイン駆動設計のメリットと始め方 ~ 1章「DDDへの誘い」

    はじめに ドメイン駆動設計(DDD)とは、2003年にエリック・エヴァンス氏が『Domain-driven design』という書籍にて提唱したソフトウェア開発手法です。DDDを簡単に説明すると「顧客と開発者が業務を戦略的に理解し、共通の言葉を使いながらシステムを発展させる手法」です。具体的には、チームの共通言語である「ユビキタス言語」を用いて「ドメインモデル」を構築し、それをコードとして実装します。また大規模で密結合なシステムにならないように「ドメイン」と「境界づけられたコンテキスト」にてシステムを分割し、「コアドメイン」という最重要領域に集中して開発を行います。 ソフトウェア開発の課題とDDDが解決すること DDDの登場から10年以上が経ち、DDDは着実に普及しつつあります。DDDが普及してきている背景として、システム開発がますます多機能/複雑になり、ビジネス的にも敏速な変更が求められ

    ドメイン駆動設計のメリットと始め方 ~ 1章「DDDへの誘い」
    mkwtys
    mkwtys 2016/08/01
  • いよいよ正式版が登場! jQuery 3での変更点と前バージョンからの移行のポイント

    何が変わったか(概要) jQuery 3.0では、非推奨としていたAPIやドキュメントになかったAPIを削除したり、全体的にAPIを整理してバグを修正しています。また一部のAPIでは、大きな仕様変更があります。既存のコードを動作させる場合には注意が必要ですので、まず移行プラグインをバージョンアップ対応ツールとして使って、影響具合を確認することをお勧めします。 なお、jQuery 3.0での特に大きな変更点は、次のとおりです。 バージョンの1化 Deferred機能が「Promises/A+」仕様に準拠 非推奨のload、unload、errorを削除して、onメソッドに統一 カスタムセレクタの高速化 既存コードからの移行 既存のコードを移行できるように、Ver3用移行プラグインがリリースされています。このプラグインでは、影響のあるコードに対して警告がブラウザのコンソールに表示されますので

    いよいよ正式版が登場! jQuery 3での変更点と前バージョンからの移行のポイント
  • 1