タグ

dddに関するsisidovskiのブックマーク (23)

  • ドメイン駆動設計 基本を理解する

    2. 日の内容 • ドメイン駆動設計の「考え方」 • 「まえがき」を中心に – オブジェクト指向、エクストリームプログラミング • ドメイン駆動設計の「3つの原則」 • 1章 2章 3章から – ドメイン知識の習得、言葉による意図伝達、コードで表現 • ドメイン駆動設計の「基スキル」 • 4章 5章 6章 7章から – ドメイン層の隔離、ドメインオブジェクトの設計、総合演習 2 ※「基スキル」は、時間が足りなくなる見込み。あらかじめご了承ください。

    ドメイン駆動設計 基本を理解する
  • [ 技術講座 ] Domain-Driven Designのエッセンス -目次-|オブジェクトの広場

    技術講座] DDD難民に捧げる Domain-Driven Designのエッセンス 第 1 回 ドメイン駆動設計とは 第 2 回 DDDの基礎と実践 第 3 回 大規模なプロジェクトへの適用 DDDパターンカタログ パターン名 参考訳 I. Putting the Domain Model to Work Ubiquitous Language ユビキタス言語 Model-Driven Design モデル駆動設計 Hands-On Modeler 実践的モデラー II. Building Blocks of a Model-Driven Design Layered Architecture 層状アーキテクチャ Smart UI (アンチパターン) 利口なUI Entities エンティティ Value Objects 値オブジェクト Services サービス Modules モジ

  • 高速なシステムを作る方法

    NewsPicksの広告配信システム(アドサーバー)を構築した際に高速に処理するためにアーキテクチャや設計上工夫したポイントの説明資料です。

    高速なシステムを作る方法
  • [ 技術講座 ] Domain-Driven Designのエッセンス 第3回|オブジェクトの広場

    DDD難民に捧げる Domain-Driven Designのエッセンス 第3回 大規模なプロジェクトへの適用 株式会社オージス総研 アドバンストモデリングソリューション部 佐藤 匡剛 Domain-Driven Design Tackling Complexity in the Heart of Software Eric Evans 著 Addison-Wesley, 59.99ドル 560ページ ISBN: 0-321-12521-5 書籍『Domain-Driven Design』を紹介する連載も、今回で最終回です。前回はDDDの第II部、第III部を紹介し、16のパターンによってドメインモデリングの基的なアプローチを説明しました。今回は、残る第IV部から22のパターンを紹介します。 単一ドメインを扱ったドメインモデリングのノウハウは、前回までですべて終了です。第IV部「Str

    [ 技術講座 ] Domain-Driven Designのエッセンス 第3回|オブジェクトの広場
  • マイクロサービスとDDDをGo言語とScala+Akkaで比較したらEventSourcingの話にもなって面白かったまとめ - yoskhdia’s diary

    Reactive Messaging Patterns読書会のなかで、「マイクロサービスとAkkaとGo」な面白い話題が出たので代表でまとめる試みエントリです。(結構、色々な話題に飛んでいるので難度高い。) まとめ方としては、会話ログを転記して、最後にまとめる形をとっています。また、議論と私の考えが混ざらないように所感は分けておきます。 ddd-cqrs-es.connpass.com TL;DR 要素技術(どんな言語使うとか、どんなアーキテクチャにするとか)の前に、組織やプロダクトの性格を考えて戦略を決めましょう。 そして、その中で最適と思われる戦術をとれるような要素技術を採用しましょう。 Akka良いよ。 ログ(一部抜粋) Slackからの引用のためテキストベースです。 事の始まりは、荒木さん(以下、 @applideveloper )の発言でした。 (この記事絡みですね。 集合知で各

    マイクロサービスとDDDをGo言語とScala+Akkaで比較したらEventSourcingの話にもなって面白かったまとめ - yoskhdia’s diary
  • ScalaMatsuri 2016

    1. Heads-on Domain Driven Development in Scala Yoshitaka Fujii @yoshiyoshifujii 2016 ScalaMatsuri Scalaでドメイン駆動設計に真正面から取り組んだ話 2. Who am I ? • Yoshitaka Fujii • @yoshiyoshifujii • Joined MOTEX in April, 2014 • Web Application Engineer • Scala (7 months) Java, Python 自己紹介。エムオーテックス株式会社。Scala歴7ヶ月。

    ScalaMatsuri 2016
  • ドメイン駆動設計のためのオブジェクト指向入門

    10. ドメイン層のオブジェクト • Plain Old Java Object – Not Plain Old Java Beans (getters/setters) • 業務の「関心事」を表現したオブジェクト – 業務で知りたいこと(誰が、いつ、なにを、なぜ、…) – 業務のルール(制約、しきい値、手順、…) – ルールが破られた時の業務ルール(制限、通知、…) • 業務サービスの実行役 – 「判断」の結果を返す – 「計算」の結果を返す – 「加工」の結果を返す – (基データ型は返さない) 10 業務上の「判断」「計算」「加工」

    ドメイン駆動設計のためのオブジェクト指向入門
  • DDDに役立つScalaの関数型プログラミング的機能 - Qiita

    はじめに 今日あった増田さんのDDD Allianceの3週連続DDDの話を聞いてきた所、最後の質疑応答で、 「ScalaやHaskellなんかの関数型的な考え方が適応できるんじゃないか?」 という質問が聴講者の方から上がったのですが、 増田さん的には「まだ挑戦的試みの域を出ない」という回答があったので、 ScalaでDDDを2年近くやってきた者として、これは役立つよねという手法を紹介しようと思います。 正直な話、DDDも関数型プログラミングも学ぶのに根気のいる難しい概念にもかかわらず、 バズワード化していろんな人が違う意味で使うようになってしまったので、 正直最近こういう話を書きたいと思わなくなってしまったし、 イスラムのムジャーヒディーンと十字軍の両軍の前で正義の定義について演説することに 近いものがあると思うので、気は進まないながらも、役立つものを紹介しようと思います。 まず最初に前

    DDDに役立つScalaの関数型プログラミング的機能 - Qiita
  • いまなぜドメイン駆動設計か

    8. いまなぜOO&XPか? • 小規模・短納期のWebアプリケーション開発の機会が増えた – スマートフォンアプリのバックエンドとかも含めて – 作って動かすだけなら簡単にできるようになった (たとえばRoR) – 多産多死? • 技術もニーズも変化が激しく、全体をじっくり分析・設計している開 発スタイルでは対応できない • 生き残ったアプリケーションは、修正や拡張のニーズが多いが、設 計が貧弱だと、うまく対応できず、あったいうまにレガシー化する オブジェクト指向の「変更容易性」 エクストリーム・プログラミングの「変化適応性」 9. 開発スタイル YAXP:もうひとつのXP • とにかく動くソフトウェアを作り続ける • 究極のエクストリーム・プログラミングw • Web系のアプリケーション開発現場の実態? スタイル 例 最終形 (着地点) フェーズ分け 予測型 ウォータフォー ル 事前に

    いまなぜドメイン駆動設計か
  • Perlの上にも三年 〜 ずっとイケてるサービスを作り続ける技術 〜

    発表者は,この三年間はてなブログというイケてるPerlのサービスの開発に携ってきました… Perlの最新を追い求め続けた三年間でした… なにも分からず,SQLをコピペし続けた数ヶ月… つらいことも,たのしいことも,みんな分かちあったコードベース… 救いを求め,藁にもすがる思いで,…

    Perlの上にも三年 〜 ずっとイケてるサービスを作り続ける技術 〜
    sisidovski
    sisidovski 2015/08/22
    最高だった
  • DDDと”生きたドキュメント"

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    DDDと”生きたドキュメント"
  • 「これって、ドメイン駆動設計?」という資料を公開しました。 - GoTheDistance

    いくら人の話を聞いてもピンと来ないし、DDDを読んでも全然頭に入らないので、自分なりに解釈してまとめることにしました。よろしければ、どぞ。 これって、ドメイン駆動設計? from Michitaka Yumoto www.slideshare.net ドメインからモデルを抽出→モデルの振る舞いと情報を定義→サービスに汎化させる、という流れを取っています。行間多めです。さーせん。 ドメインというのは、どうも2つの性質を持っている言葉のようだと思いました。 その世界で現状行われていること 行われていることに対する希望や不平不満からくる要求(関心事と言うらしい) 上記の定義がだいだいあってるとすると、「その世界で現在進行中の物事及びそれに付随する要求をキチンと実装できる設計にしようぜ」って話がドメイン駆動設計の総論で良いのでは、というのが1つ。 で、ドメイン(特にいまやってる物事)を抽象化す

    「これって、ドメイン駆動設計?」という資料を公開しました。 - GoTheDistance
  • Scalaに至るまでの物語 - Septeni × Scala 第一回 杉谷

    3. セプテーニ・グループとは • ネット広告の代理店が業 – エンジニア知名度無いが、かなり大きい会社。 • ホールディングス制 – 1部署1会社のようなもので、いろいろやっています。 株式会社セプテーニ (ネット広告事業部) 株式会社セプテーニ・オリジナル (開発部) コミックスマート株式会社 (マンガ事業部) セプテーニ・ホールディングス …他19社 4. 自己紹介 • 杉谷(@sugitani)ともうします。 – 2013/7にセプテーニに入社 • 今はセプテーニ・オリジナル所属 • セプテーニ株式会社の執行役員・技術担当 • 株式会社コミックスマート・CTO • GANMA! というオリジナルマンガサービスをやっています。 – 前職はドワンゴ • ニコニコ動画モバイル配信系 – プロトコル設計・動画変換プログラム・docomo iアプリ • ニコニコ生放送初代リーダー • Sm

    Scalaに至るまでの物語 - Septeni × Scala 第一回 杉谷
  • 今まで経験したプロジェクトでありがちな展開と、エンジニアとしてアウトプットしていくパターン - mizchi's blog

    なんか最近、(比較的)アウトプットしてないな、とふと気づいたんだけど、よく考えたらプロジェクトの進捗のフェーズによってアウトプットの分量が偏るのはいつものことだなー、とも思った。 それらのフェーズを前期、中期、後期、運営期で考えみる。 初期段階 おそらくライブラリの選定段階から始まる。この時期のアウトプットは、いわゆる「やってみた系」の記事が増える。ウェブに出る記事だと、これが大多数をしめる。汎用性が高く、技術的に挑戦的なものが多い。(立場的な話をするとQiitaはそういう記事がたくさん共有されると助かる) 選定が終わった段階で、アーキテクト的な役割の人は、たぶんこうあるべきだ、みたいな思想を形成する。それをクラス図やコード規約や役割に応じたドメイン特化基底クラスとして表現したりする。DDD的なアレならこれをユビキタス言語の構築としてプロジェクトを通してやるべきなんだろう。 使う予定のフレ

    今まで経験したプロジェクトでありがちな展開と、エンジニアとしてアウトプットしていくパターン - mizchi's blog
  • システム設計日記

    テスト駆動開発 和田卓人(t-wada)さんによる『テスト駆動開発』の新訳版が出版されました。 オブジェクト指向でソフトウェアを開発するのであれば、このとマーチンファウラーの『リファクタリング』は必読書だと思います。この古典ともいえる『テスト駆動開発』が和田さんの手によって新訳版として復刊されたことは、ほんとうにすばらしいことです。 このが出版された経緯と、和田さんはじめ関係者の方々のご努力については、和田さんの、このブログをぜひ読んでいただければと思います。 新訳版『テスト駆動開発』が出ます 新訳は、単に原著が日語で読めるようになっただけではありません。和田さんの手によって、原著にはない新たな価値が付け加えらました。 一つは、サンプルコードの工夫です。 できるだけ省略はしない変更箇所を目立つようにした各章末にその時点での全コードを記載する これらの工夫により、に書かれた内容が、

  • InfoQ: ドメイン駆動設計・開発の実践

    ドメイン・モデルと開発に注力しないと"太ったサービス・レイヤ"と"ドメイン・モデル貧血症"によるアプリケーション・アーキテクチャになってしまいます。この場合、ファサード・クラス(通常はステートレス・セッション・ビーン)にどんどんビジネス・ロジックが溜まっていき、ドメイン・オブジェクトがgetter/setterからなる単なるデータの運び屋のようになってしまいます。このアプローチをとるとドメイン固有のビジネス・ロジックやルールが複数の異なるファサード・クラスに散在(時には重複)することになります。 "ドメイン・モデル貧血症"はたいていの場合、コストに見合いません。他の企業と比較して利点があるわけではなく、このアーキテクチャの下でビジネス要求の変化を実装するには開発と番環境へのデプロイするのに時間がかかり過ぎます。 DDD実装プロジェクトにおけるいろいろなアーキテクチャや設計について見ていく

    InfoQ: ドメイン駆動設計・開発の実践
  • Introduction to Domain Driven Design, CQRS and Event Sourcing

    Introduction to Domain Driven Design, CQRS and Event Sourcing I recently started learning about domain driven design, CQRS and event sourcing. Up until now, I have been mostly involved in projects that use a ‘classic’ N tier/layer architecture with a relational database. As projects become more complex, I noticed that this model doesn’t always work well.  A while ago, I wrote an article about the

  • Scalaコードでわかった気になるDDD | GREE Engineering

    みなさん、こんにちは。グリーのかとじゅん(@j5ik2o)です。 このエントリは GREE Advent Calendar 2013 の 18日目の記事です。よろしくお願いします。 私がグリーに入社してやっていることは、プログラミング言語 Scalaとドメイン駆動設計(以下、DDD)の布教活動です。布教活動といっても宣伝するだけでは具体性に欠けるので、実際に開発チームに入ってScalaやDDDの技術支援を行っています。エントリでは、Scalaを用いたDDDの設計と実装をどのように行っているかを、DDDを知らない人でもできるだけわかりやすく説明したいと思います(Scalaわかっていると読みやすいですが、あんまり複雑なコードは出てこないのでなんとなく読めるのではないかと思います)。なお、DDDの実践例は他にもあります。一例だと思って読んでいただければ幸いです(先日のSNSチームでのドメイン駆

    Scalaコードでわかった気になるDDD | GREE Engineering
  • staticおじさん達に伝えたい、手続き指向とオブジェクト指向の再利用の考え方の違いについて - 達人プログラマーを目指して

    何が良いプログラムかという点はもちろん人やコンテキストによって異なりますが、少なくともプログラマーとしての私の信念としては、 機能拡張や変更が容易なプログラム 単体試験によって正しく動作することの検証が容易なプログラム どういった内容が記述されているか理解しやすいプログラム といったものこそ、「品質の高い」プログラムが持つべき性質として、まず真っ先に挙げるべき事項であると考えています。もちろん、前提として顧客の要件に従うということは大切なことです。しかし、一般に要件は長期にわたって変更されるものですし、使い捨てのプログラムを除けば、プログラムを長期にわたって保守するコストという点も見過ごすべきではありません。したがって、ユーザーの目には触れない上記の性質をもっと重視すべきだと思うのです。 DRYの原理 上記のような性質を満たすプログラムを作る上で大切になってくる原理として、DRYの原理とい

    staticおじさん達に伝えたい、手続き指向とオブジェクト指向の再利用の考え方の違いについて - 達人プログラマーを目指して
  • Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」

    Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」

    Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」