Movatterモバイル変換


[0]ホーム

URL:


はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • Twitterでシェア
  • Facebookでシェア

気に入った記事をブックマーク

  • 気に入った記事を保存できます
    保存した記事の一覧は、はてなブックマークで確認・編集ができます
  • 記事を読んだ感想やメモを書き残せます
  • 非公開でブックマークすることもできます
適切な情報に変更

エントリーの編集

loading...

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。

タイトルガイドライン

このページのオーナーなので以下のアクションを実行できます

タイトル、本文などの情報を
再取得することができます
コメントを非表示にできますコメント表示の設定

ブックマークしました

ここにツイート内容が記載されますhttps://b.hatena.ne.jp/URLはspanで囲んでください

Twitterで共有

ONにすると、次回以降このダイアログを飛ばしてTwitterに遷移します

574usersがブックマークコメント47

    ガイドラインをご確認の上、良識あるコメントにご協力ください

    0/0
    入力したタグを追加

    現在プライベートモードです設定を変更する

    おすすめタグタグについて

      よく使うタグ

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

        ガイドラインをご確認の上、良識あるコメントにご協力ください

        0/0
        入力したタグを追加

        現在プライベートモードです設定を変更する

        おすすめタグタグについて

          よく使うタグ

            はてなブックマーク

            はてなブックマークで
            関心をシェアしよう

            みんなの興味と感想が集まることで
            新しい発見や、深堀りがもっと楽しく

            ユーザー登録

            アカウントをお持ちの方はログインページ

            記事へのコメント47

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

              その他
              nomber3
              プリミティブ型の単純なラップ、欲しかったものは静的型チェックしてくれるtype aliasだったのでは感がある

                その他
                xxxxxeeeee
                kumagiの言うとおりC++書いてる限り「なにそれ当たり前やん」ってなる話。Goも割とそう、Rustもそう。でも数年だけJava仕事で書いてるときは確かにこの辺めんどくさかった。

                  その他
                  turanukimaru
                  あー「すべてのプリミティブ型と文字列型をラップする」連中のことね。私もあれはやりすぎで各オブジェクトに独自の振る舞いが見つかるまではプリミティブ型でいいと思うしValueObjectと呼ぶ必要がないものも多いなって

                    その他
                    strawberryhunter
                    なんでもクラスにしてしまうのはValue Object Obsessionというのか。これを真剣に導入しようという頭のおかしい輩が実在したことはここに記しておこうと思う。

                    その他
                    ledsun
                    “immutableは共有と複製の違いをぼかしたまま使うための工夫に過ぎなくて、常に複製しても良いとマーチン・ファウラーも言っている”

                      その他
                      nunulk
                      "プリミティブ型をわざわざクラスで包んで別名参照問題の懸念を引き起こし、更にそれをimmutableデザインによって解決する、という手順は自分で掘った穴を埋める労働のよう"

                      その他
                      devrabi
                      なんにでもVOを自動生成で作りたがる人達はいる。そういうものに価値があるとは思えないが。

                        その他
                        aceraceae
                        この話の主題ではないけどルールへの過信みたいなのはあってインデント減らしたりひとつのメソッドを小さくするためにたらい回しみたいなコード書いてかえって可読性減らす人はわりといるよね。

                        その他
                        yojik
                        10年以上前のデブサミでOOPエクササイズを紹介した人間けど、当時はあくまでエクササイズですよというのを強調した。プリミティブを全部ラップするとかアクセサ全部禁止とかはベストキッドの窓拭きみたいなもん。

                          その他
                          t29mato
                          これか。確かに、英語で間違いなく value object が何かを定義してる

                            その他
                            for-my-internet-demo
                            “複雑かつ巨大な仕様をコードに落とした結果として全部のメンバーがValue Objectになる事はあるかも知れないが、目的としてそれをやってはいけない。”

                              その他
                              pascal256
                              とてもわかり易い説明だ

                                その他
                                gabuchan
                                いい話

                                  その他
                                  wkubota
                                  “ ”

                                  その他
                                  mizdra
                                  めちゃめちゃ分かりやすい

                                  その他
                                  efcl
                                  Value Objectは値による比較が行われるオブジェクトという話。値を表現するものと、型のAlias的なものについて

                                  その他
                                  iwasiman
                                  定義を見つめ直す話。"Value ObjectはValueのように振る舞うObjectであって、ValueにObjectのような振る舞いを足す事ではない。"

                                  その他
                                  kobito19
                                  "欲しかったものは静的型チェックしてくれるtype aliasだったのでは感がある" 欲しいのは "alias" では無く、本物の型だよ

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

                                      その他
                                      zyzy
                                      Scalaだとこの辺はvalue classかcase classかみたいな話

                                      その他
                                      mominis
                                      null参照といいオブジェクト指向言語はことごとくポインタの抽象化に失敗しているな

                                        その他
                                        n314
                                        ブコメ見て、確かに type alias がないから仕方なくやってるところがあるかも。

                                        その他
                                        prograti
                                        こういう概念の理解も大切ですよね。こっちの記事も具体例があって自分的には分かりやすかったかも。https://leanpub.com/tdd-ebook/read#leanpub-auto-value-objects

                                          その他
                                          moriyoshi
                                          こういうことを言うとすごい怒られそうだけど、議論を見ていると、Martin Fowler氏とかは絶妙に説明を変えて批判を避けてきているところもあるんじゃないかなとも思えて、逆にそれが氏の誠実さなのかもしれないけども…

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

                                              その他
                                              hasiduki
                                              ほーん!!!!

                                                その他
                                                rikuba
                                                “Value ObjectはValueのように振る舞うObjectであって、ValueにObjectのような振る舞いを足す事ではない。”

                                                その他
                                                tor4kichi
                                                「VOはこうだ」とまでは言えるけど、じゃあそれ以外は? 「VO以外の全てのコードはドメインオブジェクトだ」と言って差し支えないのであれば、VOと同時にそれ以外を説明することで混乱を減らせないだろうか

                                                  その他
                                                  cuttoff19
                                                  後半良かった

                                                  その他
                                                  raydive
                                                  これはこれで過激なこと言いたいだけのように見えてなんだかなぁとは思う。/全部が全部オブジェクトに包む必要はないのは確かだけど

                                                  その他
                                                  PrivateIntMain
                                                  VOにできるのって複数の値が組み合わさった番号ぐらいなもんでは。バリデーション楽したいからとかシステム都合で生まれるもんじゃない。

                                                    その他
                                                    devrabi
                                                    devrabiなんにでもVOを自動生成で作りたがる人達はいる。そういうものに価値があるとは思えないが。

                                                      2022/05/15リンク

                                                      その他
                                                      tengo1985
                                                      冷静に考えたらそのとおりだろ、と結論だと思うけれど極端な考えになってることあるよな。

                                                        その他
                                                        nomber3
                                                        nomber3プリミティブ型の単純なラップ、欲しかったものは静的型チェックしてくれるtype aliasだったのでは感がある

                                                          2022/05/15リンク

                                                          その他
                                                          ch1248
                                                          同意。俺も一時期「全てをオブジェクトにした方がいいのか?」みたいな状態にはなってたが、YAGNI原則適用でいいよねと思う。

                                                          その他
                                                          mak_in
                                                          C#のrecord型が、これになってるな。ORMであるentity frameworkが、DBの追跡のためにentity クラスをrecordにするな、と書いてるんだけど、利用側にとってはrecordで使いたい場面もしばしば。そこら辺のノウハウが地味に知りたい。

                                                            その他
                                                            xxxxxeeeee
                                                            xxxxxeeeeekumagiの言うとおりC++書いてる限り「なにそれ当たり前やん」ってなる話。Goも割とそう、Rustもそう。でも数年だけJava仕事で書いてるときは確かにこの辺めんどくさかった。

                                                              2022/05/15リンク

                                                              その他
                                                              yarumato
                                                              “JavaScriptで = の意味が、プリミティブ型(int等)なら複製、オブジェクトなら(ポインタ)共有、という挙動の違いはややこしい。プリミティブ型の取り回しに揃えたい。Valueのように振る舞うObjectなのでValue Objectと呼ぶ”

                                                                その他
                                                                God-kami
                                                                “つまり代入式がやることが複製なのか共有なのかを人間が都度意識するのは無駄なので「書き換える時は常に複製を作って複製物を書き換える」という解決策を取ることでこの問題を回避できると言っている。”

                                                                  その他

                                                                  注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

                                                                  リンクを埋め込む

                                                                  以下のコードをコピーしてサイトに埋め込むことができます

                                                                  プレビュー
                                                                  アプリのスクリーンショット
                                                                  いまの話題をアプリでチェック!
                                                                  • バナー広告なし
                                                                  • ミュート機能あり
                                                                  • ダークモード搭載
                                                                  アプリをダウンロード

                                                                  関連記事

                                                                    usersに達しました!

                                                                    さんが1番目にブックマークした記事「Value Objectにつ...」が注目されています。

                                                                    気持ちをシェアしよう

                                                                    ツイートする

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

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

                                                                    ブックマークしたユーザー

                                                                    • polamjag2025/10/07polamjag
                                                                    • hbKOT2025/08/26hbKOT
                                                                    • t29mato2025/06/02t29mato
                                                                    • metatrading2025/03/10metatrading
                                                                    • kirikiriyamama2025/01/08kirikiriyamama
                                                                    • katzumi2024/11/17katzumi
                                                                    • o_tomomichi2024/07/09o_tomomichi
                                                                    • rummelonp2024/07/08rummelonp
                                                                    • mano-junki2024/05/12mano-junki
                                                                    • knstkny2024/05/06knstkny
                                                                    • ys122401132023/12/18ys12240113
                                                                    • yyamano2023/11/16yyamano
                                                                    • knj29182023/11/03knj2918
                                                                    • deep_domao2023/10/23deep_domao
                                                                    • yutag2023/09/25yutag
                                                                    • fuyu772023/07/14fuyu77
                                                                    • celt69cobra2023/07/11celt69cobra
                                                                    • GAOKA2023/05/17GAOKA
                                                                    すべてのユーザーの
                                                                    詳細を表示します

                                                                    ブックマークしたすべてのユーザー

                                                                    同じサイトの新着

                                                                    同じサイトの新着をもっと読む

                                                                    いま人気の記事

                                                                    いま人気の記事をもっと読む

                                                                    いま人気の記事 - テクノロジー

                                                                    いま人気の記事 - テクノロジーをもっと読む

                                                                    新着記事 - テクノロジー

                                                                    新着記事 - テクノロジーをもっと読む

                                                                    同時期にブックマークされた記事

                                                                    いま人気の記事 - 企業メディア

                                                                    企業メディアをもっと読む

                                                                    はてなブックマーク

                                                                    公式Twitter

                                                                    はてなのサービス

                                                                    • App Storeからダウンロード
                                                                    • Google Playで手に入れよう
                                                                    Copyright © 2005-2025Hatena. All Rights Reserved.
                                                                    設定を変更しましたx

                                                                    [8]ページ先頭

                                                                    ©2009-2025 Movatter.jp