タグ

articleとDDDに関するefclのブックマーク (6)

  • Value Objectについて整理しよう - Software Transactional Memo

    Value Objectとは何であるか? マーチン・ファウラーのPatterns of Enterprise Application Architecture(PofEAA)やエヴァンス・エリックのDomain Driven Design: Tackling Complexity in the Heart of Software(DDD)が原典であるが、PofEAAではこう切り出している。 When programming, I often find it's useful to represent things as a compound. プログラミング時は物をcompound(合成物)として表現すると便利なことがしばしばある。 例えば2次元空間上での座標のように複数のメンバ(属性)を持つ物は便利である、と。しかしそれらを比較する方法は一意ではない、そこで Objects that a

    Value Objectについて整理しよう - Software Transactional Memo
    efcl
    efcl 2022/05/18
    Value Objectは値による比較が行われるオブジェクトという話。値を表現するものと、型のAlias的なものについて
  • 過大評価されるDDD(ドメイン駆動設計)

    この記事は、著者の許可を得て配信しています。 Is Domain-driven Design overrated? ドメイン駆動設計(DDD)は、システムのモデリングと構築のための優れたガイドラインを提供する大変便利なアプローチですが、それ自体が目的ではなく、目的のための手段です。その概念は有効ですが、それを使うことだけに限定すると、その一方で多くのことを失うことになります。つまり、実際にはDDDの先にも人生があるということです。 最近、「DDD は過大評価されている」というクリックベイトなタイトルの記事を投稿したところ、皆様からかなり注目を集めました。今回の記事は、社内やソーシャルメディア(TwitterやHacker Newsなど)で受けたフィードバックを取り入れて、前回の記事に内容を加えたものとなっています。また、私の考えにもう少しニュアンスを加えたかったので、あまり過激なものにはし

    過大評価されるDDD(ドメイン駆動設計)
    efcl
    efcl 2021/04/01
    DDDはDDD専門家のためのものではないという話。 "DDDはネーミングの重要性を強調しており、デザインの対象となるコンテキストにおいて、共通のユビキタスな言語を目指して努力すべきであることを示唆"
  • ドメイン駆動設計を導入するために転職して最初の3ヶ月でやったこと[DDD] - little hands' lab

    この記事は ドメイン駆動設計 Advent Calendarの記事です。 今年の9月にログラスというスタートアップに転職しました。 ログラスは元々DDDについて講師として勉強会をさせてもらっていた会社であり、DDD自体は社として取り組んでおりある程度進んでいました。ですが、講師ではなく中の人になったからこそできる色々な取り組みがあり、3ヶ月である程度形になりました。 記事では、DDDを広めるための取り組みについて、極力再現性がある形を意識しつつ、ご紹介したいと思います。 入社時の状況 なにをしたか テストの話が多い理由 実施内容詳細 TDD Boot Campの@t_wadaさんの基調講演観賞会を行った Serviceクラスを1パブリックメソッドにした レイヤーごとのオブジェクトの依存関係を整理 レイヤーごとのテスト方針 クラス名の重要性 参照実装を作成した 「責務」と「テスト」の重要性

    ドメイン駆動設計を導入するために転職して最初の3ヶ月でやったこと[DDD] - little hands' lab
    efcl
    efcl 2021/01/04
    "「重要な原則を何度も繰り返すこと」「義務感ではなく、必要性を感じて取り組んでもらうこと」" テストと責務の一般的な話の後にモデル図の有用性を得る話
  • モバイル/オフラインでも動作するはてなブックマーク検索のPWAを作った

    はてなブックマーク検索PWAというはてなブックマークでブクマしたデータをオフラインでも検索できるPWAを作りました。 サイト: https://hatebupwa.netlify.com/ ソース: https://github.com/azu/hatebupwa はてなブックマークの自分のブクマを検索できるPWAを作りました。 Service Workerに対応してるブラウザ(IOS Safari 11.3+を含む)ではオフラインでも検索できます。https://t.co/RCVkRYAFz0 モバイルはホームスクリーンアプリで、macOSはアプリ版もあります。https://t.co/5MDuyC9baN pic.twitter.com/KAc3KV690b — azu (@azu_re) April 16, 2018 使い方 使い方は特に難しい話でもないですが、次のように任意のはてな

    モバイル/オフラインでも動作するはてなブックマーク検索のPWAを作った
    efcl
    efcl 2018/04/17
    https://hatebupwa.netlify.com/ の技術スタックについて。 WebWorkerを使った別スレッドでのフィルタリング処理、Servie Workerでのキャッシュ、React ContextとAlmin、domainのシリアライズと永続化についてなど
  • Patterns for designing flexible architecture in node.js (CQRS/ES/Onion)

    In this post, I’ve presented a project that is using CQRS and Event Sourcing patterns. It’s organized using onion architecture and written with TypeScript. “flexible” —a free stock photo I found which makes this blog post much nicer and artistic.“flexible” how?I’m using the term flexible to promote an architecture which is able to adapt to different kind of environments. More precisely, I’m trying

    Patterns for designing flexible architecture in node.js (CQRS/ES/Onion)
    efcl
    efcl 2017/12/18
    TypeScriptを使ってCQRS+EventSoucingのパターンでNode.jsアプリを実装する記事。 サンプルプロジェクトと共にコマンドからイベントを作りそれをRepositoryに保存する流れを紹介してる。
  • Almin.js がやってくれること - Qiita

    この記事はQiita Advent Calendar 2017 React #1 の 4日目の記事です。 Almin.js について最近学んだことを説明します。 概要 今、業務で開発しているシステムで、Almin.js + TypeScript + React を使ってフロントエンドの処理を実装しています。 Almin.js Almin.jsの採用を検討したのは、フロントエンドでDDDに沿った設計をするのに使いたかったからです。 今回調査も兼ねて実装してみると、Almin.jsを利用することで、思っていたよりいい感じにクラスを設計できました。 その課程で Almin.js が何を提供するライブラリなのかということも理解が進んだので、学んだ内容を共有します。 必要だったもの 今回の開発にあたり、Viewを実装するためにReactを使うことは決まっていましたが、それ以外の部分についてはどうやっ

    Almin.js がやってくれること - Qiita
    efcl
    efcl 2017/12/04
    ビジネスロジックをViewなどとは分けた状態にして、DDDをやるための土台としてのAlminについて。 Alminで書いた場合のアプリケーションの処理の流れやドメインオブジェクトの独立性について。
  • 1