前スレ
オブジェクト指向システムの設計 171 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1465636703/
探検
オブジェクト指向システムの設計 172 [無断転載禁止]©2ch.net
レス数が900を超えています。1000を超えると表示できなくなるよ。
1uy ◆e6.oHu1j.o
2016/07/09(土) 00:35:13.95ID:Mn3UGZ+O827あ
2017/07/29(土) 13:52:27.31ID:sarQXHNa829デフォルトの名無しさん
2017/07/29(土) 14:18:53.75ID:Suk8TZUZ >>819
> 権限管理オブジェクトの中で何やってるかは隠蔽されてるものなので
同じように、注文オブジェクトの内部のビジネスルールは隠蔽すべきではないですか?
> あなたは全てを「権限管理オブジェクト」にごっちゃにしてはいけないと言ってる。
違います。
注文そのものに対するビジネスルールと、それ以外(たとえば権限によるルール)をごっちゃに
してはいけないと言っています。
> ただし「権限管理オブジェクト」やビジネスロジックやその他を扱うオブジェクトを
> 統括する別のオブジェクトを作って、そこでごっちゃにしろと言ってる。
注文オブジェクトには、一切のビジネスルールの実装をしないということですか?
それには同意できませんね。
>>822
> 本質的には同じ物なんだから。
いえ、違います。オブジェクトの責務の話です。
> 権限管理オブジェクトの中で何やってるかは隠蔽されてるものなので
同じように、注文オブジェクトの内部のビジネスルールは隠蔽すべきではないですか?
> あなたは全てを「権限管理オブジェクト」にごっちゃにしてはいけないと言ってる。
違います。
注文そのものに対するビジネスルールと、それ以外(たとえば権限によるルール)をごっちゃに
してはいけないと言っています。
> ただし「権限管理オブジェクト」やビジネスロジックやその他を扱うオブジェクトを
> 統括する別のオブジェクトを作って、そこでごっちゃにしろと言ってる。
注文オブジェクトには、一切のビジネスルールの実装をしないということですか?
それには同意できませんね。
>>822
> 本質的には同じ物なんだから。
いえ、違います。オブジェクトの責務の話です。
830デフォルトの名無しさん
2017/07/29(土) 14:38:07.32ID:JFgIXVoU 何が嫌いかよりコードで自分を語れよ!!!
831デフォルトの名無しさん
2017/07/29(土) 14:57:48.59ID:Suk8TZUZ テストの話を少ししましょうか。
void foo() {
if (!check1()) {
return;
}
if (!check2()) {
return;
}
if (!check3()) {
return;
}
do_something();
}
というコードがあったとき、チェックが3つあるから2*2*2=8通りのテストをするのかという話です。
{check1, check2, check3, do_something}
{true, true, true, 実行される}
{true, true, false, -}
{true, false, -, -}
{false, -, -, -}
の4通りで済みます。
つまり、N個のcheckがあるとき、テストケースはN+1個でいいんです。
10個のチェックがあるとき、2~10=1024通りではなく11通りです。
組み合わせ爆発は起きません。
void foo() {
if (!check1()) {
return;
}
if (!check2()) {
return;
}
if (!check3()) {
return;
}
do_something();
}
というコードがあったとき、チェックが3つあるから2*2*2=8通りのテストをするのかという話です。
{check1, check2, check3, do_something}
{true, true, true, 実行される}
{true, true, false, -}
{true, false, -, -}
{false, -, -, -}
の4通りで済みます。
つまり、N個のcheckがあるとき、テストケースはN+1個でいいんです。
10個のチェックがあるとき、2~10=1024通りではなく11通りです。
組み合わせ爆発は起きません。
832デフォルトの名無しさん
2017/07/29(土) 15:05:20.10ID:JFgIXVoU 人間が仕事をするのだから
プログラムもそのモデルを模倣すればよい
Ningenクラスを作ろう
Ningenクラスを継承して
EigyoやKeiriクラスを作ればよい
ドヤ?
プログラムもそのモデルを模倣すればよい
Ningenクラスを作ろう
Ningenクラスを継承して
EigyoやKeiriクラスを作ればよい
ドヤ?
833デフォルトの名無しさん
2017/07/29(土) 16:38:06.09ID:8lDGGI0L >>831
組合せ爆発はどうあっても起こります。
重要なのは、テストするコストと価値を比べて
コストをかけてまでテストする価値はないという
コードにしてしまうことです。
テストしなくていい(する価値がない)コードが増えれば
テスト数の組合せ爆発を減らすことができます。
テストをしないためにはどうするかという話です。
組合せ爆発はどうあっても起こります。
重要なのは、テストするコストと価値を比べて
コストをかけてまでテストする価値はないという
コードにしてしまうことです。
テストしなくていい(する価値がない)コードが増えれば
テスト数の組合せ爆発を減らすことができます。
テストをしないためにはどうするかという話です。
834デフォルトの名無しさん
2017/07/29(土) 16:40:53.77ID:8lDGGI0L >>831
> の4通りで済みます。
それはホワイトボックステストであることが前提となっています。
なぜなら、チェックしている順番が1,2,3の順であることを
知っているからです。
チェックしている順番が1,2,3であるならば、
4通りで済みますが、ブラックボックステストであれば
どの順番でチェックしているかわからないので、
そのテストの個数では足りません。
> の4通りで済みます。
それはホワイトボックステストであることが前提となっています。
なぜなら、チェックしている順番が1,2,3の順であることを
知っているからです。
チェックしている順番が1,2,3であるならば、
4通りで済みますが、ブラックボックステストであれば
どの順番でチェックしているかわからないので、
そのテストの個数では足りません。
835デフォルトの名無しさん
2017/07/29(土) 16:53:18.88ID:Suk8TZUZ836デフォルトの名無しさん
2017/07/29(土) 17:04:43.91ID:8lDGGI0L837デフォルトの名無しさん
2017/07/29(土) 17:12:08.75ID:Suk8TZUZ >>836
要件が直交しているかどうかだよ。
・自分の注文しかキャンセルできない
・発送済みならキャンセルできない
これは直交した条件。
だから、ホワイトボックス・ブラックボックス関係なく、チェックの順番も関係なしに
・自分の発送されていない注文をキャンセルする
・自分の発送済みの注文をキャンセルする
・他人の注文をキャンセルする
というテストをすればいい。「他人の発想済みの注文をキャンセルする」テストは不要。
これが組み合わせ爆発が起こらない理由。
要件が直交しているかどうかだよ。
・自分の注文しかキャンセルできない
・発送済みならキャンセルできない
これは直交した条件。
だから、ホワイトボックス・ブラックボックス関係なく、チェックの順番も関係なしに
・自分の発送されていない注文をキャンセルする
・自分の発送済みの注文をキャンセルする
・他人の注文をキャンセルする
というテストをすればいい。「他人の発想済みの注文をキャンセルする」テストは不要。
これが組み合わせ爆発が起こらない理由。
838デフォルトの名無しさん
2017/07/29(土) 17:20:39.67ID:+ebLLQ0c あほコーダーが別々で実装している場合もあるかもしれないよ
839デフォルトの名無しさん
2017/07/29(土) 17:23:04.30ID:Suk8TZUZ840デフォルトの名無しさん
2017/07/29(土) 19:01:54.59ID:8lDGGI0L >>837
> というテストをすればいい。「他人の発想済みの注文をキャンセルする」テストは不要。
残念ながらそうとは限らないんだよね・・・
if (自分の注文か?) {
if (発送済みか?) {
return キャンセル可能
} else {
return キャンセル不可能
}
} else {
if (発送済みか?) {
return キャンセル不可能
} else {
return キャンセル可能 // バグ 本来はキャンセル不可能
}
}
これは「他人の発送済みの注文をキャンセルする」場合にバグが有るコード
> というテストをすればいい。「他人の発想済みの注文をキャンセルする」テストは不要。
残念ながらそうとは限らないんだよね・・・
if (自分の注文か?) {
if (発送済みか?) {
return キャンセル可能
} else {
return キャンセル不可能
}
} else {
if (発送済みか?) {
return キャンセル不可能
} else {
return キャンセル可能 // バグ 本来はキャンセル不可能
}
}
これは「他人の発送済みの注文をキャンセルする」場合にバグが有るコード
841デフォルトの名無しさん
2017/07/29(土) 19:20:58.86ID:mj0H/MXI842デフォルトの名無しさん
2017/07/29(土) 19:25:34.13ID:8lDGGI0L 単体テストとか言うよりも
「バグがないという前提において不要だと判断されたパターンはテストしなくて良い」
という考えは正しいかどうかって話だよな
「バグがないという前提において不要だと判断されたパターンはテストしなくて良い」
という考えは正しいかどうかって話だよな
843デフォルトの名無しさん
2017/07/29(土) 19:35:29.98ID:mj0H/MXI テストに前提を於いたらいけないのは、その通りだよね。
ただ、システムレベルだと、禁則にあたる項目が多いのも事実で、そもそもテスト出来なかったりするじゃん?
その事を指して、テスト数爆発は無い、って言ってるのなら、まあわからなくもないかなと。
ただ、システムレベルだと、禁則にあたる項目が多いのも事実で、そもそもテスト出来なかったりするじゃん?
その事を指して、テスト数爆発は無い、って言ってるのなら、まあわからなくもないかなと。
844デフォルトの名無しさん
2017/07/29(土) 19:44:14.29ID:8lDGGI0L テスト数は爆発するんだよ。どうあっても。残念ながらね。
それは認識しないといけない。
爆発してしまうテストを現実時間でどう扱うかというと
テストしないという選択肢を選ぶしか無ない
重要なのはそのテストしないという理由で
「バグがないという前提において不要だと判断されたパターンだから」は
バグを見つけるのが目的のテストとしては、テストしない理由としては適切ではない。
俺の理由は「テストする価値がないぐらい単純なものだから」
テストしなくてもバグがないのは明らかなものを作る
だからそういうものはテストしない
それは認識しないといけない。
爆発してしまうテストを現実時間でどう扱うかというと
テストしないという選択肢を選ぶしか無ない
重要なのはそのテストしないという理由で
「バグがないという前提において不要だと判断されたパターンだから」は
バグを見つけるのが目的のテストとしては、テストしない理由としては適切ではない。
俺の理由は「テストする価値がないぐらい単純なものだから」
テストしなくてもバグがないのは明らかなものを作る
だからそういうものはテストしない
845あ
2017/07/29(土) 19:47:19.90ID:sarQXHNa >>831
途中returnして何が積なんだよ。
そうじゃなくて、この権限ならばできる、をあとから足せる構造にせなばって言ってる。
ちなみに、普通はそれは2*2*2のテストをする。
何故ならば、どちらも、影響しないという担保を行うために。
たまにあるからね。ポインタや参照先が同じとこ向いてる不具合とか。
要はテストケースはその四通りでは足りない。
お前実務経験無いんじゃねえの?
こういう思考で間違ったオブジェクト指向を流行らせようとしてる奴こそが、本来のオブジェクト指向をディスってるような気がするわ。
途中returnして何が積なんだよ。
そうじゃなくて、この権限ならばできる、をあとから足せる構造にせなばって言ってる。
ちなみに、普通はそれは2*2*2のテストをする。
何故ならば、どちらも、影響しないという担保を行うために。
たまにあるからね。ポインタや参照先が同じとこ向いてる不具合とか。
要はテストケースはその四通りでは足りない。
お前実務経験無いんじゃねえの?
こういう思考で間違ったオブジェクト指向を流行らせようとしてる奴こそが、本来のオブジェクト指向をディスってるような気がするわ。
846デフォルトの名無しさん
2017/07/29(土) 19:50:59.46ID:mj0H/MXI テスト項目だけで考えたら、テスト爆発するのは間違いないよね。
横から入った自分にも、その点に異論反論は無いよ。
その上で、禁則を増やしてテスト爆発を小さく抑えるってのは有効だと思うけど、その点にも同意できないの?
横から入った自分にも、その点に異論反論は無いよ。
その上で、禁則を増やしてテスト爆発を小さく抑えるってのは有効だと思うけど、その点にも同意できないの?
847デフォルトの名無しさん
2017/07/29(土) 19:52:02.17ID:8lDGGI0L 禁則を増やしてってなんだよw
その禁則をコードにする時にバグがでるんだろうが
その禁則をコードにする時にバグがでるんだろうが
848デフォルトの名無しさん
2017/07/29(土) 19:53:07.60ID:mj0H/MXI 違う違う。
禁則ってのは、テスト不可能な条件のこと。
禁則ってのは、テスト不可能な条件のこと。
849デフォルトの名無しさん
2017/07/29(土) 19:56:58.62ID:8lDGGI0L 具体的にその条件とは?
もちろんテスト不可能な条件とやらがバグってる
可能性も忘れずに答えてくれ
もちろんテスト不可能な条件とやらがバグってる
可能性も忘れずに答えてくれ
850あ
2017/07/29(土) 20:09:17.42ID:sarQXHNa >>842
明らかに正しくないと思うよ。
思い込んで、そう動く事を意図して作ったものを、そう動くだろう、とテストする事は滅茶苦茶簡単だけど、
そう動く事を確認するなんて、そう動く事を意図して作ってるんだから当たり前の話。
意図せざる動きをしないかどうか、渡せるパラメータ全部渡して確認するのがテストだよ。
明らかに正しくないと思うよ。
思い込んで、そう動く事を意図して作ったものを、そう動くだろう、とテストする事は滅茶苦茶簡単だけど、
そう動く事を確認するなんて、そう動く事を意図して作ってるんだから当たり前の話。
意図せざる動きをしないかどうか、渡せるパラメータ全部渡して確認するのがテストだよ。
851デフォルトの名無しさん
2017/07/29(土) 20:11:18.96ID:1wOX1qLb853デフォルトの名無しさん
2017/07/29(土) 20:14:05.02ID:1wOX1qLb854あ
2017/07/29(土) 20:15:19.38ID:sarQXHNa855デフォルトの名無しさん
2017/07/29(土) 20:15:39.71ID:1wOX1qLb 単体テストだと、禁則はほとんど無いので、爆発するよね。
856デフォルトの名無しさん
2017/07/29(土) 20:16:14.28ID:1wOX1qLb859デフォルトの名無しさん
2017/07/29(土) 20:19:21.81ID:1wOX1qLb860あ
2017/07/29(土) 20:20:53.20ID:sarQXHNa861デフォルトの名無しさん
2017/07/29(土) 20:22:24.39ID:1wOX1qLb862あ
2017/07/29(土) 20:27:25.89ID:sarQXHNa >>861
うーん、噛み合ってないな。
総合試験を作るとき、網羅度はどうやって出すの?
それが本当にやらなくても、そのメソッド呼ばれようがない、という判定は誰がどうやるの?
そして、呼ばれなかった、という悪魔の証明をどう担保したいの?
うーん、噛み合ってないな。
総合試験を作るとき、網羅度はどうやって出すの?
それが本当にやらなくても、そのメソッド呼ばれようがない、という判定は誰がどうやるの?
そして、呼ばれなかった、という悪魔の証明をどう担保したいの?
863デフォルトの名無しさん
2017/07/29(土) 20:40:03.01ID:1wOX1qLb864あ
2017/07/29(土) 21:35:46.74ID:sarQXHNa こんなレベルで総合試験どころか結合試験して提出した奴は出禁にするレベルの酷さ。
865デフォルトの名無しさん
2017/07/29(土) 22:32:12.89ID:8lDGGI0L なるほど、不具合がないことを保証するための試験ではなくて、
想定された使い方をしている限り動く
変な使い方をしなければ動く
ことを保証するテストなんだな。
想定外の操作をして問題が起きたら
それは間違った使い方をしたユーザーの責任
想定された使い方をしている限り動く
変な使い方をしなければ動く
ことを保証するテストなんだな。
想定外の操作をして問題が起きたら
それは間違った使い方をしたユーザーの責任
866デフォルトの名無しさん
2017/07/30(日) 01:31:32.32ID:KXbv0POf 当たり前だろ
バカで低脳で使われるだけのユーザごときが偉そうにするな
ゴマスリしか能の無い、ちょっとコミュ力がSEより高いだけでプログラム1行も書けない下級生物は
大人しくしてろゴミ
バカで低脳で使われるだけのユーザごときが偉そうにするな
ゴマスリしか能の無い、ちょっとコミュ力がSEより高いだけでプログラム1行も書けない下級生物は
大人しくしてろゴミ
867デフォルトの名無しさん
2017/07/30(日) 02:54:09.22ID:Vcbd8R0/ ひどいコミュ障の自演を見てるようだ
ID:sarQXHNa
ID:8lDGGI0L
はトラブルメーカー
言ってることは正しい
しかし、そんなことは当たり前すぎるので、更にその上の議論をしようとしている人間に対して、全く話を理解せず頭ごなしに罵倒
狭い世界でお山の大将気取ってるコーダータイプ
多分、自分は悪くない、頭の悪い周りが悪いと思いこんでいる
ID:sarQXHNa
ID:8lDGGI0L
はトラブルメーカー
言ってることは正しい
しかし、そんなことは当たり前すぎるので、更にその上の議論をしようとしている人間に対して、全く話を理解せず頭ごなしに罵倒
狭い世界でお山の大将気取ってるコーダータイプ
多分、自分は悪くない、頭の悪い周りが悪いと思いこんでいる
868デフォルトの名無しさん
2017/07/30(日) 03:44:40.37ID:MHvXlxdG869デフォルトの名無しさん
2017/07/30(日) 08:39:37.81ID:J6wXHp7u >>865
そのシステムは扱いたくないなぁ
そのシステムは扱いたくないなぁ
870デフォルトの名無しさん
2017/07/30(日) 10:22:01.39ID:KXbv0POf >>867こいつが一番コミュ障でFA
871あ
2017/07/30(日) 13:00:21.91ID:yy9Kp6PA872あ
2017/07/30(日) 13:06:56.26ID:yy9Kp6PA コミュ障と言うか、前提を明示して、その上で議論の土俵にさえ来れない奴に最低限しかコスト割いてないのは確かだが、
それに対して、俺のコミュニケーション能力の問題だと思うほうが問題だと思うが。
なぜ理解できないのか、とか思わないのかな。
それに対して、俺のコミュニケーション能力の問題だと思うほうが問題だと思うが。
なぜ理解できないのか、とか思わないのかな。
873デフォルトの名無しさん
2017/07/30(日) 13:19:16.26ID:MHvXlxdG あ、自覚されてない方がいらっしゃいましたw
874デフォルトの名無しさん
2017/07/30(日) 13:21:02.86ID:MHvXlxdG 解説
867 名前:デフォルトの名無しさん[] 投稿日:2017/07/30(日) 02:54:09.22 ID:Vcbd8R0/
ひどいコミュ障の自演を見てるようだ
↓
870 名前:デフォルトの名無しさん[sage] 投稿日:2017/07/30(日) 10:22:01.39 ID:KXbv0POf [2/2]
>>867こいつが一番コミュ障でFA
↓
872 名前:あ[sage] 投稿日:2017/07/30(日) 13:06:56.26 ID:yy9Kp6PA [2/2]
それに対して、"俺の" コミュニケーション能力の問題だと思うほうが問題だと思うが。
さて問題です。"俺の" が指す俺とはどれのことでしょう?
867 名前:デフォルトの名無しさん[] 投稿日:2017/07/30(日) 02:54:09.22 ID:Vcbd8R0/
ひどいコミュ障の自演を見てるようだ
↓
870 名前:デフォルトの名無しさん[sage] 投稿日:2017/07/30(日) 10:22:01.39 ID:KXbv0POf [2/2]
>>867こいつが一番コミュ障でFA
↓
872 名前:あ[sage] 投稿日:2017/07/30(日) 13:06:56.26 ID:yy9Kp6PA [2/2]
それに対して、"俺の" コミュニケーション能力の問題だと思うほうが問題だと思うが。
さて問題です。"俺の" が指す俺とはどれのことでしょう?
875デフォルトの名無しさん
2017/07/30(日) 14:31:39.59ID:+SbgHtHH なんだよそれ わけわかんねーこと言って煙に巻いてんじゃねーぞカス
876あ
2017/07/30(日) 14:34:19.09ID:ZJvEhfsD877あ
2017/07/30(日) 14:35:11.53ID:ZJvEhfsD アホを支えるやつはアホなのかな。
878デフォルトの名無しさん
2017/07/30(日) 14:43:35.67ID:gbfUAfb8 煽りたいだけのガキはマッマのオッパイでも吸ってろや
せめてコードで殴り合え
せめてコードで殴り合え
879あ
2017/07/30(日) 15:35:17.38ID:P5Qwr2jW880デフォルトの名無しさん
2017/07/30(日) 15:39:55.58ID:MHvXlxdG コードって意外と重くて硬いぞ
十分殴り合えるだろう。
十分殴り合えるだろう。
881あ
2017/07/30(日) 15:56:42.37ID:P5Qwr2jW882デフォルトの名無しさん
2017/07/30(日) 15:59:09.22ID:yjzfrjlP あー、なるほどコードを振り回した時に
ヒュンヒュンなってるのはコードの速度が
音速を超えたために発生したソニックブームだったんだな
ヒュンヒュンなってるのはコードの速度が
音速を超えたために発生したソニックブームだったんだな
883デフォルトの名無しさん
2017/07/30(日) 16:03:05.39ID:gbfUAfb8884あ
2017/07/30(日) 16:03:53.31ID:P5Qwr2jW >>882
そこまでは風切り音で、そっから手首を返したときに起こる破裂音だね。
牛追いムチを観測してソニックブームが起こってることを確認したって古い論文を出してきてものすごく真面目に検証、考察してた。
そこまでは風切り音で、そっから手首を返したときに起こる破裂音だね。
牛追いムチを観測してソニックブームが起こってることを確認したって古い論文を出してきてものすごく真面目に検証、考察してた。
885あ
2017/07/30(日) 16:08:05.66ID:P5Qwr2jW >>883
全然オブジェクト指向っぽいが、必ずしもオブジェクト指向ではないでしょ。
Objectから綺麗に出てきてない型も居れば、演算子も定義できず、プロパティも持てないし。
べき論はおいといて、ダイヤモンド継承も出来ない、実装を持つインターフェイスも書けない、ただJVMってスタックマシンで動く物を作るための言語じゃん。
全然オブジェクト指向っぽいが、必ずしもオブジェクト指向ではないでしょ。
Objectから綺麗に出てきてない型も居れば、演算子も定義できず、プロパティも持てないし。
べき論はおいといて、ダイヤモンド継承も出来ない、実装を持つインターフェイスも書けない、ただJVMってスタックマシンで動く物を作るための言語じゃん。
886デフォルトの名無しさん
2017/07/30(日) 22:44:39.88ID:9nHjp9K2 実装を持つインターフェイスはずいぶん前から書けるし
ダイヤモンド継承はそれが出来るからって自慢するもんじゃないだろう
ダイヤモンド継承はそれが出来るからって自慢するもんじゃないだろう
887デフォルトの名無しさん
2017/07/30(日) 23:16:41.73ID:gbfUAfb8 本物のオブジェクト指向見せたろか?
888デフォルトの名無しさん
2017/07/30(日) 23:29:47.09ID:X0A6ZRSX >>887
ぜひ
ぜひ
889デフォルトの名無しさん
2017/07/30(日) 23:47:07.62ID:/ilXptvI つ Smalltalk!
890デフォルトの名無しさん
2017/07/30(日) 23:47:20.97ID:+SbgHtHH891デフォルトの名無しさん
2017/07/31(月) 00:08:48.05ID:hPrOEueK >>887
はよ!
はよ!
892デフォルトの名無しさん
2017/07/31(月) 00:09:12.67ID:+ZZTwtJO >>887
師ね
師ね
893デフォルトの名無しさん
2017/07/31(月) 01:48:46.33ID:RrKvfi6Q ここにはない
894デフォルトの名無しさん
2017/07/31(月) 08:23:13.73ID:petpUpvz >>887
見せて!
見せて!
896デフォルトの名無しさん
2017/07/31(月) 13:04:11.69ID:L1o8DOnz897デフォルトの名無しさん
2017/07/31(月) 17:52:08.83ID:k2YlNqjB898デフォルトの名無しさん
2017/07/31(月) 17:53:32.27ID:k2YlNqjB >>885
> Objectから綺麗に出てきてない型も居れば、演算子も定義できず、プロパティも持てないし。
> べき論はおいといて、ダイヤモンド継承も出来ない、実装を持つインターフェイスも書けない、ただJVMってスタックマシンで動く物を作るための言語じゃん。
このスレで語られるレベルのことは、Javaで表現できるだろ
> Objectから綺麗に出てきてない型も居れば、演算子も定義できず、プロパティも持てないし。
> べき論はおいといて、ダイヤモンド継承も出来ない、実装を持つインターフェイスも書けない、ただJVMってスタックマシンで動く物を作るための言語じゃん。
このスレで語られるレベルのことは、Javaで表現できるだろ
899あ
2017/07/31(月) 18:16:30.26ID:/DHTAviI900あ
2017/07/31(月) 18:18:08.72ID:/DHTAviI901デフォルトの名無しさん
2017/07/31(月) 19:11:17.23ID:9Hgupd7z ああもう最悪な
これは・・・
全然関係ないことで300レス消費した理由がはっきりしたわ
これは・・・
全然関係ないことで300レス消費した理由がはっきりしたわ
902デフォルトの名無しさん
2017/07/31(月) 19:24:23.04ID:W4UbSJlH あ ってずっと暴れてるけど暇なの?
903デフォルトの名無しさん
2017/07/31(月) 19:41:19.22ID:L1o8DOnz905デフォルトの名無しさん
2017/07/31(月) 23:22:37.88ID:khcSadY1 実装を持つインターフェイスも書けない
実装を持つインターフェイスも書けない
実装を持つインターフェイスも書けない
実装を持つインターフェイスも書けない
実装を持つインターフェイスも書けない
実装を持つインターフェイスも書けない
実装を持つインターフェイスも書けない
実装を持つインターフェイスも書けない
実装を持つインターフェイスも書けない 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
実装を持つインターフェイスも書けない
実装を持つインターフェイスも書けない
実装を持つインターフェイスも書けない
実装を持つインターフェイスも書けない
実装を持つインターフェイスも書けない
実装を持つインターフェイスも書けない
実装を持つインターフェイスも書けない
実装を持つインターフェイスも書けない 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
906デフォルトの名無しさん
2017/07/31(月) 23:59:59.08ID:iPdlauJl907デフォルトの名無しさん
2017/08/01(火) 00:03:40.43ID:zRlG3ihR う〜ん、なら
(obj1, obj2, obj3) . method ( obj4, obj5, obj6 );
どうだ!
(obj1, obj2, obj3) . method ( obj4, obj5, obj6 );
どうだ!
908デフォルトの名無しさん
2017/08/01(火) 00:11:26.04ID:EEmbGQa7 >>907
それの意味は?
それの意味は?
909デフォルトの名無しさん
2017/08/01(火) 00:13:55.39ID:zRlG3ihR レシーバをobj1,obj2,obj3として
引数obj4,obj5,obj6で
methodを呼び出す
引数obj4,obj5,obj6で
methodを呼び出す
910デフォルトの名無しさん
2017/08/01(火) 00:24:18.66ID:up/JWAZ5911デフォルトの名無しさん
2017/08/01(火) 00:33:52.37ID:zRlG3ihR 関数の引数は複数とる場合も当然あり得るんだから
そのうちの一つの引数だけを特別扱いしてレシーバーとするのは
理屈の上では不自然なのでは?と考えただけ
http://nyamtech.blogspot.jp/2012/06/clojure_29.html
https://japan-clojurians.github.io/clojure-site-ja/reference/multimethods
そのうちの一つの引数だけを特別扱いしてレシーバーとするのは
理屈の上では不自然なのでは?と考えただけ
http://nyamtech.blogspot.jp/2012/06/clojure_29.html
https://japan-clojurians.github.io/clojure-site-ja/reference/multimethods
912デフォルトの名無しさん
2017/08/01(火) 00:42:33.76ID:Lo+24Uvw 使いづらい上に可読性最悪
メンテ性ゴミ
ブレファ並のギャグ
メンテ性ゴミ
ブレファ並のギャグ
913デフォルトの名無しさん
2017/08/01(火) 00:46:42.92ID:up/JWAZ5914デフォルトの名無しさん
2017/08/01(火) 01:04:02.59ID:zRlG3ihR まぁでも、これがそもそもの起点となってる部分もあるから
これはシングルディスパッチのOOPが悪いとかそういうことではなくね
OO以前はもっぱら関数を中心軸にして考えていたのを
第一引数を中心軸にして考えるとどうなるかっていう
そのときの適切な設計とその手法はどうなのか
ってことだから
ただしあまり深入りしたくないのは、第一引数を中心に考えるってのが
割と経験則みたいなところがあって、必ずしもいつも適切かどうかは分からん
だからOOP万能ってことにはならないし、やはり銀の弾などないってありきたりな結論なわけだが
その意味で「本物のオブジェクト指向」ってのはかなり笑える表現だと思う
「本物のオブジェクト指向」とやらがあったとして、それが使いやすいかどうかは別問題っていう
まぁそういうことが言いたいのではないかね>>887は
それか全く何も考えてないか
OO原理主義みたいな人が書いたプログラムは読みにくいって相場は決まってるしな
ちなみに俺は>>887ではないよ
これはシングルディスパッチのOOPが悪いとかそういうことではなくね
OO以前はもっぱら関数を中心軸にして考えていたのを
第一引数を中心軸にして考えるとどうなるかっていう
そのときの適切な設計とその手法はどうなのか
ってことだから
ただしあまり深入りしたくないのは、第一引数を中心に考えるってのが
割と経験則みたいなところがあって、必ずしもいつも適切かどうかは分からん
だからOOP万能ってことにはならないし、やはり銀の弾などないってありきたりな結論なわけだが
その意味で「本物のオブジェクト指向」ってのはかなり笑える表現だと思う
「本物のオブジェクト指向」とやらがあったとして、それが使いやすいかどうかは別問題っていう
まぁそういうことが言いたいのではないかね>>887は
それか全く何も考えてないか
OO原理主義みたいな人が書いたプログラムは読みにくいって相場は決まってるしな
ちなみに俺は>>887ではないよ
915デフォルトの名無しさん
2017/08/01(火) 01:12:14.49ID:zRlG3ihR 逆にマルチメソッド主義で行くんなら
複数ある関数の引数はどれも同じ重みで扱われることになるから
むしろOO以前の考え方に先祖返りすることになる
第一引数だけを特別扱いしてそれを軸足にして考える
ってのがOOの独特の世界観なわけで、全部の引数を等しく扱うなら・・・
第一引数だけを特別扱いしたときに経験的に上手くいくことが多いけど
そのやり方がどの範囲まで通用するかの実験みたいなもんだと思っとけば良いんじゃね?
無理やりにでもそうするやつと、初めから割り切ってるやつと、2パターン居るよね
複数ある関数の引数はどれも同じ重みで扱われることになるから
むしろOO以前の考え方に先祖返りすることになる
第一引数だけを特別扱いしてそれを軸足にして考える
ってのがOOの独特の世界観なわけで、全部の引数を等しく扱うなら・・・
第一引数だけを特別扱いしたときに経験的に上手くいくことが多いけど
そのやり方がどの範囲まで通用するかの実験みたいなもんだと思っとけば良いんじゃね?
無理やりにでもそうするやつと、初めから割り切ってるやつと、2パターン居るよね
916デフォルトの名無しさん
2017/08/01(火) 01:45:23.53ID:up/JWAZ5917デフォルトの名無しさん
2017/08/01(火) 07:23:01.97ID:q7SQowVl Smalltalk発のメッセージングのオブジェクト指向が「本物」とか言ってる時点でオブジェクト指向の理解にかなり問題がある
アラン・ケイのメッセージングのオブジェクト指向は、設計・実装・実行・運用・保守とあらゆる局面における
「遅延結合」(…という表現だと実行時のみにひっぱられる人がいるので「決定の遅延」の方がベターか)を
メッセージングというお題目を通じて実践・徹底・サポートするアイデア
http://d.hatena.ne.jp/katzchang/20080807/p2
http://metatoys.org/oxymoron/oxymoron.html
いろいろやり残した事はあるけど、ケイも興味を失っているし、このアイデアを試す実験自体、彼がSqueakを離れた時点で終了している
一方でC++発の抽象データ型のオブジェクト指向は、例えば型推論や型クラスといった関数型のコミュニティ発の優れたアイデアを
取り入れた賢い型システムを構築してどんどん進化していて、「本物」を語るならむしろこっちをちゃんと勉強して突き詰めた方がいい
長くなったけど伝えたいことは一つだけ。
“「本物」のオブジェクト指向を知りたいなら、「メッセージ」のことはもう忘れろ”
アラン・ケイのメッセージングのオブジェクト指向は、設計・実装・実行・運用・保守とあらゆる局面における
「遅延結合」(…という表現だと実行時のみにひっぱられる人がいるので「決定の遅延」の方がベターか)を
メッセージングというお題目を通じて実践・徹底・サポートするアイデア
http://d.hatena.ne.jp/katzchang/20080807/p2
http://metatoys.org/oxymoron/oxymoron.html
いろいろやり残した事はあるけど、ケイも興味を失っているし、このアイデアを試す実験自体、彼がSqueakを離れた時点で終了している
一方でC++発の抽象データ型のオブジェクト指向は、例えば型推論や型クラスといった関数型のコミュニティ発の優れたアイデアを
取り入れた賢い型システムを構築してどんどん進化していて、「本物」を語るならむしろこっちをちゃんと勉強して突き詰めた方がいい
長くなったけど伝えたいことは一つだけ。
“「本物」のオブジェクト指向を知りたいなら、「メッセージ」のことはもう忘れろ”
918デフォルトの名無しさん
2017/08/01(火) 14:38:47.37ID:LECQ7oI6 あってほんとに自分の日本語がおかしくないって思ってるのかな
919あ
2017/08/01(火) 20:37:27.59ID:ps+Dq31M920デフォルトの名無しさん
2017/08/01(火) 21:35:09.94ID:q7SQowVl >>919
あ、うんって、お前、記憶ガイジなん?
あ、うんって、お前、記憶ガイジなん?
921デフォルトの名無しさん
2017/08/01(火) 21:48:10.35ID:q7SQowVl > 手続きとスタックがあればそれで良かったんだみたいな
さながらチューリングの泥沼にはまって身動きとれなくなったロートルだな
さながらチューリングの泥沼にはまって身動きとれなくなったロートルだな
922あ
2017/08/02(水) 08:35:23.02ID:xl010nKq923デフォルトの名無しさん
2017/08/02(水) 10:06:16.17ID:QboL4ysj > 機械がチューリングマシンで動いてる限り仕方ない
そんな機械がこの世のいったいどこにあるんかね
もしかしてチューリングマシン自体がオブジェクト指向とおなじ程度に抽象化産物ってことわかっとらん人?
さもなくば定式化されてないアイデアはこの世に存在しないも同然とか考えてる数理科学系気取ったバカ?
そんな機械がこの世のいったいどこにあるんかね
もしかしてチューリングマシン自体がオブジェクト指向とおなじ程度に抽象化産物ってことわかっとらん人?
さもなくば定式化されてないアイデアはこの世に存在しないも同然とか考えてる数理科学系気取ったバカ?
924デフォルトの名無しさん
2017/08/02(水) 10:07:00.25ID:tPIF94Ld >>923
やっぱり日本語不自由だから理解できてないんだな、文脈
やっぱり日本語不自由だから理解できてないんだな、文脈
925デフォルトの名無しさん
2017/08/02(水) 19:10:48.23ID:JD5jVN3c 過去ログを追ってて思ったんですが、もしかしてこのスレってオブジェクト指向設計の話題はNGですか?
926デフォルトの名無しさん
2017/08/02(水) 20:00:50.33ID:BkFBLKJoレス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【高市朗報】 日本政府「一昨年は1300億円。去年も防衛費が1100億円余ったw」 日本の防衛費は充分足りてる事が判明。増やす必要無し [485983549]
- 高市早苗「支持者の理解を得られないので台湾発言を撤回できない」 [931948549]
- 【実況】博衣こよりのえちえち歌枠🧪
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 【速報】51歳まで自衛隊になれるように法改正ww [347751896]
