並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 31 件 / 31件

新着順 人気順

"Value Object"の検索結果1 - 31 件 / 31件

  • 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
    • 値オブジェクト(Value Object)は3種類ある - パンダのプログラミングブログ

      Value Object(値オブジェクト)は3種類あった Value Object(値オブジェクト) の意義と使い所がわからなかった。そこで調べてみたらなんと3種類あった。面白かったのでその調査過程を紹介する。 なお、現在では DDD の意味での Value Object がメインであること、またこれは自転車置き場の議論であり、DDD Quickly の Value Object の章を読む方が有意義であることを先に記しておく。 1. Data Transfer Object 1つ目は、Data Transfer Object(DTO)の意味だ。これは PoEAA に少しだけだけ出てくる。かつてのJava界隈の一部では(?)DTOのことを Value Object と呼んでいた。だが、現代では Value Object と DTO は別物として定着している。PoEAA は2000年代前半に

        値オブジェクト(Value Object)は3種類ある - パンダのプログラミングブログ
      • #fukabori をきいて Value Object と Value Object パターンについて頭の中を整理 - Mitsuyuki.Shiiba

        連休の余韻も楽しんだので今日から散歩を再開した。ちょっと前までは「陽の光を浴びなきゃ!」と思って3時過ぎにウロウロしてたけど、これからはもうちょっと涼しい時間帯がいいなと思って、夕暮れ時に散歩しながら fukabori.fm を聴いてた。Value Object のお話。面白いなぁ 73. Value Object w/ kumagi | fukabori.fm kumagi さんの記事はこちら Value Objectについて整理しよう - Software Transactional Memo お絵描き PoEAA や DDD はだいぶ前に読んだことがあるけど、Value Object を雰囲気で捉えてるからちゃんと見直しておこうと思って、調べたりしながら絵を描いた。こういうことなのかな? (絵をかくほどでもなかった・・・ Value Object とは? kumagi さんも書いてる

          #fukabori をきいて Value Object と Value Object パターンについて頭の中を整理 - Mitsuyuki.Shiiba
        • Value Object (値オブジェクト) でリファクタリングしたら結構良かった

          ドメイン分析とモデル化ここで「モデル化」と呼ぶのは、実装者が理解しやすいように重要な側面に注目して、端的な形に抽象化する行為であると定義します。 また、実際に実務で行なっている自身のモデル化を行う時の書き振りを近しく再現(中身は変更)しているため、わかりづらいかもしれませんが、”実務ではこうやっている” というのを理解していただければ。 先の要件を整理すると、数という概念に金額とポイントという2つのドメインモデルが含まれる。 金額とポイントという異なる概念を計算して最終的に獲得ポイント数を導き出す必要がある。 存在する制約 金額が負の数になることはありえない。ポイントが負の数になることはありえない。金額は日本円のみを考慮し、外貨は存在しない。ポイントは文脈によって呼び名が変わるが、単位は変わらない。支払い金額合計以上にポイント利用数が設定されることはない。金額に小数点は存在しない。ポイント

            Value Object (値オブジェクト) でリファクタリングしたら結構良かった
          • 昔から使われている技術用語をさかのぼる: Value Object編

            考えてみればソフトウェアパターンが賑やかだった時代からはすでに20年以上たっているわけで、20年も変わるといろいろ状況も変わりますし、そんな昔のことなんて知ってるわけない、というか知ったことではない、という人も少なくないと思います。 とはいえ今でも使われている用語について、その当時の使われ方を知ると、考察が深まることもあるかもしれません。 そんな感じでOOPとかパターン方面の用語とかを遡りたい! というときには、WikipediaとかではなくてC2 Wikiを見るのがおすすめです。 C2 Wikiとは Wiki(WikiWikiWeb)の元祖みたいなやつですね。iki-ikiで紹介されています。 例えばValue Objectについて掘りたい、と思った時にはValueObjectで探すと見つかります。単語と単語をつなげるときに、単語の先頭を大文字にする感じです。 とはいえ、C2 Wikiも

              昔から使われている技術用語をさかのぼる: Value Object編
            • 73. Value Object w/ kumagi | fukabori.fm

              MP3ファイルをダウンロード 内容紹介 kumagi さんをゲストに、Value Object について語っていただいたエピソードです。 出演者 話したネタ Value Objectについて整理しよう Value Object とは何か? Value Object で複数の値をくるむcompoundの具体例は? Value Object のメリット・デメリットは? 別名参照問題 Value Object は何でないか? YAGNI原則 不変オブジェクト (Immutable Object) 書籍: リファクタリング 既存のコードを安全に改善する(第2版) マーチン・ファウラー氏のblog記事 - ValueObject Value Object Obsession と Primitive Obsession Primitive Obsession のメリットは? Value Objectの

                73. Value Object w/ kumagi | fukabori.fm
              • DDDのパターンをRustで表現する ~ Value Object編 ~ - CADDi Tech Blog

                はじめに こんにちは、キャディでバックエンドエンジニアとして働いているkuwana-kbです。 キャディではバックエンドで Rust を採用しています。また、設計手法としてドメイン駆動設計(以下 DDD)を取り入れています。Rust と DDD 、それぞれの解説記事は今では珍しくありませんが、 Rust と DDD をかけ合わせた記事はまだあまり目にしません。 今回は、 Rust で DDD の実装パターンをどう表現するかをまとめたいと思います。DDD に登場する概念は色々とありますが、今回はそのうちの1つである Value Object に焦点をあてたいと思います。 ※ 本記事は、2020/04/28 に開催された「下町.rs」にて kuwana-kb が発表した内容を記事にしたものです。 目次 はじめに 目次 DDD とは DDD の実装パターンを Rust で書いてみた 実装パターン

                  DDDのパターンをRustで表現する ~ Value Object編 ~ - CADDi Tech Blog
                • Entity vs Value Object: the ultimate list of differences

                  The topic described in this article is a part of my Domain-Driven Design in Practice Pluralsight course. I wrote about entities and value objects some time ago. In this post, I’d like to talk about differences between Entity vs Value Object in more detail. I know, the topic isn’t new and there are a lot of articles on the Internet discussing it already. Nevertheless, I didn’t find any with an exha

                  • Rails: Value Objectを検討してみよう(翻訳)|TechRacho by BPS株式会社

                    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Consider Value Objects - Andy Croll 原文公開日: 2019/07/28 著者: Andy Croll ふと気がつくと、アプリケーションで同じようなコンセプトのビューヘルパーをいくつも作ってしまっていることがよくあります(複雑な計算メソッドや、1つ以上の値をいくつものメソッドに渡すなど)。 こんなときは、Active Recordモデルより小規模なシンプルなオブジェクトでその正体を明らかにしてみましょう。 今回の場合は、機能をリファクタリングして、Martin Fowlerが提唱する「Value Object」にすることを検討します。 (Value Objectとは)通貨や日付のrangeのようなシンプルで小さなオブジェクトであり、(オブジェクトの)同一性に頼らずに等価性をチェックする。 mart

                      Rails: Value Objectを検討してみよう(翻訳)|TechRacho by BPS株式会社
                    • Rails: Value Objectで「基本データ型への執着」と戦う(翻訳)|TechRacho by BPS株式会社

                      概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Fighting the primitive obsession with Value objects | Arkency Blog 原文公開日: 2021/05/01 原著者: 原著者: Szymon Fiedler サイト: arkency 週刊Railsウォッチ20210510『Value Objectをクラスで定義してプリミティブな値と戦う』もどうぞ。 参考: Primitive-obsession(基本データ型への執着) - Qiita 前回のRead Modelの記事では別のお題を取り上げましたが、今回はRead Modelそのものに焦点を当てることにし、それ以外については今後の別記事に回したいと思います。ただ、この実装で1つ気に入らない点は、スコアの集計にプリミティブ型(基本データ型)を使っていることです。 Proj

                        Rails: Value Objectで「基本データ型への執着」と戦う(翻訳)|TechRacho by BPS株式会社
                      • Rubyでもっと活用されるべきValue Objectパターン(翻訳)|TechRacho by BPS株式会社

                        概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: The most underused pattern in Ruby | Arkency Blog 原文公開日: 2023/08/31 原著者: Szymon Fiedler 日本語タイトルは内容に即したものにしました。 最近私たちのRailsEventStoreユーザーが、issue #1650を投稿しました。PostGIS拡張を利用しているPostgreSQLデータベースでRailsEventStoreを使いたいが、イベントやストリームで使うテーブルをセットアップするマイグレーションがUnsupportedAdapterで失敗するとのことでした。 これまでRailsEventStoreでは、PostgreSQLアダプタとMySQL2アダプタとSQLiteアダプタをサポートしていました。しかしPostgreSQLでこのPost

                          Rubyでもっと活用されるべきValue Objectパターン(翻訳)|TechRacho by BPS株式会社
                        • Value object - Wikipedia

                          この項目は内容が専門的であり、一般の閲覧者にはわかりにくくなっているおそれがあります。専門用語をわかりやすい表現にするための修正をして下さる協力者を求めています。(2022年5月) コンピュータサイエンスでは、Value Object(値オブジェクト)は、同等性がアイデンティティに基づいていない単純なエンティティを表す小さなオブジェクトである。つまり、2つの値オブジェクトは、同じ値を持つ場合は等しく、必ずしもそれらが同一のオブジェクトである必要はない[1][2]。 値オブジェクトの例としては、金額や日付範囲を表すオブジェクトなどが挙げられる。 小さいので、同じエンティティを表す同じ値オブジェクトの複数のコピーを持つことが可能である。単一のインスタンスに依存してそのオブジェクトを共有するよりも、新しいオブジェクトを作成する方が簡単な場合がよくある[2]。 値オブジェクトは不変である事が好まし

                          • 戦術的DDDをGoで実現する【Value Object編】 - Yappli Tech Blog

                            はじめに こんにちは。サーバサイドエンジニアの窪田です。 前回の 戦術的DDDをGoで実現する【entity編】 - Yappli Tech Blog に続き、 今回は戦術的DDDにおける、Value ObjectがGoでどのように書けるのかを考えていきます。 例によってTypeScriptとの書き方の違いも一緒に考えていきます。 要件・目指す状態 ドメインルールを表したドメインモデルが定義されている 値の性質を満たした実装がされている という状態を目指します。 書いてみる ドメインモデルを定義する 例えば、ある登録制のサービスでのユーザーネームについて考えます。 そのユーザーネームが 5文字以内でなくてはいけない 半角英数字のみでなくてはいけない というドメインルールがあるとします。 TypeScriptでは以下のように書けます。 class UserName extends Strin

                              戦術的DDDをGoで実現する【Value Object編】 - Yappli Tech Blog
                            • mybatisで値オブジェクト(Value Object)を扱う場合のポイント - shimapapa.io

                              前置き 現場で mybatis を使い始めたのですが、値オブジェクト(Value Object)とマッピングさせる際に少しハマったので整理しました。 環境 Spirng Boot mybatis h2 DataBase SELECT の結果をオブジェクト内の Value Object にマッピングさせる 以下のようなUserNameという Value Object クラスがあったとします。 package com.example.demo.domain.model; public class UserName { private final String value; public UserName(String value) { this.value = value; } public String getValue() { return this.value; } } Userクラスが

                                mybatisで値オブジェクト(Value Object)を扱う場合のポイント - shimapapa.io
                              • Add Data class implementation: Simple immutable value object by zverok · Pull Request #6353 · ruby/ruby

                                You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                  Add Data class implementation: Simple immutable value object by zverok · Pull Request #6353 · ruby/ruby
                                • GitHub - CuyZ/Valinor: PHP library that helps to map any input into a strongly-typed value object structure.

                                  You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                    GitHub - CuyZ/Valinor: PHP library that helps to map any input into a strongly-typed value object structure.
                                  • TypeScriptでValue Objectを試す - Qiita

                                    概要 表題の通り、TypeScriptでValue Objectの実装を試したのでメモします。 Value Objectとは? 本記事でいうValue Objectは、「DDD」に登場するValue Object(値オブジェクト)のことです。 特にここではValue Objectの説明には触れません。 参考 https://little-hands.hatenablog.com/entry/2018/12/09/entity-value-object 実装 GOAL 下記の2種類のValue Objectを作成してみます。 Email: Eメールアドレス (正しいメールアドレスかどうかバリデーション) Password: パスワード (8文字以上かどうかバリデーション)

                                      TypeScriptでValue Objectを試す - Qiita
                                    • kawasima on Twitter: "Value Objectの話、整理してみました。 やってみて気づいたが、Primitive Obsessionの対策として、「Value Object」って用語を不用意に使わない方がいいな、と思いました。 https://t.co/UFQKh5WZec"

                                      Value Objectの話、整理してみました。 やってみて気づいたが、Primitive Obsessionの対策として、「Value Object」って用語を不用意に使わない方がいいな、と思いました。 https://t.co/UFQKh5WZec

                                        kawasima on Twitter: "Value Objectの話、整理してみました。 やってみて気づいたが、Primitive Obsessionの対策として、「Value Object」って用語を不用意に使わない方がいいな、と思いました。 https://t.co/UFQKh5WZec"
                                      • React と Value Object で凝集度を高める|Showcase Gig Product Team Blog

                                        こんにちは。 Showcase Gig の金子です。 テイクアウト向けモバイルオーダーサービス「O:der ToGo(オーダートゥーゴー)」のフロントエンドエンジニアをしています。 本記事では、React に Value Object を適用した事例と、実装で得た気付きを共有します。 背景React でコーディングを進めていく際に、多くのドメインロジックをフロントエンドで実装していました。 多くのドメインロジックを含んでいる例を、 redux-ddd-exampleより引用します。 items を算出するために、コンポーネント内にドメインロジックが散在しています。 function TodoItems (props) { const { todos, updateTodo, deleteTodo } = props const items = todos.map(item , i) =>

                                          React と Value Object で凝集度を高める|Showcase Gig Product Team Blog
                                        • bliki: Value Object

                                          When programming, I often find it's useful to represent things as a compound. A 2D coordinate consists of an x value and y value. An amount of money consists of a number and a currency. A date range consists of start and end dates, which themselves can be compounds of year, month, and day. As I do this, I run into the question of whether two compound objects are the same. If I have two point objec

                                            bliki: Value Object
                                          • 『Value Objectについて整理しよう - Software Transactional Memo』へのコメント

                                            これ/問題の複雑さに合わせて膨れ上がるコードの複雑さをうまく統治するためにプラクティスを適宜使っていこうという順序で考えるべきであって、プラクティスの導入自体がコードに複雑さを加えるのであれば本末転倒

                                              『Value Objectについて整理しよう - Software Transactional Memo』へのコメント
                                            • 『Value Objectについて整理しよう - Software Transactional Memo』へのコメント

                                              ブックマークしました ここにツイート内容が記載されます https://b.hatena.ne.jp/URLはspanで囲んでください Twitterで共有

                                                『Value Objectについて整理しよう - Software Transactional Memo』へのコメント
                                              • 【DDD】値オブジェクト - Value Object

                                                値オブジェクトとは 業務で使う単位で値のルールをクラスとして表現したものです。例えば年齢は通常、number型のようなプリミティブな値で表現されることが多いですが、値オブジェクトではarg型として業務で扱う単位の型で表現します。 書籍「実践ドメイン駆動設計」[1]では、値オブジェクトの特徴について、このように書かれています。 ドメイン内の何かを計測したり定量化したり説明したりする 状態を不変に保つことができる 関連する属性を不可欠な単位として組み合わせることで、概念的な統一体を形成する 計測値や説明が変わったときには、全体を完全に置き換えられる 値が等しいかどうかを、他と比較できる 協力関係にあるその他の概念に「副作用のない振る舞い」を提供する 次のサンプルコードを見て、特徴と照らし合わせながら確認していきます。 /** * 預けているお金の操作を行うクラス */ class Balanc

                                                  【DDD】値オブジェクト - Value Object
                                                • 値オブジェクト (Value Object)|【DDD入門】TypeScript × ドメイン駆動設計ハンズオン

                                                    値オブジェクト (Value Object)|【DDD入門】TypeScript × ドメイン駆動設計ハンズオン
                                                  • 2021-07-12 Rails composed_of を使ったValue Object パターン

                                                    2021-07-12 Rails composed_of を使ったValue Object パターン 12 July 2021 (Updated on 08 Jun 2022) Rails で Value Object パターンを扱うのに便利な composed_ofについて調べた。 オプション class_name: Value Objectの名前。Value Object生成時にこのクラスが使われる mapping: ActiveRecord Object <=> Value Object の相互変換に使われるattributeのマッピング。複数の値をValue Objectに展開する場合 Array of Arrayの形式でここを渡す constructor: ActiveRecord Object => Value Object に展開するときのメソッド converter: Se

                                                    • Ruby で value object

                                                      Ruby で value object をつくるときに考えていること。 Value Object 同一性 identity ではなく、等価性 equality に着目して比較するオブジェクト。 https://www.martinfowler.com/eaaCatalog/valueObject.html equality については同値性という訳もあるが、ここでは等価性とする。 例として扱うオブジェクト バージョン番号を表す VersionNumber を例として用いる。 class VersionNumber # @param major [Integer] # @param minor [Integer] # @param patch [Integer] def initialize(mejor = 0, minor = 0, patch = 0) @major = major @m

                                                        Ruby で value object
                                                      • Java Newsラウンドアップ - Spring Projectのアップデート、Value Object(プレビュー)、JEP、Quarkus 2.7.2

                                                        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が最近リリースされ、重要な変...

                                                          Java Newsラウンドアップ - Spring Projectのアップデート、Value Object(プレビュー)、JEP、Quarkus 2.7.2
                                                        • Goで汎用的な値オブジェクト(value object)の仕組みを作成した話

                                                          この記事ではドメイン駆動開発(DDD 以降DDDとします)に登場してくる値(value)オブジェクト(以降値オブジェクトとします)をGoで実装する方法を紹介します。クラスがないGoで完全な値オブジェクトを実装するには工夫が必要です。今回はGoのジェネリクスを使用してなるべく汎用的な作りにしてみました。 値オブジェクトについて DDDの文脈で登場するドメインモデルの一種です。ドメインを表現するのにエンティティという概念があり、エンティティは一意性を持ちます。エンティティ以外のドメインモデルは値オブジェクトであり、以下のような特徴を持ちます。 一度作成したオブジェクトの状態は不変である。(基本的には) オブジェクトの状態が変わる時は、オブジェクト自体を完全に置き換える。 値が等しいかどうかを比較することができる。 値オブジェクトを採用する理由やメリットについてはDDDについての理解や説明となっ

                                                            Goで汎用的な値オブジェクト(value object)の仕組みを作成した話
                                                          • PHPでStannumを使って超簡単にValue Objectを作る - Qiita

                                                            おはようこんにちはこんばんは。 さて、今回は自作したライブラリの宣伝にはなってしまいますが、Stannumというライブラリを使って、便利に使える値オブジェクト(Value Object)を簡単に作る方法を紹介したいとおもいます。 ライブラリ本来の使い方からは少し逸れますが、ライブラリのクラスでスカラー型をラップするという性質を利用して、そのクラスを継承してValue Objectとして活用しました。 導入 他のライブラリ同様、いつも通りcomposerから入れてあげます。

                                                              PHPでStannumを使って超簡単にValue Objectを作る - Qiita
                                                            • ddd value object - Google 検索

                                                              2019/12/29 · なお ValueObject は、日本語では「値オブジェクト」と呼びます。 Value Object を導入することによるメリット は、 - 可読性の向上 - 値の取り違えによる ...

                                                              • オブジェクト指向の理解にはValue Objectを作る習慣から - Qiita

                                                                はじめに ここ1年くらいでやっとオブジェクト指向らしいコードが書けるようになってきました。 オブジェクト指向を知ったのは1995年なので、20年以上かかったことになります。 そんな自分がオブジェクト指向らしいコードが書けるようになったきっかけは Value Objectを意識して書くようにしたからです。 Value Objectとは 一番シンプルな定義はMartin Fowler先生が書いている記事の翻訳(バリューオブジェクト)がいいかなと1。 フィールドの値が同じなら2つのValue Objectは同じ 不変 Javaでの実装例 Javaの場合は以下の2つを満たすといいです。 直接は関係ありませんが、toString()も実装しています。 equals()とhashCode()を実装 フィールドは全てfinal2 例えば、java.time.Year風のクラス、MyYearを実装してみま

                                                                  オブジェクト指向の理解にはValue Objectを作る習慣から - Qiita
                                                                1