ドメイン駆動設計の考え方は書籍を読むとわかりますが、いざモデリングを実践しようとすると、どこから手を付けていいかわからない、ドメインモデリングの始め方がよくわからないという意見を聞きます。 このスライド資料では、そんな悩みを持つ皆さんに向けて「ドメインモデルを見つけ出し・実装に落とし・改善していく」方法を、できるだけわかりやすく解説します。
![ドメインモデリングの始め方 - Speaker Deck](https://cdn-ak-scissors.b.st-hatena.com/image/square/a5bdb6baf1a0e170af5b01b89795a4d1edd4af73/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F3b90c4b1958446e9aa8a948f80c086d2%2Fslide_0.jpg%3F11106265)
こんにちは。プロダクトグループのshoito(しょいと)です。 9/26(水)に開催された レガシーコードにドメイン駆動設計で立ち向かった5年間の軌跡 に参加してきたのでレポートします。 当日のtwitterのハッシュタグ#DDDAllianceのツイートがTogetterでまとめられています。 BIGLOBEにおける、5年間のDDDへの取り組みと今後について ビッグローブ株式会社 西 秀和さんより 30年間、事業を支えてきた業務システムをDDDで刷新する。 そのためには、組織的、エンジニアのレベルなど多くの問題があります。 その壁をどう乗り越えたのか? そして、壁の向こうで得た恩恵とは何のか? 5年という期間を経て、得ることのできた気づきや組織的な変化をお伝えしたいです。 アジェンダ DDD導入に至るまで 導入時の苦労 導入による効果 今後の目標 BIGLOBE販売システムについて、DD
はじめに はじめまして。音楽ストリーミングサービスAWAでサーバサイドのリードエンジニアをやっている辻(jun06t)です。 以前 自動購読課金について【iOS編】 自動購読課金について【Android編】 といった記事を書きましたが、あれから数年経ち サービスの成長 課金プラットフォーム側の機能追加・仕様変更 課金形式(クレジットカード決済・キャリア決済・年間プランなど)の増加 といった理由から既存のシステムでは拡張が難しいと考え、半年ほど前に大幅刷新をしました。 旧システムと現システムの比較 旧システム 以前の課金システムのアーキテクチャは以下です。 特徴は以下です。 DBにレシート情報を保存し、データが主体となった構成 サブスクリプションの更新はcronによるバッチ処理。CrawlingBatchが更新対象を集め、SQSに入れてUpdateBatchで更新する 旧システムの課題 この
「Scala言語らしさ」を理解しよう! オブジェクト指向と関数型プログラミングの融合とは? プログラミング言語Scalaの設計思想にあるという、オブジェクト指向と関数型プログラミングの融合(fusion)という理想と、それを掲げつつも現実主義的な点について、水島宏太(kmizu)さんが解説します。 kmizuと申します。株式会社ドワンゴでエンジニアを務めています。 最近では、毎年の新卒エンジニア向けScala研修の講師や、N予備校 プログラミングコースの一部教材のレビューといった教育、および研究等の面でも活動しています。 ドワンゴでは、私が入社した時点でScalaがかなり採用されており、社内にScalaをより深く広めることも職務の一環でした。私は2007年くらいの、Scalaがまだほとんど注目されていなかった頃からScalaを触り始めており、その縁で新卒エンジニア向けのScala研修資料作
2018年8月22日、『神姫PROJECT』などソーシャルゲームの企画・開発を手がける株式会社テクロスが主催するイベント「TECH x GAME COLLEGE」が開催されました。第1回となる今回のテーマは「ドメイン駆動設計の実践」。ドメイン駆動設計(DDD)の基礎知識と、ゲームにおける活用方法について、ギルドワークス株式会社取締役の増田亨氏が解説します。後半では、実際にドメイン駆動設計を開発現場に導入する際の課題の解決策や、来場者からの質問に回答しました。講演資料はこちら オブジェクト指向でモジュール化するとはどういうことか? 増田亨氏(以下、増田):「オブジェクト指向でモジュール化する」というのは2番目のテーマですね。 ここはある意味ハードルでして。まずこの議論をするときは、ソフトウェアのモジュールはなんだという話をしたほうがいいと思っていて。 モジュールという言葉はあちこちで使われて
2018年8月22日、『神姫PROJECT』などソーシャルゲームの企画・開発を手がける株式会社テクロスが主催するイベント「TECH x GAME COLLEGE」が開催されました。第1回となる今回のテーマは「ドメイン駆動設計の実践」。ドメイン駆動設計(DDD)の基礎知識と、ゲームにおける活用方法について、ギルドワークス株式会社取締役の増田亨氏が解説します。前半パートとなる今回は、ドメイン駆動設計の基礎的な概念や、既存の設計との違いについて語ります。講演資料はこちら ドメイン駆動設計の基礎知識 増田亨氏(以下、増田):こんばんは。ギルドワークスの増田です。 実は、テクロスさんとは『UNITIA』の開発初期に京都に隔週ぐらいで何度かお邪魔して、開発チームのみなさんと設計を議論したりしました。そういった縁があって、今日は講師として招かれました。ありがとうございます。 「ドメイン駆動設計の実践」と
Learn Better という本を読みました。気づきが多かったので、この本の内容と今までの経験をベースに、学びについてまとめてみたいと思います。 Learn Better――頭の使い方が変わり、学びが深まる6つのステップ 作者: アーリック・ボーザー,月谷真紀出版社/メーカー: 英治出版発売日: 2018/07/19メディア: 単行本この商品を含むブログを見る 学びは楽ではない 成長するためには、コンフォートゾーンから出ると良いと言いますが、この本でも学びは楽ではないと問いています。学習は難しくて当たり前、不安で当たり前。その状態に慣れるべきだと書いています。普段、不安であったり、答えがわからないことがあった場合は、学びのチャンスだと思って対峙すると良いということだと思います。 学ぶための5つの方法 この本に出てくる内容を参考に、学ぶ際に行ったほうがいいことを5つにまとめてみました。一つ
はじめに この記事は前後編に分かれています。 順序だてた解説になっているので最後までお付き合いいただけると幸いです。 後編記事: https://nrslib.com/bottomup-ddd-2/ 順序立っての説明になっておりますので、前編からご覧になることを強くお勧めします。 セミナー情報 こちらの内容のセミナーを不定期で開催しています。 ◆セミナーページ 第一回: https://ddd-community-jp.connpass.com/event/103428/ 第二回: https://ddd-community-jp.connpass.com/event/107106/ 第三回: https://nrs-seminar.connpass.com/event/117283/ ◆あとがき 第一回ボトムアップドメイン駆動設計勉強会を開催しました セミナースライド まえがき この章は
Clean Architecture 達人に学ぶソフトウェアの構造と設計を読んでます。モデリングに関しては成分薄めですが、よい本だと思います。はい。 Clean Architecture 達人に学ぶソフトウェアの構造と設計 作者: Robert C.Martin,角征典,高木正弘出版社/メーカー: KADOKAWA発売日: 2018/07/27メディア: 単行本この商品を含むブログを見る 本書の大筋から少し逸れるが、「5章 オブジェクト指向プログラミング」の「カプセル化」が面白かったので、これを切り口にモデリングについて考えてみる。 OO言語のカプセル化はすでに弱体化している オブジェクト指向の三大要素の一つである、カプセル化について、以下のようなことが書いてあります。 「カプセル化」がOOの定義の一部となっているのは、OO言語がデータと関数のカプセル化を簡単かつ効果的なものにしているから
qiita.com これを読んでいろいろと言いたいことが出てきたので書いておく。 以下に記事の最後のこの記事で言いたかったことから2つを引用します。 オブジェクト指向は難しい。 (どのあたりのことを「難しい」と言っているのだろう)まず「継承は難しい」旨が書いてあるが、それはオブジェクト指向使いの中でも常識で別に継承無しでもオブジェクト指向はできる。「継承よりもコンポジション」というのは間違っても「オブジェクト指向はダメだ」というメッセージではなく、オブジェクト指向の中での方法の話である。 「デザインパターンが難しい」という話も同じで、別にデザインパターンを意識しなくてもオブジェクト指向は十分にできる*1。 ただ、だからといってオブジェクト指向をやるのが難しくないというわけでもない。「問題を(オブジェクトに)抽象化するのが難しい」と言っているのであればそれはそうで、適切な抽象化を簡単にする方
経緯 何故なのかまったくわからないんだけど、数ヶ月前からTwitter界隈で謎にタカられるようになった。 以下のようなハッシュタグまでできてもう収拾がつかない状態であった。 twitter.com これはこれでネタとしておもしろいし、僕もいろいろ勉強したいこともあるので逆に利用してやろうと思って、 なんとかさんの金で肉が食べたいというハッシュタグが流行ってるんですが、わりと真面目に、僕とペアプロしてくれたらお肉奢りますって言ったら何時間くらいでどれくらいの肉だったらやってくれる人いますかね?もちろん僕より対象言語とかフレームワークとかに精通してる人限定。— すえなみ@すえなみチャンス? (@a_suenami) 2017年12月21日 というツイートをしたのがもう半年くらい前。 ついに先日お声がけいただいた。 すえなみさんの奢りで、肉が食いたい。 Javaかつビジネスルール複雑系であれば、
業務がめちゃくちゃ忙しい最中だったが、あしたの現場で役立つ「システム設計の原則」と「越境」のはじめかた - DevLOVE | Doorkeeper に行ってきましたのでメモ 発表メモ speakerdeck.com 上のスライドベースで 現場で役立つシステム設計の原則 の著者 増田さんと カイゼンジャーニーの著者 市谷さん、新井さんの対談形式だったので アジェンダごとに各著者の方々のコメントをさらっとまとめています。 双方から見た本の感想 増田さんから見た「カイゼンジャーニー」 自分が見てきたことがマイルドに再現された感じ 市谷さん、新井さんから見た「現場で役立つシステム設計の原則」 新井さんとしては「増田さんが語りかけてくる」そんな本 市谷さんとしては、今の時代にフィットさせたオブジェクト指向を読み解くための本 何故この本を書いたのか、書いてみてどんな変化が起きたか 「現場で役立つシス
ドメイン駆動設計は原典となる「エリック・エヴァンスのドメイン駆動設計」の初版が2003年と歴史があり、モダンなフレームワークであればその思想を取り入れた設計がなされているにも関わらず、日本語の情報が少ない気がする。 最近ドメイン駆動設計をやろうと主にWeb上の情報を探っていたので参考になったサイトをリンク集の形でまとめてみる。 概要 概要を把握するのが一番難しいように思うので、色々と目を通すのがよさそう。 little-hands.hatenablog.com enterprisegeeks.hatenablog.com enterprisegeeks.hatenablog.com speakerdeck.com ドメイン駆動設計とは何か 【入門編】 from 増田 亨 www.slideshare.net 3週連続DDDその1 ドメイン駆動設計の基本を理解する from 増田 亨 www
この記事を書いたあたりから、よりDDDについて知りたくなって追加で読み始めた本 takanamito.hateblo.jp 現場で役立つシステム設計の原則 ~変更を楽で安全にするオブジェクト指向の実践技法 作者: 増田亨出版社/メーカー: 技術評論社発売日: 2017/07/05メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る 業務におけるプログラミングでオブジェクト指向を実践するにはどうすればよいかを、ここまで具体的に書いてくれてる本は初めてだったので読んでよかった。 1章からいきなりドメインオブジェクトの軽い説明と例示 3章ではドメインロジックをドメインオブジェクトに抽出していく説明 4章ではさらにその手前の、業務フローからドメインオブジェクトを見つけていく手法と、ドメインオブジェクトの育て方 少し飛んで8章ではドメインオブジェクトとAPIレスポンスをどう対応さ
『現場で役立つシステム設計の原則』第2章・第3章の内容は、ロジックをどこに書くかということについてです。 第1章に引き続きテクニカルな内容でアプローチしつつ、第4章・ドメインモデルによる設計への導入になっています。 設計は大事 第3章にある「ロジックをどこに書くのがよいかを適切に判断するのが『設計』です」の文が印象的でした。 ロジックをどこに書くかということは非常に大事なことです。よい設計はどこに何が書かれているかを推測しやすくし、要求に対する変更箇所を限定的にしてくれます。 設計のないプログラムは読むのが大変 現場経験の中で、悪い設計を見てきました。もちろん人ごとではなく、自分もそれに荷担していました。 初期開発から担当して、追加開発と保守で6・7年携わったプロジェクトがあります。このプロジェクトで本当に苦労したのが、既存のプログラムを読み解くことです。 障害やあやしげな動作を確認すると
JAWS DAYS 2018 参加してきました! #jawsdays きたー! pic.twitter.com/FgEVAmBfio— @ketancho (@ketancho) 2018年3月10日 午前中からお昼にかけて、娘の習い事に行っていたため、午後からの参戦です。数セッションしか聴けませんでしたが、非常に勉強になりましたのでメモを投稿したいと思います。(取ったメモをほぼ修正せずに載せます。誤字脱字などあったらすみません。) 14:00-14:50 ユーザー企業におけるサーバレスシステムへの移行 #jd2018_g なぜ、サーバレスに至ったのか 大規模システムはイヤ システム変更の影響範囲が広いと、機能を追加しようとしたときに「まずは影響調査から」になってしまう。 そうなると、せっかく業務サイドが新しい機能を考えてくれても、「ビジネス的な効果 < 実装工数」となってしまう。 過去に
あるエンジニアがプログラムを紡いでいく様を見てみるでしたライブコーディングで言ったことや言わなかったことを書いてみます。 意識してるのは「コードをどまんなかに」です。 speakerdeck.com ……あ、このスライドのブログ書き忘れてた。 スライド中の「えらぶ」はだいたいIDEの機能を指します。なのでライブコーディング中に使用したIDEの機能も挙げようと思います。基本的にデフォルトのつもりだけど、vimとの兼ね合いで変更してるのもあるので、そこはごめんなさい。あとMacです。今回はメソッド抽出とかクラス間移動とかダイナミックなのがなくて地味だけど、便利な子たちなので使ってあげてください。 リプレイ 今日の公開コーディングはスゴい新鮮だった🎵 コミット後のソースには、どこに悩んだのか、どこにこだわったのかは残らないのですね。 実際のコーディングを見させて頂く事で、気づかされる事が多かっ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く