masuda220のブックマーク (223)

  • 【2020年版】ドメイン駆動設計(DDD)初学者へ贈るおすすめ書籍 - RAKUS Developers Blog | ラクス エンジニアブログ

    こんにちは。west-cです。 携わっている新規サービスにてドメイン駆動設計(以下、DDD)を取り入れた開発を行っていることから、去年の秋頃からDDDの学習をはじめました。 今回は、私が学習にあたり読んだおすすめ書籍を紹介します。 目次 目次 ドメイン駆動設計とは おすすめ書籍 現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法 ドメイン駆動設計 モデリング/実装ガイド ドメイン駆動設計入門 ボトムアップでわかる! ドメイン駆動設計の基 Domain Driven Design(ドメイン駆動設計) Quickly 日語版 実践ドメイン駆動設計 エリック・エヴァンスのドメイン駆動設計 おわりに ドメイン駆動設計とは 題へ入る前に、「そもそもDDDって何?」という方へ3行でとてもざっくりと説明します。 DDDとは、ソフトウェアで問題解決しようとする領域(ドメ

    【2020年版】ドメイン駆動設計(DDD)初学者へ贈るおすすめ書籍 - RAKUS Developers Blog | ラクス エンジニアブログ
    masuda220
    masuda220 2021/01/15
    タイトルを見るとDDDとは関係無いように見えますが、本文中には「業務的な関心事をドメインモデルとして表現する」考え方やDDDで見られる実装パターンが導入されていたりと、DDDのエッセンスが要所に詰まっています。
  • ドメイン駆動設計で保守性をあげたリニューアル事例 〜 ショッピングクーポンの設計紹介

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは! Yahoo!ショッピングクーポンチームの小倉です。 前回のフロントエンド技術刷新の話とは打って変わり、今回は2019年に行ったバックエンド技術刷新の話です。 刷新前のシステムはノンフレームワークPHPのモノリスでしたが、現在は主にJava/Spring Bootでマイクロサービス化しています。今回は、その中でもっとも仕様が複雑だったマイクロサービスにおいて、ドメイン駆動設計(Domain Driven Design:DDD)を実践した話をご紹介します。 ショッピングクーポンの自由度を知る みなさんは、ショッピングの商品が割引になるクーポンをご存じでしょうか? 実は、クーポンには、ヤフーが予算をだして発行する「モールク

    ドメイン駆動設計で保守性をあげたリニューアル事例 〜 ショッピングクーポンの設計紹介
    masuda220
    masuda220 2021/01/13
    ドメイン駆動設計でなぜつくるのか? 「ビジネス要求への追従スピードが爆速になる」 クーポン適用判断と値引き計算という複雑なビジネスルールを、ソフトウェアでわかりやすく表現する取り組みの成果。
  • 開発メンバーが選ぶ、おすすめの技術書【2020年度】 - RAKUS Developers Blog | ラクス エンジニアブログ

    技術広報のsyoneshinです。 今回は当社の開発組織メンバー達に 読んでよかった 自身が影響を受けた 他者にも読んでほしいと思った という観点で 『おすすめの技術書』とおすすめポイントを聞きました。 質問:皆さんの「おススメの技術書」 を教えてください。 【目次】 おすすめの技術書ランキングリーダブルコード―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)』 『マスタリングTCP/IP 入門編』 『体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践』 『達人プログラマー 職人から名匠への道』 『Webを支える技術』 『SQLアンチパターン』 『Java言語で学ぶデザインパターン入門』 『はじめて学ぶ ソフトウェアのテスト技法』 『UNIXという考え方―その設計思想と哲学』 『Effective Jav

    開発メンバーが選ぶ、おすすめの技術書【2020年度】 - RAKUS Developers Blog | ラクス エンジニアブログ
    masuda220
    masuda220 2020/11/20
    よい本が並んでいる。現場のエンジニアのおすすめコメントも参考になる。
  • ドメイン駆動設計によるシステム開発 | 知的資産創造 | 野村総合研究所(NRI)

    システム構築にかかるコスト・期間は20年単位で倍々に増加している。これは「2025年の崖」で示されているレガシーシステムの問題も大きいが、ウォーターフォールモデルで専門家による分業制をとっているシステム開発生産ラインのありようも看過できない。一方、アジャイル開発によるコスト削減や開発期間短縮の効果について、大規模な金融系システムでの実例はまだ少ない。さらに、昨今のマイクロサービスを実現するための設計手法も確立できてはいないと考える。 今回、筆者らチームは「ドメイン駆動設計」を活用し、システム構築コスト・期間を大幅に削減し、かつマイクロサービスに適合するシステム開発の可能性についてのPoCを実施した。

    ドメイン駆動設計によるシステム開発 | 知的資産創造 | 野村総合研究所(NRI)
    masuda220
    masuda220 2020/11/15
    "損害保険の契約管理システムに、想定以上にスムースにドメイン駆動設計を適用できることを確認できた。金融系業務は、暗黙的なビジネスロジックが少なくドメイン駆動設計を適用しやすい領域かもしれない。"
  • プロダクトにドメイン駆動設計を適用するためにはじめたこと - ContractS開発者ブログ

    こんにちは。最近Slackのカスタム絵文字作りにハマっている友野です。Holmesでサーバーサイドエンジニアをしています。 Holmesが提供するホームズクラウドは、今年8月にサービスローンチ3周年を迎えました! これまでの支持に感謝し、これからも長く使ってもらえるようにプロダクト改善に取り組んでいます。そのひとつとして、ドメイン駆動設計(以下、DDDと表記します)適用に関する取り組みについてご紹介します。似たような状況や同じ課題を持つ誰かの一助になれば幸いです。 背景と現状 まずはじめたこと 戦略的モデリング そして、戦術的な設計 採用するパターン2つ ドメインモデルを反映したオブジェクトを置くパッケージの作成 既存テーブル構造に依存しないRepository+Adapterパターン ふりかえり まとめ 最後に 背景と現状 ホームズクラウドはPMF(Product Market Fit

    プロダクトにドメイン駆動設計を適用するためにはじめたこと - ContractS開発者ブログ
  • Railsで考えるドメイン駆動設計のコアドメイン

    銀座Rails#26の登壇資料です https://ginza-rails.connpass.com/event/189892/

    Railsで考えるドメイン駆動設計のコアドメイン
    masuda220
    masuda220 2020/10/23
    ドメイン駆動設計に興味があるなら、これは必見。
  • エンジニア歴1年の僕がドメイン駆動設計(DDD)を参考にLaravelのプロジェクトをフルリニューアルした話 - Hajimari Tech Blog| 株式会社Hajimari

    こんにちは! はじめまして! 2020年7月からPIECE事業部でエンジニアをさせてもらっています。 野澤です。 今回、PIECEというサービスのリニューアルを担当させてもらったのでその時のことについて書きたいと思います! まだ若輩者なので至らない点が多々あると思いますが フルリニューアルってどんな事したんだろう〜? Hajimariのエンジニアはどんな仕事をしてるんだろう〜? って思った人はぜひ読んで見てください! ※ドメイン駆動設計の説明も書いたのですがボリュームが多くなってしまいました… ドメイン駆動設計について概要知りたいという方は是非読んでみてください。 クリーンアーキテクチャの説明やモデリングのやり方などは説明していません。 ご了承ください。 PIECEリファクタリングプロジェクトの概要 PIECEとはどのようなサービスなのか リニューアルの目的 リニューアル施策 ドメイン駆動

    エンジニア歴1年の僕がドメイン駆動設計(DDD)を参考にLaravelのプロジェクトをフルリニューアルした話 - Hajimari Tech Blog| 株式会社Hajimari
    masuda220
    masuda220 2020/10/17
    そうそうと思って読んでいたら、拙著を紹介してくれていた。現場でお役に立てたようで嬉しい。
  • 正しいものを正しく作る塾の設計コース第2回のまとめ - 酒と開発の日々

    設計コース2回めを受けてからだいぶ時間が空いてしまいましが、2回めの内容のまとめと自分なりのメモを取っていたので、噛み砕き反芻するための記事とします。また、3回めを受けた後にまとめているので、3回目の内容を含みながらの考察になります。自分のためにまとめたので、文はですます調ではなくなってしまって読みにくいと思いますが、ご容赦願います。 設計コースでの参考にする書籍3冊の設計アプローチ 設計コースでは下記3冊の内容に触れながらコースが進められる。 ソフトウェアシステムアーキテクチャ構築の原理(SSA) エリック・エヴァンスのドメイン駆動設計(DDD) オブジェクト指向入門 第2版 原則・コンセプト(OOSC) 第2回の最初の内容では上記3冊の設計アプローチについての説明があった。 ソフトウェアシステムアーキテクチャ構築の原理 特定の設計アプローチを取り扱っているわけではなく、設計における課

    正しいものを正しく作る塾の設計コース第2回のまとめ - 酒と開発の日々
  • RDRA学習ロードマップ

    RDRAが広まってきているので情報源を充実させたい リチャード 伊真岡です。最近私はRDRAという要件定義手法についてじっくり勉強しています。 RDRAは株式会社バリューソースの神崎善司さん(@zenzengood) が提唱している要件定義の手法です。日のドメイン駆動設計コミュニティからも注目を集めているようで、ビジネスのルールをきれいにソフトウェアに反映しようとすると、要件定義に目が向くのは自然な流れです。 要件定義手法 RDRA 2.0のハンドブックのサンプル「図書館システム」の実装例です。 RDRAで可視化されたビジネスルール(バリエーション・条件・状態モデル)をビジネスロジックとして実装しています。 ドメイン駆動設計の実装例としても参考にしてください。 https://t.co/UyFscwKMPi#CCSR手法 — 増田 亨. (@masuda220) May 26, 2020

    masuda220
    masuda220 2020/10/03
    質の高い要件定義を生み出す実践的な手法の紹介
  • 現場で役立つシステム設計の原則 ~変更を楽で安全にするオブジェクト指向の実践技法 sho_kisaragiさんの感想 - 読書メーター

    登録日2010/01/10(5362日経過)記録初日2010/01/10(5362日経過)読んだ3210冊(1日平均0.60冊)読んだページ386902ページ(1日平均72ページ)感想・レビュー1220件(投稿率38.0%)棚3棚性別男血液型O型職業IT関係現住所東京都外部サイトTwitterURL/ブログhttp://oshiire.to/

    現場で役立つシステム設計の原則 ~変更を楽で安全にするオブジェクト指向の実践技法 sho_kisaragiさんの感想 - 読書メーター
    masuda220
    masuda220 2020/09/27
    ドメイン駆動設計の入門書としても役に立ったみたいだな。もちろん執筆にあたってドメイン駆動設計は意識しているので参考になるところはいろいろあると思う。
  • 自分のための道具作りのすすめ - 日々常々

    【オンライン】 JJUGナイトセミナー「おうちで!ビール片手にLT大会!」8/26(水) 開催 でLTしてきました。 オンラインLTは難しいですね。 内容 いつも通り目新しいこともない「ふつう」の話です。 元々40分くらいのセッションを煮詰めて5分に押し込みました。 Live(や公開されるであろう動画)で見られた方はめっちゃ端折って話してるのわかるかと思います。 言いたいことは言ったつもりだけど、言えなかったこともスライドには書いてるつもり。 特に大事なとこを挙げるならこの辺かな。 とにかく完成させて公開する。公開を意識するだけで対応する物の優先順位とか、代替パスをどれやっておくかとか。 今できないものをどうしておくか という、現代のプラグラマに必要なスキルが身につけられます。 ループ図のつもり……なんだけど、全部プラスになっちゃってマイナスがでないからそれっぽく見えない。まあいいか。(K

    自分のための道具作りのすすめ - 日々常々
    masuda220
    masuda220 2020/08/27
  • ソフトウェア開発のやり方の改善

    5. 改善の三つの着眼点 開発者が主体的に ➢ 全体像の認識合わせ ➢ つながりを確かめ整える ➢ 軸を強化し、周辺を広げる コードに責任を持つ ・全体に興味を持つ ・俯瞰図を眺めて、方向と関係を確認する習慣 ・俯瞰図を自分で描いて説明する練習 ・つながりに興味を持つ ・つながりを確認する習慣 ・不要なつながりを取り除く習慣 ・軸を中心に考える習慣 ・広げるまえに軸を強化する習慣 ・広げたら、さらに軸を補強する習慣 この三つに取り組むと、見通しのよい、構造が安定し、変更が楽で安全なソフトウェアを生み出せる CCSR手法は、この改善活動を現場に導入し実践するための手引きとヒント 2020/7/30 5

    ソフトウェア開発のやり方の改善
  • 技術書・方法論とのお付き合い / how to learn theory

    アート、サイエンス、「わかりやすさ」 / art, science, "easy to understand"

    技術書・方法論とのお付き合い / how to learn theory
    masuda220
    masuda220 2020/07/27
    〇 ”問題解決の視点を増やす" Ⅹ "本に書いてあることに従えば、問題が解決する"
  • RDRAのダイアグラムの位置付け - 日々常々

    RDRA をやってて思うところ。 RDRAでは多くのダイアグラムが定義されていますが、これらのダイアグラムはきっと成果物(最終的に作るものの中核にあるものをこう呼んでみる)では無いです。多分ハマりどころ。 システムコンテキスト図も業務フロー図もユースケース複合図も、どれもRDRAのエディタとビューアでしかありません。中間成果物、もしくは補足資料的な位置付け。 じゃあ成果物が何かって言うと、各アイコンと関連線。詰まるところ全てのアイコンと関連線を持ったリポジトリそのものが成果物なんだと思います。 ダイアグラムを通してリポジトリを読み書きしている感覚。アイコンを見つけやすい、関連線を引きやすいダイアグラムを使ってアイコンを配置し、アイコン間に関連線を引く。その整合性を確認しやすいダイアグラムを使って、アイコンと関連線を検証する。各ダイアグラムはそのためのものでしか無い。 決して「ダイアグラムを

    RDRAのダイアグラムの位置付け - 日々常々
  • 【翻訳】技術的負債という概念の生みの親 Ward Cunningham 自身による説明 - t-wadaのブログ

    システム開発の世界において「技術的負債Technical Debt)」は繰り返し話題になり、しばしば炎上しています。 技術的負債という概念の生みの親は Ward Cunningham (ウォード・カニンガム)です。彼は 1992 年にオブジェクト指向プログラミングの国際カンファレンス OOPSLA '92 の Experience Report でコードの初回リリースを負債に例えました("Shipping first time code is like going into debt")。 Ward Cunningham はソフトウェアの世界に多くの貢献を果たしてきました。Wiki の発明者であり、XP と TDD の父 Kent Beck の師匠のような存在であり、建築の世界の「パタン・ランゲージ」を Kent Beck と共にソフトウェアに輸入した人であり、「アジャイルソフトウェア開

    【翻訳】技術的負債という概念の生みの親 Ward Cunningham 自身による説明 - t-wadaのブログ
    masuda220
    masuda220 2020/06/23
    "ソフトウェアに現時点での理解を可能な限り反映させることが重要です。" "問題を理解するに従ってリファクタリングしていけるような、十分にきれいなコードを書いているかどうかで決まる"
  • ドメイン駆動設計に15年取り組んでわかったこと 「ビジネスルール・値オブジェクト・型」が3つのキーワード

    株式会社ビープラウドが主催するIT勉強会「BPStudy」。#151となる今回は、設計の代表格であるオブジェクト指向、モデリング、そして設計にフォーカスをあて、LT大会を開催しました。「ドメイン駆動設計に取り組んだ15年でわかったこと 」に登壇したのは、ドメイン駆動設計に15年取り組み続けている増田亨氏。ビジネスルールと値オブジェクトと型という3つのキーワードを軸に、ドメイン駆動設計をソフトウェア開発に落とし込む方法論について語りました。講演資料はこちら ビジネス活動に起因する複雑さに立ち向かうドメイン駆動設計 増田亨氏(以下、増田):よろしくお願いします。私は2006年ぐらいからドメイン駆動設計に実際に取り組んで、15年ぐらいやっているんですけど、今日はそれを私なりにわかったことというか、けっこう最近振り切ってこうやってますよという内容を、みなさんの参考になればと思って少しお話しします。

    ドメイン駆動設計に15年取り組んでわかったこと 「ビジネスルール・値オブジェクト・型」が3つのキーワード
    masuda220
    masuda220 2020/06/11
    BPStudyの勉強会でしゃべった内容を記事にしてもらった。しゃべった言葉がそのままなので、だいぶ冗長だけど、雰囲気は伝わりやすいかも。
  • よりよい開発手法 - ソフトウェア設計を考える

    ソフトウェア開発の問題点 従来のウォータフォール方式で、フェーズ分けと分業を重視し、手続き的なモジュール構造でソフトウェアを開発するやり方には次の問題があります。 大量のドキュメントの作成に膨大な時間と費用がかかる(工程が多く、必要な人員がふくらむ) フェーズ分けと分業のため、関係者の間の認識合わせが難しい(伝言ゲーム) ちょっとした変更でも、調査・修正・確認に膨大な時間がかかる(変更がやっかいで危険) 一方、アジャイルと呼ばれる開発のやり方は、以下の問題が起きがちです。 ソフトウェアの規模が大きくなると、どこになにが書いてあるか理解ができなくなる 増築・改築の繰り返しが、全体の構造と品質を劣化させる 全体を俯瞰したり構造を確認するための情報がなく、変更の影響がわかりにくい ちょっとした変更でも、調査・修正・確認に膨大な時間がかかる(変更がやっかいで危険) どちらのやり方でも 変更がやっか

    よりよい開発手法 - ソフトウェア設計を考える
    masuda220
    masuda220 2020/06/03
    ソフトウェア仕様の記述にプログラミン言語を使い、ツールを使って図や一覧で可視化する。そうすることで、要件定義・仕様化・実装の継ぎ目をなくすモダンでアジャイルな開発手法への取り組み。
  • ビジネスロジックのモデリングと実装 - ソフトウェア設計を考える

    ビジネスロジック(ドメインロジック)をどうやってモデリングして、どうやって実装するかの実践例を公開しました。 RDRA 2.0 ハンドブックの図書館システムの実装例 (github) ビジネスロジックのもとになる業務モデルやビジネスルールのモデリングは、 モデルベースの要件定義手法 RDRA2.0 を使っています。 RDRA 2.0 ハンドブック (Kindle Unlimited会員は無償です) 実装技術は、Java/Spring Boot/MyBatis/Thymeleafを使っています。 JIGという設計の可視化ツールを使って、ソースコードからパッケージ関連図やクラスの一覧を自動生成しています。 JIGリポジトリ 利用方法 RDRA 2.0 ハンドブックを入手 リポジトリRDRA 2.0 ハンドブックの図書館システムの実装例をクローン Gradleタスク bootRunを実行(アプリ

    ビジネスロジックのモデリングと実装 - ソフトウェア設計を考える
    masuda220
    masuda220 2020/06/01
    ビジネスルールの分析と可視化にモデルベースの要件定義手法 RDRA 2.0を使い、Javaを使ってそのままドメインロジックとして表現した実践例です。
  • ソフトウェアのもっとも重要な品質は発展性 - ソフトウェア設計を考える

    ソフトウェアでもっとも重視すべき品質は「発展性」なんだと思う。 機能要求や非機能要求は、時間とともに変化する。その要求の変化に対応してソフトウェアを発展させていける能力、つまり発展性こそがソフトウェアの価値を大きく左右する。 発展性に問題があり変化ができないソフトウェアと、発展性に優れ変化と成長を続けやすいソフトウェアの価値の差ということだ。 発展性の価値 顧客のニーズは変化する。また、市場の競合関係も変化する。そういう事業環境の変化にあわせて、ソフトウェアにも変化を続ける能力が求められている。 また、顧客のニーズや市場環境の変化がゆるやかだとしても、事業活動をすれば組織は経験を通じて学び成長していく。開発チームに限っても、ソフトウェア開発運用の経験を積むことで、開発の考え方とやり方にさまざまな学びと成長がある。そうやって学んだ知識を適切にかつ迅速にソフトウェアに反映できるほど、事業により

    ソフトウェアのもっとも重要な品質は発展性 - ソフトウェア設計を考える
    masuda220
    masuda220 2020/04/07
    要件定義・仕様化・実装の継ぎ目をなくす/ビジネスルールに焦点を合わせる/型によるモジュール構造に移行する
  • ドメイン駆動設計に15年取り組んでわかったこと

    Aws Dev Day2021 「ドメイン駆動設計のマイクロサービスへの活用とデベロッパーに求められるスキル」参考資料(松岡パート)

    ドメイン駆動設計に15年取り組んでわかったこと