[フレーム]
はてなブックマークアプリ

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

アプリで開く

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

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

エントリーの編集

loading...

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

タイトルガイドライン

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

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

ブックマークしました

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

Twitterで共有

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

393users がブックマーク コメント 51

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

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

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

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

よく使うタグ

設計要件をギッチギチに詰めたValueObjectで低凝集クラスを爆殺する - Qiita

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

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

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

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

よく使うタグ

はてなブックマーク

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

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

ユーザー登録

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

記事へのコメント51

  • 注目コメント
  • 新着コメント
n314
オブジェクト指向ってこういうことじゃないの?あれ?これ普通じゃないんかな。ダメだと思ってる人は指摘記事書いてほしいなあ。

その他
devorgachem
ブコメの評価低いけど、普通にこれは良い方法だと思う。特にIDとかは、ほかのIDが混入すると見つけるの大変だし、足し算引き算いらんしで同じ方法をとってるしうまくいってる

その他
a_suenami
よかった(小並感

その他
fukken
newした時点で「完全体」ではないインスタンスが存在するのがそもそも間違い。必須の要素は全部コンストラクタで要求するべき。「代入」が間違い。セッターにすれば解決。下手の考え休むに似たり。

その他
marshi
コンストラクタがそもそもnewした時点で正常な状態にするための機能だからパターンというかコンストラクタ本来の使い方しましょうっていうやつ

その他
aipacommander
よさそう

その他
thetacpa
不正なインスタンスの存在自体を許さない絶対正義。"下書き"をやりたいなら、"下書きクラス"の正しいインスタンスにすれば良い

その他
kazuau
消費税率は例がよくないよ。外国取引とか軽減税率とか経過措置とか継続役務とか、税率が決まる要素はたくさんあるので、こういうクラスで完結させるのは無理な例として挙げる方が適切なくらい

その他
otihateten3510
やばい、全然良さが理解できない

その他
tacorice83
よくまとまっている

その他
msykt
良い記事。1年に1回見返したい

その他
shunt_i
課題が共感できるし解決法も良さそう、丁寧でわかりやすかった。ディレクトリ構成がどうなるかも欲しかったな。

その他
t1mvverr
internalで外部から値を取れるように変えるのか、Valueという名のgetterを作って取れるようにするのか、似た目的に別々な手段を用意した意図が分からない。どっちかに統一したほうが良くね。

その他
guitgraph
[プログラミング]

その他
efcl
ValueObject

その他
wordi
値の種類ごとに型(クラス)作るのは同意、消費税計算は日付や店内で食べるなどの外部要因が必要だから自分なら肥大化しうる計算関連を逃がすTaxCalculatorクラスとか作るかな

その他
password1234
値のバリデーションはできるだけランタイムではなくコンパイルタイムでやって欲しい派

その他
tofu-kun
凝集〜

その他
peketamin
金額オブジェクトは難しいよね。税率が入ってくると「いつの」になるし、そうなると日時を持つ。税率は別オブジェクトになり、プロパティとして持つ?金融は関数型言語の方が向いてると聞いたが、どうやってるんだろ

その他
bambookun
良記事。 https://engineer.crowdworks.jp/entry/2019/09/02/120253 こっちにも同じこと書いてある。こちらもおすすめ

その他
aipacommander
aipacommander よさそう

2019年11月06日 リンク

その他
objectiveworker
モデル系クラスで入出力が伴うメソッドは、SwiftでいうExtensionで分けないと逆に依存関係が複雑になるのよ。

その他
gabari
個人的にはすごいわかるんだが、いかんせんこのレベルでも分かってないヤツが多すぎて辛い。たまにBuilderクラスとか使うと、これも理解されないのが辛い

その他
yuno001
昔プログラムかじったレベルだけど大体言いたいことわかるし、むしろこんなレベルの話をわかってない人がITやってるの?(煽り)

その他
odakaho
ロジックの途中でsetしたり破壊的メソッドの引数にしたりでも平気な顔してる人って結構いるので、言ってることはわかるけど、共通処理として切り出したほうがよりいいと思う。税率計算なんていろんなとこでやるし。

その他
yamadadadada2
できるだけこういうことをやらずに、規約を守らせることでスピードを出そうとしたのがRailsなのかな

その他
gmkzmrn
いまだsetterの存在価値がわからない

その他
Dragoonriders
お題が適切じゃない気がする。特に "契約日が決まってしまえば、あとは消費税施行日と照らし合わせて消費税率が決まる仕組み" まあ、本気にして業務でこれやったら爆さつされますよ。あくまで例だからいいけど。

その他
chimerast
型でガチガチに可視化するのって重要だよね。あと、契約プログラミング。この辺、概念だけ勉強しても、実際の現場で実例に触れないとまあ身につかない。

その他
airj12
個人的には好きな考え方だけど責務分割の難しい大規模システムで特定のValueObjectが開発のボトルネックになったりするので悩ましい

その他
ntaoo
"オブジェクト指向で設計"が、最近はDDDで設計にリブランディングされつつあるのかな

その他
cpw
いつか参照するかも

その他
snicmakino
良記事。生焼けオブジェクト作ろうとする人が結構多いから、こういう説明は参考になるなあ。

その他
daibutsuda
うむ?セッターで不正値を弾くのがなんでだめなのかがわからない...。

その他
gabill
お題:軽減税率の行に(注記)を表示する改造

その他
D_first
シグネチャが正直になるように関数型プログラミングを取り入れればもっと良くなるな

その他
Futaro99
最近スカラー型扱うとウッてなるようになってきた

その他
Helfard
オブジェクト指向だよね?

その他
marshi
marshi コンストラクタがそもそもnewした時点で正常な状態にするための機能だからパターンというかコンストラクタ本来の使い方しましょうっていうやつ

2019年11月05日 リンク

その他
vndn
オブジェクト指向エクササイズに近い

その他

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

リンクを埋め込む

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

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

関連記事

usersに達しました!

さんが1番目にブックマークした記事「設計要件をギッチ...」が注目されています。

気持ちをシェアしよう

ツイートする

設計要件をギッチギチに詰めたValueObjectで低凝集クラスを爆殺する - Qiita

/// <summary>契約コントローラー</summary> public class ContractController { private ContractAmoun... /// <summary>契約コントローラー</summary> public class ContractController { private ContractAmount _contractAmount; /// <summary>税込金額を計算する。</summary> /// <param name="amountExcludingTax">税別金額。</param> /// <param name="salesTaxRate">消費税率。</param> /// <returns>税込金額。</returns> public int CalculateAmountIncludingTax(int amountExcludingTax, decimal salesTaxRate) { return (int)(amountExcludingTax * (1.0m + sales

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

  • katzumi2024年11月17日 katzumi
  • ryosuke-fujii2023年09月30日 ryosuke-fujii
  • techtech05212023年05月17日 techtech0521
  • meu0u0meu2022年10月09日 meu0u0meu
  • t-namikata2022年05月10日 t-namikata
  • siik022021年12月09日 siik02
  • saloverses2021年06月12日 saloverses
  • ysirman2020年12月21日 ysirman
  • rydot2020年12月21日 rydot
  • koroharo2020年12月09日 koroharo
  • advancive612020年12月09日 advancive61
  • kuwayoshi2020年12月09日 kuwayoshi
  • len_prog2020年10月09日 len_prog
  • kabukisan2020年08月04日 kabukisan
  • hbKOT2020年05月06日 hbKOT
  • rutei2020年03月15日 rutei
  • ms06taku2019年12月25日 ms06taku
  • d4-19772019年12月25日 d4-1977
すべてのユーザーの
詳細を表示します

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

同じサイトの新着

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

いま人気の記事

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

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

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

新着記事 - テクノロジー

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

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

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

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

はてなブックマーク

公式Twitter

はてなのサービス

Copyright © 2005-2025 Hatena. All Rights Reserved.
設定を変更しましたx

AltStyle によって変換されたページ (->オリジナル) /