オブジェクト指向システムの設計 174 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/09/26(火) 07:20:38.98ID:qu+DPehL
前スレ
オブジェクト指向システムの設計 172
http://mevius.2ch.net/test/read.cgi/tech/1467992113
オブジェクト指向システムの設計 173
http://mevius.2ch.net/test/read.cgi/tech/1502182334/

類似スレ
手続き型システムの設計 1
http://mevius.2ch.net/test/read.cgi/tech/1500282714
2017/10/15(日) 21:06:15.70ID:/8UsyUgn
>>605
その質問に、

ある と答えた場合
ない と答えた場合

それぞれあなたはなんて返してくるんですか?
いや、どうせどちらで答えても、的はずれな
文句言って終わるんだろうなと思いましてねw
2017/10/15(日) 21:13:49.98ID:zIm4LF54
>>606
いや、もうただの屁理屈じゃんお前の
設定ファイルの読み込み処理がバグってるかもしんねーじゃん
最終的な動作の確認は絶対必要じゃん

お客からしたら設定値なんて
ファイルに出そうがソースに埋め込もうが知ったこっちゃないじゃん
ただ、お約束した機能が動いているかどうかはお客さんとの約束でしょ?
その確認をしないでどーすん?
2017/10/15(日) 21:17:26.65ID:/8UsyUgn
> 設定ファイルの読み込み処理がバグってるかもしんねーじゃん

ならそこだけをテストすりゃいーだろ。
仕事は減らす方向に向かって頑張れよ。

人海戦術で時間をかけたらからって
偉くもなんともないんだぞ
2017/10/15(日) 21:21:47.27ID:KCBqed/H
>>606
まずはどっちなの?
2017/10/15(日) 21:22:09.90ID:/8UsyUgn
> ただ、お約束した機能が動いているかどうかはお客さんとの約束でしょ?
> その確認をしないでどーすん?

その確認をどーするって、お前は客にテストやりましたって
エクセルシートでも送りつけて、それが本当かもわからないのに
これ見て納得してくださいってやってるんだろ?何一つ証拠がねーよ。
それともテスト作業してる動画を何時間も見せてこれが証拠ですとでもやるつもりか?

コード見せたって客はその内容わからないかもしれないし、
テストコード見せたって、それがソースコードの形じゃやっぱりわからない。
エクセルファイル見せたって、それを本当にやったかどうかもわからない。
間違って記入しているかもしれない。何にもあてにならないよね。

俺が言ってるのは、客にも簡単にわかるような形でデータを作り
そのデータをそのままプログラムで使えって言ってるの。
客がそれみて納得すりゃそれでOKだし、そのファイルを
直接使うからもちろんその通りに動く。

客の検収作業が、そのまま目視による確認になってるんだが。
2017/10/15(日) 21:36:21.23ID:hZRxEBGG
>>591
メールアドレスじゃなく郵便番号くらいを例にしたほうがよかったかね
どういうメールアドレスを正しい形式とするかは要件によって変わってくるんだよ
RFCがあるからといって技術者が勝手に決められるものじゃないから

簡単な郵便番号の入力チェックでも
何をOKとして何をNGとするかは要件次第
その「目視の確認」で一体何が担保できるんだろうね?

1500001
150-0001
150−0001
150    (旧3桁)
150-01  (旧5桁)
150-9999 (存在しない)

あらゆるケースをすべてテストできるわけでもないしするべきでもないが
仕様通りに動くと自信を持てるレベルのテストはすべき
2017/10/15(日) 21:42:30.40ID:zIm4LF54
>>608
はぁ?馬鹿?
設定ファイルが間違ってる可能性は?
読み込みはうまく行っても
値が反映されてない可能性は?
それが設定ファイルのある特定の設定値だけバグる可能性は?

まあ、普通に仕様通りに動くこと確認した方が早いよね?
2017/10/15(日) 21:43:34.59ID:/8UsyUgn
> メールアドレスじゃなく郵便番号くらいを例にしたほうがよかったかね
> どういうメールアドレスを正しい形式とするかは要件によって変わってくるんだよ
> RFCがあるからといって技術者が勝手に決められるものじゃないから
>
> 簡単な郵便番号の入力チェックでも
> 何をOKとして何をNGとするかは要件次第
> その「目視の確認」で一体何が担保できるんだろうね?

メールアドレスや郵便番号でもなんでもいいが、
ある項目が「メールアドレス」や「郵便番号」であることが担保できる。

これにより仮にバグがあったとしても、一箇所を修正するだけで
すべてが修正されることが担保できる。

動かして確認する方法だと、ある箇所のバグが修正されたからといって
別の場所も同じように修正されるとは限らない。

目視の確認ができるようにしておくことで、工数が大幅に削減できた。
2017/10/15(日) 21:44:37.83ID:/8UsyUgn
>>612
ならばそこだけテストすればいいだろって
さっきも言った。

目視の確認ではない。テストだ。
2017/10/15(日) 21:44:44.64ID:zIm4LF54
想像力が足りないから不具合が無いように見えるんだろうね
想像力足りなくてもこういうの経験ないのかな?
経験不足もあるのかな?
考えが幼いよ
2017/10/15(日) 21:45:37.94ID:zIm4LF54
>>614
じゃあ、普通に全部テストするってレスしてるよね?w
2017/10/15(日) 21:48:35.14ID:/8UsyUgn
>>616
お前関数って知らないのか?
共通化の基本テクニックだぞ?

全てのメールアドレスや郵便番号の項目で
同じ関数を使うんだよ。

テストをするのはその関数のみ。
バリデーションとしてその関数を使っているかどうかを
設定ファイルに書く。

何度も同じ話をさせるな
2017/10/15(日) 21:53:28.83ID:zIm4LF54
>>617
かんけーねーんだよ
何度も言うけどファイルに出したのはテメーの勝手なんだよ
動くかどうかを証明しろって言ってるの

何が必要でしょうか?
2017/10/15(日) 22:00:17.33ID:/8UsyUgn
>>618
見えない情報がある時点で、動かした所で
どんな場合でも動くとは証明できないってのは理解できてる?

ソースコードを読めば動かさなくてもわかる問題でも
ソースコードを隠した状態だと動かした結果だけでは証明できなくなる。
2017/10/15(日) 22:03:56.10ID:zIm4LF54
>>619
俺の質問に答える気はあるのかな?
もちろん答えは千差万別だが

お前のソフトが動くことの証明をして欲しいんだよ

一度でもソフトを納品したことがあるならわかるよね?
上司におんぶで抱っこでそんなこと気にしたことなかった?
2017/10/15(日) 22:08:32.52ID:/8UsyUgn
>>628
> お前のソフトが動くことの証明をして欲しいんだよ

なんでお前もできてないことを俺がやらんといけないの?
って言ってるんだが。

動くことの証明はソースコードを見せる以外に不可能なんだよ。
2017/10/15(日) 22:09:42.31ID:/8UsyUgn
ソフトウェアの納品は、動くことの証明じゃない。

これだけやりました。やったという証拠です。信じてください。
バグはないと思います(実際には有るだろ?)
という意味でしかない。

気にしたことなかった?
2017/10/15(日) 22:10:40.16ID:/8UsyUgn
いや、ソフトウェア納品でバグが1つもないと
証明するものを出したというのであれば、
それを言ってくれて良いんだが?

バグが有ることは証明できるが
バグがない(正しく動く)ことは証明できない
常識なんだがねぇ。
2017/10/15(日) 22:16:36.59ID:zIm4LF54
>>622
おお、よくわかってんじゃん
じゃあ、それをお前はどうやってやるの?
2017/10/15(日) 22:20:08.75ID:/8UsyUgn
>>624
え? 信用してくださいドキュメントの話なんかしてないじゃんw
今まで通りのやり方で適当にでっち上げれば?

俺は少ない手間で必要十分なテストをするだけの話
2017/10/15(日) 22:26:02.41ID:zIm4LF54
>>625
いいや
ソフトウェアって上から下まで
さっきお前が言ったとおり
確実なものなんか何一つないよ
お前の十分だってお前の中の十分だろ?

俺等とは違うの
その差分を俺らとは違うお前は自分で埋めなければならない
そこに理屈はない
それが説得ってもんじゃん
人を見るのが嫌ならこの業界は向いてないね
2017/10/15(日) 22:31:22.39ID:/8UsyUgn
結局屁理屈でごまかしたかw

無能なお前らと違うと言っても
だから何としか言えんわw
2017/10/15(日) 22:41:19.56ID:zIm4LF54
>>627
結局、テスト仕様書もテスト結果も
全ては説得なんだよ

理論に飛躍があり過ぎる
ウォーターフォールのV字開発で
設定ファイルに外だししたから
テスト項目減りますなんざ
あり得ない理論なんだよ

まあ、当然説得なんで可愛い女の子が交渉してくれば通る可能性も無きにしもあらずではあるけどね
2017/10/15(日) 23:06:53.56ID:nlQ3NzZf
>>595
>>593
>>>> 設定ファイルの各項目が実際の動作に反映されてるか動かしてみないと。
>>それは画面やAPIごとに、ここではこの項目が使われていますって
>>画面に表示するだけでOK。それを目視で確認すれば良い。

なるほど。
各項目のUIを一通り動作させて、
>>598 で書いてくれたようなデバッグモード的表示やデバッグログで、動いたバリデータの書類を出力するってことならよさそうだ。
それなら設定ファイルの内容および設定ファイルの配置の正当性が確認できる。
630
垢版 |
2017/10/16(月) 00:16:25.05ID:Qeq9VPfc
2008年くらいに.net FWの地雷踏みまくった事を鑑みると、
テスト仕様は要件定義から作成すべきだし、その実施も単体、結合レベルは機械的に掛けてもいいけど、総合は手でやるべきだろうなぁ。

「テスト対象はまともに動いていない」という仮説を、ケース毎に一つずつ潰していって、残るのが「正常に動いてる」って結果なのが試験で
「正常に動いてる」が先に立って「なぜならこう書いたから、こう動くはずで、現にそう動いてる」ってのは試験じゃなくて単なる確認では?
正直、単体テストでもテスト対象を作った言語を使わないでテストして欲しいところ。
2017/10/16(月) 04:11:08.89ID:LbOcJE9h
結局ID:/8UsyUgnは>>609にレスできずに逃げたのかよ w
2017/10/16(月) 23:24:09.06ID:t2YDIrX7
>>631
場合によるので「どちらも」が正解
2017/10/17(火) 05:56:41.14ID:kMB04QqG
>>632
>>606個人の話なのに場合によるとか頭大丈夫? w
2017/10/17(火) 19:34:45.23ID:lUBT12Jg
>コードは正しくても実行するとうまく動かないとか経験したこと俺はマニュアルどおりやったからこのコードは動かないけど正しいんだ!
635デフォルトの名無しさん
垢版 |
2017/10/17(火) 20:15:05.57ID:EyAJ3Syg
「Object Oriented」は「オブジェクト指向」と訳されていますが、実はこれが大変な誤訳で、正しくは「目的志向」です。
つまり、何らかの目的があって、それを目指す(「指向」は向いているだけ)というわけです。
2017/10/17(火) 20:25:59.57ID:jqryz7F2
目的はObjective
Objectは単純に『物』の意味だよ。
637デフォルトの名無しさん
垢版 |
2017/10/17(火) 20:28:58.13ID:EyAJ3Syg
>>636
典拠をご提示いただきたい
2017/10/17(火) 20:53:30.82ID:G9wCIPXR
>>637
まず自分が提示しろ
2017/10/17(火) 21:02:26.86ID:y2IFefmv
依存しあってんじゃねーよ
640デフォルトの名無しさん
垢版 |
2017/10/17(火) 21:19:29.37ID:EyAJ3Syg
>>638
senderを自分で生成する方法
http://bbs.wankuma.com/index.cgi?mode=al2&;namber=85371
2017/10/17(火) 21:56:16.29ID:G9wCIPXR
>>640
お、おう。。それもJittaさんか…

面白い捉え方だと思うけど
Object Orientedという言葉が出てきた歴史を調べれば
「目的指向」が誤訳なのが分かるよ
https://en.wikipedia.org/wiki/Object-oriented_programming#History
642デフォルトの名無しさん
垢版 |
2017/10/17(火) 22:34:25.19ID:EyAJ3Syg
>>641
Jittaさんが言ってることの方がガセネタですね
じゃあそれを根拠にわんくまに怒鳴り込もうと思います
ありがとうございます
643
垢版 |
2017/10/17(火) 22:41:00.56ID:GZgPL7cm
まあ英語でObject orientedだと、大体は対象志向みたいな意味合いだけどな。
Objectって単語は、モノと言うよりも「認識できる何か」「動作や感情の対象」を指す。
動詞になると顕著で、「俺はこれに文句があるんだが」ぐらいキツい意味。
「I object to waiting」みたいな。

Ob + ject 。前に向かって投げたやつ。客観的に見ることができる物、が語源。
逆に、中に投げ入れるモノがinject。下に投げたものがsubject(自我、主観)。
644
垢版 |
2017/10/17(火) 22:46:44.09ID:GZgPL7cm
>>636
単なる「モノ」はだいたいbody、matter、substance。
physical bodyとか使う。
天体の「体」もbody。heavenly-body。
2017/10/17(火) 22:54:02.93ID:0cEpFleP
>>644
素晴らしい「モノ」
優れている「モノ」
高品質な「モノ」
高機能な「モノ」

のモノはどれになるの?
2017/10/17(火) 22:55:17.94ID:0cEpFleP
食べモノ、飲みモノ
も追加しよう
2017/10/17(火) 22:55:26.36ID:xucK+Hbm
thingは?
648デフォルトの名無しさん
垢版 |
2017/10/17(火) 22:55:57.78ID:EyAJ3Syg
>>643
つまりJittaさんが大正解ってこと?
2017/10/17(火) 22:59:32.89ID:xucK+Hbm
目的を指向するってメチャクチャ当たり前だなw 殊更言葉にするのが恥ずかしいくらい
2017/10/17(火) 23:08:10.96ID:O+BDW8Aj
責務指向でいいじゃん?
2017/10/17(火) 23:20:41.75ID:A1W0Ufl3
役割って感じ?
objectではないけどしっくり来る
652デフォルトの名無しさん
垢版 |
2017/10/17(火) 23:31:17.25ID:EyAJ3Syg
責務駆動設計とか言うよね
2017/10/17(火) 23:35:58.51ID:0cEpFleP
せやかて駆動設計
2017/10/17(火) 23:36:27.01ID:O+BDW8Aj
責務はいつも一つ!
655デフォルトの名無しさん
垢版 |
2017/10/17(火) 23:38:24.92ID:EyAJ3Syg
>>654
いいね!
2017/10/17(火) 23:47:01.89ID:G9wCIPXR
Functional ProgrammingのFunctionにだって責務あるし
POAのProcessやDOAのDataにだって責務は有る

他と違って「オブジェクト」という抽象概念を中心に物事を考えるからオブジェクト指向という名前
んでオブジェクトってのは↓
a data structure that can contain functions as well as data, variables, and other data structures
https://www.merriam-webster.com/dictionary/object
657デフォルトの名無しさん
垢版 |
2017/10/17(火) 23:58:04.35ID:EyAJ3Syg
Object oriented languageは
・カプセル化、継承、多態性をサポートするもの
・JavaやC++、Rubyなど

Object based languageは
・継承・多態性をサポートしないもの
・VBなど

orientedはbasedと似たような意味で、basedよりも多くの条件を規定する。

Object based languageを「オブジェクトを基本にした言語」と解釈するならば
Object oriented languageは「オブジェクトを本位にした言語」と解釈するのが妥当な気がする。

「本位」は中心にして基本にするという意味なので「基本」を強めてる感じ。
658デフォルトの名無しさん
垢版 |
2017/10/17(火) 23:58:36.63ID:EyAJ3Syg
>>656
やっぱそうだよね、オブジェクトを中心にするっていうのがオブジェクト指向だよね
2017/10/18(水) 00:03:46.63ID:YCPgdWPh
>>657
オブジェクトじゃわからない
Objectはなんて訳すのが適切なのか
660デフォルトの名無しさん
垢版 |
2017/10/18(水) 00:22:48.20ID:kh//WtC6
>>659
>>641の歴史を見てほしい、翻訳してほしい、よろしくお願いします
2017/10/18(水) 00:36:43.88ID:GswCLlj6
ピッタリの訳語がないから
新しく作るか (例 経済)
既存の言葉に新しい意味を持たせるか (例 自由)

ちなみに中国語訳では「対象」らしい
662
垢版 |
2017/10/18(水) 00:58:52.74ID:a2+TOoEN
>>645
good one,
better one,
high-quality one,
とかでは?モノと言うよりは、何か指しとるでしょ、その言い回しで言うときには、モノは。

>>647
事象、作品、道具、衣服などなど、それだけでは存在に意味が存在しない類のやつ。転じて、流行りとか、大事な事を指したりする。
2017/10/18(水) 07:54:38.23ID:/RGzz2zm
抽象的な部分は合ってるな
2017/10/18(水) 07:56:46.88ID:/RGzz2zm
orientedも指向より主導の方がいいと何かの本で書いてたな
2017/10/18(水) 08:07:11.64ID:/RGzz2zm
主体とか本位とかでもいいかもね
役割主体、役割本位
2017/10/18(水) 08:13:24.82ID:lHCL+31V
>>659
「モノ」「箱」「塊」とかなんでもいいような気がしてきた
どうせ実際に使う時は「社員」とか「敵機」とかになるんだし
2017/10/18(水) 14:09:11.49ID:hmGkDgR5
人間の方の理解のために「”もの“になにかやらせる」
「”もの“を複製して別な”もの“のパーツとして使う」
これわかりやすいっしょ?
どんどん再利用パーツ増えて複雑になってったらこうじゃないとキツイっしょ。
で提唱されたってのに、すぐにベテランプログラマーさんは
「この名前さあ、タイプすんのめんどくさいから「あ」「い」「う」でよくね?」と他人にわからない暗号にしたがったり
「オブジェクト指向ってさぁ、オブジェクト単位に分けるんっしょ?この再利用しない中身もさぁ
ぜんぶ用途別に名前つけてパーツに分類整理しなきゃ!」とかやりなさる…
668
垢版 |
2017/10/18(水) 19:20:47.11ID:a2+TOoEN
そうなると、クラスって何だ、インスタンスって何だ、コピーなら、コピー元も何かの役割を果たしてたんだろ?みたいな明後日の事言われるからな。

プレスの金型と、それで作り出した製品くらいの言い方の方が伝わる。
たまに金型に便利な治具ついてることもあるし、付けることもできて、それはプレスせずに金型から直接使えますが、
その治具にメモとかつけると皆から見えたり、誰かに剥がされたりするので、必要がなければ製品に付けたほうがいいですよ、
何回プレスしたかのカウンタとかは治具につけたら良いですね。みたいに説明した事ある。

スーパークラスとかサブクラスも、同じように、互換品の金型と互換品とかそういう説明できるから、物理な型で説明すると割とわかってくれる。
2017/10/18(水) 22:26:09.70ID:FgeE42WT
適切な訳語、的確なメタファって大事やね
670
垢版 |
2017/10/18(水) 23:14:36.30ID:a2+TOoEN
プロトタイプベースな言語だと、コピーのメタファの方が的確になったり、まぁ難しいわ、もう自分が知ってる物を、1から人に教える順番を考えるのは。
2017/10/19(木) 00:15:22.98ID:ycrHDnwP
自分がちゃんと理解してないものは人に説明できないって言うしね
2017/10/19(木) 07:18:30.10ID:mnQ3FyhH
ガウディ本読んでから議論して欲しいね。
673
垢版 |
2017/10/19(木) 08:25:03.58ID:Qitn7VqG
>>671
わかるわ。耳が痛い。教育することになって逆に知る事も多かったしな。
若手の新アイディアは、素直に教えてもらってる。
たまに俺が相槌しか話してないうちに「出直します」って言うから、どうやらテディベアとしても活用されてる模様。
2017/10/19(木) 08:44:29.39ID:CxX652pT
>>673
気持ち悪い
2017/10/19(木) 08:45:50.14ID:CxX652pT
自分の行動を素直にと修飾するところが完全に淫乱テディベア
2017/10/19(木) 20:46:11.30ID:SO5YirTn
オブジェクト指向を理解させたければ
まずはオブジェクトを理解させることからはじめないと

クラスやプロトタイプは二の次でいいし
責務や役割は別レイヤーの話
677デフォルトの名無しさん
垢版 |
2017/10/20(金) 06:47:53.32ID:2DRMxDJ6
DDDって結構やってるもん?
678デフォルトの名無しさん
垢版 |
2017/10/20(金) 07:15:39.98ID:VprmOZRL
ディスプレーディスパッチドライバ。
2017/10/20(金) 07:46:42.44ID:l3SzA2hH
>>677
IT後進国の日本ではまだほとんど導入されてないね
非正規化DB 、非レイヤー化、貧血ドメイン、トランザクションスクリプトが主流
680デフォルトの名無しさん
垢版 |
2017/10/20(金) 08:25:54.77ID:VprmOZRL
韓国に学べ!
2017/10/20(金) 08:30:05.48ID:E/kZ39qH
>>677
3Dゲームはよくやる
2017/10/20(金) 08:43:33.27ID:cXXy/ND2
>>677
結構やってるでしょ
エヴァンス本から何年経ったやら…
683デフォルトの名無しさん
垢版 |
2017/10/20(金) 08:54:44.62ID:2DRMxDJ6
>>679
>>682
完全に対立してるな。

個人的には比較的昔からある企業は前者で、若くて成功してる部類の企業は後者かな?と思うけど。

実際DDDやってるぜー、て現場はどういう特性なんだろ。
2017/10/20(金) 18:29:33.31ID:yLtxI7rs
要件定義や設計時にDDDの考え方を(一部)導入してるのと
実装含めて厳格にDDD導入してるのとで違うよね

前者は多いけど後者は少ない
>>679は実装者の視点
>>682は要件定義・設計者の視点
おそらく
2017/10/20(金) 20:39:31.31ID:QLYblo8q
たとえば>>26をDDDでやるとどんな感じになるの?
DCIでやったときとの違いも知りたい
2017/10/20(金) 22:19:22.96ID:tVzPx1a9
>>685
まず本人を召還して質問攻めにする
2017/10/21(土) 01:13:21.31ID:Uy6nGuGD
アンドロイドアプリ開発って稼げるんかな?
2017/10/21(土) 01:50:48.55ID:7iF7m8RQ
レッドオーシャン
2017/10/21(土) 11:03:31.78ID:hrRqQerQ
>>687
業務アプリを受託で開発するのが主戦場
iOSと同時開発必須

自分で直接販売するのはバクチだね
アプリ数多いといってもニッチはまだまだ足りてない
2017/10/22(日) 16:21:52.81ID:cbaZLKfH
>>592
別に複数あっていいと思うが
社員給与を振り込む
給与の分類か属性かで
2017/10/22(日) 19:45:01.88ID:+ZCERvep
>>592
給与は社員に与えられるものだから
「社員に対して」は要らなくね?
2017/10/22(日) 20:06:35.35ID:rLFHcAK9
役員やパート・アルバイト等、社員以外のケースがあるんじゃね?
2017/10/22(日) 22:16:25.60ID:ACc+t4fi
>>592
お金を移動させる
694デフォルトの名無しさん
垢版 |
2017/10/22(日) 22:16:28.27ID:guBNBPv4
>>592
目的語でひとくくりにするとわかりにくいけど
日本語では名詞が述語をどう修飾するかは格で区別されるから
格を考えればよいかと

1.「振り込む」が述語ならば振込先は口座なので「社員の口座に」としたほうが良いかと
振り込む(社員の口座に:与格, 給料を:対格)

2.「社員に」を使うなら述語は「支払う」かな
支払う(社員に:与格, 給料を:対格)

3. 対格しか使いたくないんですということならば「社員の」という属格で対格を修飾するしかないんじゃないかな
振り込む(社員の給料を:対格)
2017/10/22(日) 22:33:46.62ID:NNQ/H7Ih
文章だけで表現しなけりゃいいだろw
696デフォルトの名無しさん
垢版 |
2017/10/22(日) 22:52:37.75ID:6ZVx9hPm
すっごい不評な法令検索つくって賞もらっている大学教授
法令データベース「e-Gov法令検索」リニューアルにあたり、同法情報研究センターの協力教員である名古屋大学情報基盤センター(センター長:森健策)の外山勝彦(とやまかつひこ)
2017/10/24(火) 06:59:53.59ID:lnfs4xW4
DDDと言えば20項目の責務単位でドメインクラス作ったら一つのグラフ作るのに20個のクラスがデータベースに問い合わせちゃってパフォーマンスやばい

有識者のみなさんはどうやってるの?
2017/10/24(火) 07:10:47.55ID:vrotHuwu
DDDならドメイン層とインフラ層のレイヤーは分けろ

つまりドメインのクラスが個々に
直接SQL文でDB叩いたりしない
2017/10/24(火) 07:28:15.97ID:lnfs4xW4
>>698
例えばドメインクラス「作業時間」にhogeプロジェクトの作業時間を問い合わせた時、作業時間クラスがDBクラス使って作業時間を教えてくれるんじゃないの?

この辺解らないとパフォーマンスの問題でアクティブレコードに走っちゃいそうです
2017/10/24(火) 07:38:44.12ID:vrotHuwu
>>699
たとえばソシャゲみたいなWebアプリをイメージしてみよう
一個アイテムを見るたびにDBアクセスしてたら重いから
画面を遷移するときにまとめてローディングするよな?

だからそういう風にインフラ層で
ある程度まとめてデータ取ってきて
ドメイン層の内部ではDBに直接触らないようにする
2017/10/24(火) 08:58:46.53ID:UVHXr0A6
>>700
それはレイヤ分けるメリットでなくて
レイヤ分けるデメリットをカバーする方法じゃないの
2017/10/24(火) 12:12:03.52ID:lnfs4xW4
>>700
あらかじめオブジェクトにぶち込むのかな
油断するとメモリ食いそう
2017/10/24(火) 12:12:39.91ID:1mA0bXuL
>>697
集約の単位が間違ってんじゃないの
2017/10/24(火) 12:15:40.46ID:lnfs4xW4
>>703
昔は画面単位にデータ取ってたけどトランザクションスクリプトアンチパターンになるから作業時間とか予算とかドメインでクラス分けたんだ

それぞれのクラスがデータベースに問い合わせるからウッホという状態に
2017/10/24(火) 17:47:57.40ID:cjHIRFnx
>>697
基本は集約一つにリポジトリ一つ
レポーティング用途の場合はドメインモデルやリポジトリを経由せずに
DBレイヤーに直接問い合わせるのも有り

ドメインモデルを経由しなければ
ドメインロジックが分散する可能性があるのでトレードオフを判断したり
それを避ける工夫が必要だったりする

Patterns, Principles, and Practices of Domain-Driven Designって本で
一つの章使ってレポーティングの実装パターンを紹介してるので読むといいと思う
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況