前スレ
オブジェクト指向システムの設計 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
探検
オブジェクト指向システムの設計 174 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2017/09/26(火) 07:20:38.98ID:qu+DPehL
615デフォルトの名無しさん
2017/10/15(日) 21:44:44.64ID:zIm4LF54 想像力が足りないから不具合が無いように見えるんだろうね
想像力足りなくてもこういうの経験ないのかな?
経験不足もあるのかな?
考えが幼いよ
想像力足りなくてもこういうの経験ないのかな?
経験不足もあるのかな?
考えが幼いよ
616デフォルトの名無しさん
2017/10/15(日) 21:45:37.94ID:zIm4LF54 >>614
じゃあ、普通に全部テストするってレスしてるよね?w
じゃあ、普通に全部テストするってレスしてるよね?w
617デフォルトの名無しさん
2017/10/15(日) 21:48:35.14ID:/8UsyUgn >>616
お前関数って知らないのか?
共通化の基本テクニックだぞ?
全てのメールアドレスや郵便番号の項目で
同じ関数を使うんだよ。
テストをするのはその関数のみ。
バリデーションとしてその関数を使っているかどうかを
設定ファイルに書く。
何度も同じ話をさせるな
お前関数って知らないのか?
共通化の基本テクニックだぞ?
全てのメールアドレスや郵便番号の項目で
同じ関数を使うんだよ。
テストをするのはその関数のみ。
バリデーションとしてその関数を使っているかどうかを
設定ファイルに書く。
何度も同じ話をさせるな
618デフォルトの名無しさん
2017/10/15(日) 21:53:28.83ID:zIm4LF54619デフォルトの名無しさん
2017/10/15(日) 22:00:17.33ID:/8UsyUgn >>618
見えない情報がある時点で、動かした所で
どんな場合でも動くとは証明できないってのは理解できてる?
ソースコードを読めば動かさなくてもわかる問題でも
ソースコードを隠した状態だと動かした結果だけでは証明できなくなる。
見えない情報がある時点で、動かした所で
どんな場合でも動くとは証明できないってのは理解できてる?
ソースコードを読めば動かさなくてもわかる問題でも
ソースコードを隠した状態だと動かした結果だけでは証明できなくなる。
620デフォルトの名無しさん
2017/10/15(日) 22:03:56.10ID:zIm4LF54 >>619
俺の質問に答える気はあるのかな?
もちろん答えは千差万別だが
お前のソフトが動くことの証明をして欲しいんだよ
一度でもソフトを納品したことがあるならわかるよね?
上司におんぶで抱っこでそんなこと気にしたことなかった?
俺の質問に答える気はあるのかな?
もちろん答えは千差万別だが
お前のソフトが動くことの証明をして欲しいんだよ
一度でもソフトを納品したことがあるならわかるよね?
上司におんぶで抱っこでそんなこと気にしたことなかった?
621デフォルトの名無しさん
2017/10/15(日) 22:08:32.52ID:/8UsyUgn622デフォルトの名無しさん
2017/10/15(日) 22:09:42.31ID:/8UsyUgn ソフトウェアの納品は、動くことの証明じゃない。
これだけやりました。やったという証拠です。信じてください。
バグはないと思います(実際には有るだろ?)
という意味でしかない。
気にしたことなかった?
これだけやりました。やったという証拠です。信じてください。
バグはないと思います(実際には有るだろ?)
という意味でしかない。
気にしたことなかった?
623デフォルトの名無しさん
2017/10/15(日) 22:10:40.16ID:/8UsyUgn いや、ソフトウェア納品でバグが1つもないと
証明するものを出したというのであれば、
それを言ってくれて良いんだが?
バグが有ることは証明できるが
バグがない(正しく動く)ことは証明できない
常識なんだがねぇ。
証明するものを出したというのであれば、
それを言ってくれて良いんだが?
バグが有ることは証明できるが
バグがない(正しく動く)ことは証明できない
常識なんだがねぇ。
624デフォルトの名無しさん
2017/10/15(日) 22:16:36.59ID:zIm4LF54625デフォルトの名無しさん
2017/10/15(日) 22:20:08.75ID:/8UsyUgn626デフォルトの名無しさん
2017/10/15(日) 22:26:02.41ID:zIm4LF54 >>625
いいや
ソフトウェアって上から下まで
さっきお前が言ったとおり
確実なものなんか何一つないよ
お前の十分だってお前の中の十分だろ?
俺等とは違うの
その差分を俺らとは違うお前は自分で埋めなければならない
そこに理屈はない
それが説得ってもんじゃん
人を見るのが嫌ならこの業界は向いてないね
いいや
ソフトウェアって上から下まで
さっきお前が言ったとおり
確実なものなんか何一つないよ
お前の十分だってお前の中の十分だろ?
俺等とは違うの
その差分を俺らとは違うお前は自分で埋めなければならない
そこに理屈はない
それが説得ってもんじゃん
人を見るのが嫌ならこの業界は向いてないね
627デフォルトの名無しさん
2017/10/15(日) 22:31:22.39ID:/8UsyUgn 結局屁理屈でごまかしたかw
無能なお前らと違うと言っても
だから何としか言えんわw
無能なお前らと違うと言っても
だから何としか言えんわw
628デフォルトの名無しさん
2017/10/15(日) 22:41:19.56ID:zIm4LF54 >>627
結局、テスト仕様書もテスト結果も
全ては説得なんだよ
理論に飛躍があり過ぎる
ウォーターフォールのV字開発で
設定ファイルに外だししたから
テスト項目減りますなんざ
あり得ない理論なんだよ
まあ、当然説得なんで可愛い女の子が交渉してくれば通る可能性も無きにしもあらずではあるけどね
結局、テスト仕様書もテスト結果も
全ては説得なんだよ
理論に飛躍があり過ぎる
ウォーターフォールのV字開発で
設定ファイルに外だししたから
テスト項目減りますなんざ
あり得ない理論なんだよ
まあ、当然説得なんで可愛い女の子が交渉してくれば通る可能性も無きにしもあらずではあるけどね
629デフォルトの名無しさん
2017/10/15(日) 23:06:53.56ID:nlQ3NzZf630あ
2017/10/16(月) 00:16:25.05ID:Qeq9VPfc 2008年くらいに.net FWの地雷踏みまくった事を鑑みると、
テスト仕様は要件定義から作成すべきだし、その実施も単体、結合レベルは機械的に掛けてもいいけど、総合は手でやるべきだろうなぁ。
「テスト対象はまともに動いていない」という仮説を、ケース毎に一つずつ潰していって、残るのが「正常に動いてる」って結果なのが試験で
「正常に動いてる」が先に立って「なぜならこう書いたから、こう動くはずで、現にそう動いてる」ってのは試験じゃなくて単なる確認では?
正直、単体テストでもテスト対象を作った言語を使わないでテストして欲しいところ。
テスト仕様は要件定義から作成すべきだし、その実施も単体、結合レベルは機械的に掛けてもいいけど、総合は手でやるべきだろうなぁ。
「テスト対象はまともに動いていない」という仮説を、ケース毎に一つずつ潰していって、残るのが「正常に動いてる」って結果なのが試験で
「正常に動いてる」が先に立って「なぜならこう書いたから、こう動くはずで、現にそう動いてる」ってのは試験じゃなくて単なる確認では?
正直、単体テストでもテスト対象を作った言語を使わないでテストして欲しいところ。
631デフォルトの名無しさん
2017/10/16(月) 04:11:08.89ID:LbOcJE9h 結局ID:/8UsyUgnは>>609にレスできずに逃げたのかよ w
632デフォルトの名無しさん
2017/10/16(月) 23:24:09.06ID:t2YDIrX7 >>631
場合によるので「どちらも」が正解
場合によるので「どちらも」が正解
633デフォルトの名無しさん
2017/10/17(火) 05:56:41.14ID:kMB04QqG634デフォルトの名無しさん
2017/10/17(火) 19:34:45.23ID:lUBT12Jg >コードは正しくても実行するとうまく動かないとか経験したこと俺はマニュアルどおりやったからこのコードは動かないけど正しいんだ!
635デフォルトの名無しさん
2017/10/17(火) 20:15:05.57ID:EyAJ3Syg 「Object Oriented」は「オブジェクト指向」と訳されていますが、実はこれが大変な誤訳で、正しくは「目的志向」です。
つまり、何らかの目的があって、それを目指す(「指向」は向いているだけ)というわけです。
つまり、何らかの目的があって、それを目指す(「指向」は向いているだけ)というわけです。
636デフォルトの名無しさん
2017/10/17(火) 20:25:59.57ID:jqryz7F2 目的はObjective
Objectは単純に『物』の意味だよ。
Objectは単純に『物』の意味だよ。
637デフォルトの名無しさん
2017/10/17(火) 20:28:58.13ID:EyAJ3Syg >>636
典拠をご提示いただきたい
典拠をご提示いただきたい
638デフォルトの名無しさん
2017/10/17(火) 20:53:30.82ID:G9wCIPXR >>637
まず自分が提示しろ
まず自分が提示しろ
639デフォルトの名無しさん
2017/10/17(火) 21:02:26.86ID:y2IFefmv 依存しあってんじゃねーよ
640デフォルトの名無しさん
2017/10/17(火) 21:19:29.37ID:EyAJ3Syg641デフォルトの名無しさん
2017/10/17(火) 21:56:16.29ID:G9wCIPXR >>640
お、おう。。それもJittaさんか…
面白い捉え方だと思うけど
Object Orientedという言葉が出てきた歴史を調べれば
「目的指向」が誤訳なのが分かるよ
https://en.wikipedia.org/wiki/Object-oriented_programming#History
お、おう。。それもJittaさんか…
面白い捉え方だと思うけど
Object Orientedという言葉が出てきた歴史を調べれば
「目的指向」が誤訳なのが分かるよ
https://en.wikipedia.org/wiki/Object-oriented_programming#History
642デフォルトの名無しさん
2017/10/17(火) 22:34:25.19ID:EyAJ3Syg643あ
2017/10/17(火) 22:41:00.56ID:GZgPL7cm まあ英語でObject orientedだと、大体は対象志向みたいな意味合いだけどな。
Objectって単語は、モノと言うよりも「認識できる何か」「動作や感情の対象」を指す。
動詞になると顕著で、「俺はこれに文句があるんだが」ぐらいキツい意味。
「I object to waiting」みたいな。
Ob + ject 。前に向かって投げたやつ。客観的に見ることができる物、が語源。
逆に、中に投げ入れるモノがinject。下に投げたものがsubject(自我、主観)。
Objectって単語は、モノと言うよりも「認識できる何か」「動作や感情の対象」を指す。
動詞になると顕著で、「俺はこれに文句があるんだが」ぐらいキツい意味。
「I object to waiting」みたいな。
Ob + ject 。前に向かって投げたやつ。客観的に見ることができる物、が語源。
逆に、中に投げ入れるモノがinject。下に投げたものがsubject(自我、主観)。
644あ
2017/10/17(火) 22:46:44.09ID:GZgPL7cm645デフォルトの名無しさん
2017/10/17(火) 22:54:02.93ID:0cEpFleP646デフォルトの名無しさん
2017/10/17(火) 22:55:17.94ID:0cEpFleP 食べモノ、飲みモノ
も追加しよう
も追加しよう
647デフォルトの名無しさん
2017/10/17(火) 22:55:26.36ID:xucK+Hbm thingは?
648デフォルトの名無しさん
2017/10/17(火) 22:55:57.78ID:EyAJ3Syg >>643
つまりJittaさんが大正解ってこと?
つまりJittaさんが大正解ってこと?
649デフォルトの名無しさん
2017/10/17(火) 22:59:32.89ID:xucK+Hbm 目的を指向するってメチャクチャ当たり前だなw 殊更言葉にするのが恥ずかしいくらい
650デフォルトの名無しさん
2017/10/17(火) 23:08:10.96ID:O+BDW8Aj 責務指向でいいじゃん?
651デフォルトの名無しさん
2017/10/17(火) 23:20:41.75ID:A1W0Ufl3 役割って感じ?
objectではないけどしっくり来る
objectではないけどしっくり来る
652デフォルトの名無しさん
2017/10/17(火) 23:31:17.25ID:EyAJ3Syg 責務駆動設計とか言うよね
653デフォルトの名無しさん
2017/10/17(火) 23:35:58.51ID:0cEpFleP せやかて駆動設計
654デフォルトの名無しさん
2017/10/17(火) 23:36:27.01ID:O+BDW8Aj 責務はいつも一つ!
655デフォルトの名無しさん
2017/10/17(火) 23:38:24.92ID:EyAJ3Syg >>654
いいね!
いいね!
656デフォルトの名無しさん
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
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は「オブジェクトを本位にした言語」と解釈するのが妥当な気がする。
「本位」は中心にして基本にするという意味なので「基本」を強めてる感じ。
・カプセル化、継承、多態性をサポートするもの
・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
やっぱそうだよね、オブジェクトを中心にするっていうのがオブジェクト指向だよね
やっぱそうだよね、オブジェクトを中心にするっていうのがオブジェクト指向だよね
659デフォルトの名無しさん
2017/10/18(水) 00:03:46.63ID:YCPgdWPh661デフォルトの名無しさん
2017/10/18(水) 00:36:43.88ID:GswCLlj6 ピッタリの訳語がないから
新しく作るか (例 経済)
既存の言葉に新しい意味を持たせるか (例 自由)
ちなみに中国語訳では「対象」らしい
新しく作るか (例 経済)
既存の言葉に新しい意味を持たせるか (例 自由)
ちなみに中国語訳では「対象」らしい
662あ
2017/10/18(水) 00:58:52.74ID:a2+TOoEN663デフォルトの名無しさん
2017/10/18(水) 07:54:38.23ID:/RGzz2zm 抽象的な部分は合ってるな
664デフォルトの名無しさん
2017/10/18(水) 07:56:46.88ID:/RGzz2zm orientedも指向より主導の方がいいと何かの本で書いてたな
665デフォルトの名無しさん
2017/10/18(水) 08:07:11.64ID:/RGzz2zm 主体とか本位とかでもいいかもね
役割主体、役割本位
役割主体、役割本位
666デフォルトの名無しさん
2017/10/18(水) 08:13:24.82ID:lHCL+31V667デフォルトの名無しさん
2017/10/18(水) 14:09:11.49ID:hmGkDgR5 人間の方の理解のために「”もの“になにかやらせる」
「”もの“を複製して別な”もの“のパーツとして使う」
これわかりやすいっしょ?
どんどん再利用パーツ増えて複雑になってったらこうじゃないとキツイっしょ。
で提唱されたってのに、すぐにベテランプログラマーさんは
「この名前さあ、タイプすんのめんどくさいから「あ」「い」「う」でよくね?」と他人にわからない暗号にしたがったり
「オブジェクト指向ってさぁ、オブジェクト単位に分けるんっしょ?この再利用しない中身もさぁ
ぜんぶ用途別に名前つけてパーツに分類整理しなきゃ!」とかやりなさる…
「”もの“を複製して別な”もの“のパーツとして使う」
これわかりやすいっしょ?
どんどん再利用パーツ増えて複雑になってったらこうじゃないとキツイっしょ。
で提唱されたってのに、すぐにベテランプログラマーさんは
「この名前さあ、タイプすんのめんどくさいから「あ」「い」「う」でよくね?」と他人にわからない暗号にしたがったり
「オブジェクト指向ってさぁ、オブジェクト単位に分けるんっしょ?この再利用しない中身もさぁ
ぜんぶ用途別に名前つけてパーツに分類整理しなきゃ!」とかやりなさる…
668あ
2017/10/18(水) 19:20:47.11ID:a2+TOoEN そうなると、クラスって何だ、インスタンスって何だ、コピーなら、コピー元も何かの役割を果たしてたんだろ?みたいな明後日の事言われるからな。
プレスの金型と、それで作り出した製品くらいの言い方の方が伝わる。
たまに金型に便利な治具ついてることもあるし、付けることもできて、それはプレスせずに金型から直接使えますが、
その治具にメモとかつけると皆から見えたり、誰かに剥がされたりするので、必要がなければ製品に付けたほうがいいですよ、
何回プレスしたかのカウンタとかは治具につけたら良いですね。みたいに説明した事ある。
スーパークラスとかサブクラスも、同じように、互換品の金型と互換品とかそういう説明できるから、物理な型で説明すると割とわかってくれる。
プレスの金型と、それで作り出した製品くらいの言い方の方が伝わる。
たまに金型に便利な治具ついてることもあるし、付けることもできて、それはプレスせずに金型から直接使えますが、
その治具にメモとかつけると皆から見えたり、誰かに剥がされたりするので、必要がなければ製品に付けたほうがいいですよ、
何回プレスしたかのカウンタとかは治具につけたら良いですね。みたいに説明した事ある。
スーパークラスとかサブクラスも、同じように、互換品の金型と互換品とかそういう説明できるから、物理な型で説明すると割とわかってくれる。
669デフォルトの名無しさん
2017/10/18(水) 22:26:09.70ID:FgeE42WT 適切な訳語、的確なメタファって大事やね
670あ
2017/10/18(水) 23:14:36.30ID:a2+TOoEN プロトタイプベースな言語だと、コピーのメタファの方が的確になったり、まぁ難しいわ、もう自分が知ってる物を、1から人に教える順番を考えるのは。
671デフォルトの名無しさん
2017/10/19(木) 00:15:22.98ID:ycrHDnwP 自分がちゃんと理解してないものは人に説明できないって言うしね
672デフォルトの名無しさん
2017/10/19(木) 07:18:30.10ID:mnQ3FyhH ガウディ本読んでから議論して欲しいね。
673あ
2017/10/19(木) 08:25:03.58ID:Qitn7VqG >>671
わかるわ。耳が痛い。教育することになって逆に知る事も多かったしな。
若手の新アイディアは、素直に教えてもらってる。
たまに俺が相槌しか話してないうちに「出直します」って言うから、どうやらテディベアとしても活用されてる模様。
わかるわ。耳が痛い。教育することになって逆に知る事も多かったしな。
若手の新アイディアは、素直に教えてもらってる。
たまに俺が相槌しか話してないうちに「出直します」って言うから、どうやらテディベアとしても活用されてる模様。
674デフォルトの名無しさん
2017/10/19(木) 08:44:29.39ID:CxX652pT >>673
気持ち悪い
気持ち悪い
675デフォルトの名無しさん
2017/10/19(木) 08:45:50.14ID:CxX652pT 自分の行動を素直にと修飾するところが完全に淫乱テディベア
676デフォルトの名無しさん
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 ディスプレーディスパッチドライバ。
679デフォルトの名無しさん
2017/10/20(金) 07:46:42.44ID:l3SzA2hH680デフォルトの名無しさん
2017/10/20(金) 08:25:54.77ID:VprmOZRL 韓国に学べ!
681デフォルトの名無しさん
2017/10/20(金) 08:30:05.48ID:E/kZ39qH >>677
3Dゲームはよくやる
3Dゲームはよくやる
682デフォルトの名無しさん
2017/10/20(金) 08:43:33.27ID:cXXy/ND2683デフォルトの名無しさん
2017/10/20(金) 08:54:44.62ID:2DRMxDJ6684デフォルトの名無しさん
2017/10/20(金) 18:29:33.31ID:yLtxI7rs685デフォルトの名無しさん
2017/10/20(金) 20:39:31.31ID:QLYblo8q たとえば>>26をDDDでやるとどんな感じになるの?
DCIでやったときとの違いも知りたい
DCIでやったときとの違いも知りたい
686デフォルトの名無しさん
2017/10/20(金) 22:19:22.96ID:tVzPx1a9 >>685
まず本人を召還して質問攻めにする
まず本人を召還して質問攻めにする
687デフォルトの名無しさん
2017/10/21(土) 01:13:21.31ID:Uy6nGuGD アンドロイドアプリ開発って稼げるんかな?
688デフォルトの名無しさん
2017/10/21(土) 01:50:48.55ID:7iF7m8RQ レッドオーシャン
689デフォルトの名無しさん
2017/10/21(土) 11:03:31.78ID:hrRqQerQ2017/10/22(日) 16:21:52.81ID:cbaZLKfH
2017/10/22(日) 19:45:01.88ID:+ZCERvep
692デフォルトの名無しさん
2017/10/22(日) 20:06:35.35ID:rLFHcAK9 役員やパート・アルバイト等、社員以外のケースがあるんじゃね?
693デフォルトの名無しさん
2017/10/22(日) 22:16:25.60ID:ACc+t4fi >>592
お金を移動させる
お金を移動させる
694デフォルトの名無しさん
2017/10/22(日) 22:16:28.27ID:guBNBPv4 >>592
目的語でひとくくりにするとわかりにくいけど
日本語では名詞が述語をどう修飾するかは格で区別されるから
格を考えればよいかと
1.「振り込む」が述語ならば振込先は口座なので「社員の口座に」としたほうが良いかと
振り込む(社員の口座に:与格, 給料を:対格)
2.「社員に」を使うなら述語は「支払う」かな
支払う(社員に:与格, 給料を:対格)
3. 対格しか使いたくないんですということならば「社員の」という属格で対格を修飾するしかないんじゃないかな
振り込む(社員の給料を:対格)
目的語でひとくくりにするとわかりにくいけど
日本語では名詞が述語をどう修飾するかは格で区別されるから
格を考えればよいかと
1.「振り込む」が述語ならば振込先は口座なので「社員の口座に」としたほうが良いかと
振り込む(社員の口座に:与格, 給料を:対格)
2.「社員に」を使うなら述語は「支払う」かな
支払う(社員に:与格, 給料を:対格)
3. 対格しか使いたくないんですということならば「社員の」という属格で対格を修飾するしかないんじゃないかな
振り込む(社員の給料を:対格)
695デフォルトの名無しさん
2017/10/22(日) 22:33:46.62ID:NNQ/H7Ih 文章だけで表現しなけりゃいいだろw
696デフォルトの名無しさん
2017/10/22(日) 22:52:37.75ID:6ZVx9hPm すっごい不評な法令検索つくって賞もらっている大学教授
法令データベース「e-Gov法令検索」リニューアルにあたり、同法情報研究センターの協力教員である名古屋大学情報基盤センター(センター長:森健策)の外山勝彦(とやまかつひこ)
法令データベース「e-Gov法令検索」リニューアルにあたり、同法情報研究センターの協力教員である名古屋大学情報基盤センター(センター長:森健策)の外山勝彦(とやまかつひこ)
697デフォルトの名無しさん
2017/10/24(火) 06:59:53.59ID:lnfs4xW4 DDDと言えば20項目の責務単位でドメインクラス作ったら一つのグラフ作るのに20個のクラスがデータベースに問い合わせちゃってパフォーマンスやばい
有識者のみなさんはどうやってるの?
有識者のみなさんはどうやってるの?
698デフォルトの名無しさん
2017/10/24(火) 07:10:47.55ID:vrotHuwu DDDならドメイン層とインフラ層のレイヤーは分けろ
つまりドメインのクラスが個々に
直接SQL文でDB叩いたりしない
つまりドメインのクラスが個々に
直接SQL文でDB叩いたりしない
699デフォルトの名無しさん
2017/10/24(火) 07:28:15.97ID:lnfs4xW4 >>698
例えばドメインクラス「作業時間」にhogeプロジェクトの作業時間を問い合わせた時、作業時間クラスがDBクラス使って作業時間を教えてくれるんじゃないの?
この辺解らないとパフォーマンスの問題でアクティブレコードに走っちゃいそうです
例えばドメインクラス「作業時間」にhogeプロジェクトの作業時間を問い合わせた時、作業時間クラスがDBクラス使って作業時間を教えてくれるんじゃないの?
この辺解らないとパフォーマンスの問題でアクティブレコードに走っちゃいそうです
700デフォルトの名無しさん
2017/10/24(火) 07:38:44.12ID:vrotHuwu >>699
たとえばソシャゲみたいなWebアプリをイメージしてみよう
一個アイテムを見るたびにDBアクセスしてたら重いから
画面を遷移するときにまとめてローディングするよな?
だからそういう風にインフラ層で
ある程度まとめてデータ取ってきて
ドメイン層の内部ではDBに直接触らないようにする
たとえばソシャゲみたいなWebアプリをイメージしてみよう
一個アイテムを見るたびにDBアクセスしてたら重いから
画面を遷移するときにまとめてローディングするよな?
だからそういう風にインフラ層で
ある程度まとめてデータ取ってきて
ドメイン層の内部ではDBに直接触らないようにする
701デフォルトの名無しさん
2017/10/24(火) 08:58:46.53ID:UVHXr0A6702デフォルトの名無しさん
2017/10/24(火) 12:12:03.52ID:lnfs4xW4703デフォルトの名無しさん
2017/10/24(火) 12:12:39.91ID:1mA0bXuL >>697
集約の単位が間違ってんじゃないの
集約の単位が間違ってんじゃないの
704デフォルトの名無しさん
2017/10/24(火) 12:15:40.46ID:lnfs4xW4 >>703
昔は画面単位にデータ取ってたけどトランザクションスクリプトアンチパターンになるから作業時間とか予算とかドメインでクラス分けたんだ
それぞれのクラスがデータベースに問い合わせるからウッホという状態に
昔は画面単位にデータ取ってたけどトランザクションスクリプトアンチパターンになるから作業時間とか予算とかドメインでクラス分けたんだ
それぞれのクラスがデータベースに問い合わせるからウッホという状態に
705デフォルトの名無しさん
2017/10/24(火) 17:47:57.40ID:cjHIRFnx >>697
基本は集約一つにリポジトリ一つ
レポーティング用途の場合はドメインモデルやリポジトリを経由せずに
DBレイヤーに直接問い合わせるのも有り
ドメインモデルを経由しなければ
ドメインロジックが分散する可能性があるのでトレードオフを判断したり
それを避ける工夫が必要だったりする
Patterns, Principles, and Practices of Domain-Driven Designって本で
一つの章使ってレポーティングの実装パターンを紹介してるので読むといいと思う
基本は集約一つにリポジトリ一つ
レポーティング用途の場合はドメインモデルやリポジトリを経由せずに
DBレイヤーに直接問い合わせるのも有り
ドメインモデルを経由しなければ
ドメインロジックが分散する可能性があるのでトレードオフを判断したり
それを避ける工夫が必要だったりする
Patterns, Principles, and Practices of Domain-Driven Designって本で
一つの章使ってレポーティングの実装パターンを紹介してるので読むといいと思う
706デフォルトの名無しさん
2017/10/24(火) 19:37:04.66ID:zYnBGUyD ドメイン駆動とORMって相性悪くない?
class Foo : ValueObject<Foo> { 〜 }
class Bar : ValueObject<Bar> { 〜 }
class Baz : ValueObject<Baz> { 〜 }
class Hoge : Entity<Hoge> {
private final Foo _foo;
private final Bar _bar;
public Hoge(Foo foo, Bar bar) {
Assert.notNull(foo);
Assert.notNull(bar);
_foo = foo;
_bar = bar;
}
public Baz queryBaz() {
// なんか計算する
return new Baz(...);
}
public Hoge doSomething() {
// なんか計算する
return new Hoge(..., _bar); // なんか計算した結果fooが変化する。_barはそのまま
}
}
ORMってこういうガチンコDDD的なオブジェクトってうまくマッピングしてくれないじゃん?
だからORM使おうとするとpublicプロパティに汚染されてゲロ吐きそうになる
かといってORMはDTOまでに留めてDTOとドメインオブジェクトのマッピングを手書きするってのはそれはそれでめんどくさい
class Foo : ValueObject<Foo> { 〜 }
class Bar : ValueObject<Bar> { 〜 }
class Baz : ValueObject<Baz> { 〜 }
class Hoge : Entity<Hoge> {
private final Foo _foo;
private final Bar _bar;
public Hoge(Foo foo, Bar bar) {
Assert.notNull(foo);
Assert.notNull(bar);
_foo = foo;
_bar = bar;
}
public Baz queryBaz() {
// なんか計算する
return new Baz(...);
}
public Hoge doSomething() {
// なんか計算する
return new Hoge(..., _bar); // なんか計算した結果fooが変化する。_barはそのまま
}
}
ORMってこういうガチンコDDD的なオブジェクトってうまくマッピングしてくれないじゃん?
だからORM使おうとするとpublicプロパティに汚染されてゲロ吐きそうになる
かといってORMはDTOまでに留めてDTOとドメインオブジェクトのマッピングを手書きするってのはそれはそれでめんどくさい
707デフォルトの名無しさん
2017/10/24(火) 19:50:43.93ID:bxrjOehA >>706
AutoMapper
AutoMapper
708デフォルトの名無しさん
2017/10/24(火) 20:00:23.46ID:zYnBGUyD >>707
AutoMapperってやつそんな賢いの?
AutoMapperってやつそんな賢いの?
709デフォルトの名無しさん
2017/10/24(火) 20:44:30.93ID:1mA0bXuL 逆にDDDこそORMだろ
集約をそのまま永続化したいんだから
集約をそのまま永続化したいんだから
710デフォルトの名無しさん
2017/10/24(火) 21:35:54.97ID:bxrjOehA >>708
使わないなんて考えられない
使わないなんて考えられない
711デフォルトの名無しさん
2017/10/24(火) 21:36:46.21ID:zYnBGUyD >>709
どうかな
さっきも書いたようにDDDに忠実にドメインモデルを構築するとpublicプロパティが無くなって完全コンストラクタでインスタンスを構築しなければならない
DTOのようにフラットな構造にならない点でもORMで扱いにくい
どうかな
さっきも書いたようにDDDに忠実にドメインモデルを構築するとpublicプロパティが無くなって完全コンストラクタでインスタンスを構築しなければならない
DTOのようにフラットな構造にならない点でもORMで扱いにくい
712デフォルトの名無しさん
2017/10/24(火) 21:46:26.94ID:zYnBGUyD そもそもDBが単にオブジェクトの置き場所になるってのも疑問だよ
RDBは個々のオブジェクトではなく集合としてのビジネスルールを表現するのに適している
単なるデータストアではない
1ヶ月の間に正当な休暇を間に挟まず3営業日連続で欠勤した従業員にはペナルティを与えるといった業務ルールがあったらSQLで解決するほうがスマート
RDBは個々のオブジェクトではなく集合としてのビジネスルールを表現するのに適している
単なるデータストアではない
1ヶ月の間に正当な休暇を間に挟まず3営業日連続で欠勤した従業員にはペナルティを与えるといった業務ルールがあったらSQLで解決するほうがスマート
713デフォルトの名無しさん
2017/10/24(火) 21:50:42.54ID:8vhM38kM どのORM使ってるの?
いまどきORMのために可視性を変えたりしないでしょ
いまどきORMのために可視性を変えたりしないでしょ
714デフォルトの名無しさん
2017/10/24(火) 21:58:23.29ID:8vhM38kM >>712
> そもそもDBが単にオブジェクトの置き場所になるってのも疑問だよ
DDDだろうとトランザクションスクリプトだろうとDBの役割は変わらないよ
ドメインモデルから見てあたかも単なるオブジェクトの置き場であるかのように振る舞うっていうのは、
そう振る舞うように作ってるからそうなるのであって、DBから見たら、アプリがDDDで作られてるかどうかなんてわからない
> そもそもDBが単にオブジェクトの置き場所になるってのも疑問だよ
DDDだろうとトランザクションスクリプトだろうとDBの役割は変わらないよ
ドメインモデルから見てあたかも単なるオブジェクトの置き場であるかのように振る舞うっていうのは、
そう振る舞うように作ってるからそうなるのであって、DBから見たら、アプリがDDDで作られてるかどうかなんてわからない
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否 [夜のけいちゃん★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★5 [ぐれ★]
- 映画「鬼滅の刃」の興行収入急減、日本行き航空券大量キャンセル…中国メディア報道 [蚤の市★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 「タワマン天国」に飛びつく若者…SNSに転がる「成功体験」に続けるのか 湾岸エリアの業者が語った現実 [蚤の市★]
- フランス「G7に習近平主席を呼びたい」ドイツ「良い考えだ」 高市さん...? [237216734]
- 麻生太郎氏、高市政権と距離を置きはじめる(´・ω・`) [399259198]
- 【悲報】中国営業に熱心な日本人タレントたち、中国のイベントが続々と中止に… まだ予定中のアイドルとか歌手とかたくさんいるけど [452836546]
- 自閉症が「んなっしょい」と連呼するお🏡
- 押井守の映画「天使のたまご」が4Kリマスターされて上映されるみたいなんだけどこれ面白いの? [268718286]
- 【悲報】高市効果で「1ドル=160円」が相場へwwwwwwwwwwwwwwwwwwwwwwwwwwwww 止まらぬ高市円安💥💥 [871926377]
