前スレ
オブジェクト指向システムの設計 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+O816デフォルトの名無しさん
2017/07/29(土) 11:54:40.25ID:8lDGGI0L817デフォルトの名無しさん
2017/07/29(土) 11:56:51.52ID:8lDGGI0L >>813
> 今2つだから単純な話で済んでるけど。
そうなんだよね。
今は権限、特定のユーザーの情報だけで決まる話ばかりしてるけど、
他人の注文は取り消せないが、自分の注文だけは取り消せるみたいな
権限+ビジネススールの組み合わせで判定することもあるわけだ
> 今2つだから単純な話で済んでるけど。
そうなんだよね。
今は権限、特定のユーザーの情報だけで決まる話ばかりしてるけど、
他人の注文は取り消せないが、自分の注文だけは取り消せるみたいな
権限+ビジネススールの組み合わせで判定することもあるわけだ
818デフォルトの名無しさん
2017/07/29(土) 12:08:18.12ID:Suk8TZUZ >>817
> 今は権限、特定のユーザーの情報だけで決まる話ばかりしてるけど、
> 他人の注文は取り消せないが、自分の注文だけは取り消せるみたいな
> 権限+ビジネススールの組み合わせで判定することもあるわけだ
だからこそ、「可能/不可能」と「許可/不許可」はごっちゃに考えてはいけないと何度言ったら。
「可能/不可能」の実装は注文オブジェクトに、「許可/不許可」の実装は権限管理オブジェクトに、だ。
> 今は権限、特定のユーザーの情報だけで決まる話ばかりしてるけど、
> 他人の注文は取り消せないが、自分の注文だけは取り消せるみたいな
> 権限+ビジネススールの組み合わせで判定することもあるわけだ
だからこそ、「可能/不可能」と「許可/不許可」はごっちゃに考えてはいけないと何度言ったら。
「可能/不可能」の実装は注文オブジェクトに、「許可/不許可」の実装は権限管理オブジェクトに、だ。
819デフォルトの名無しさん
2017/07/29(土) 12:16:47.13ID:8lDGGI0L >>818
いや、カプセル化の考え方からすると、
権限管理オブジェクトの中で何やってるかは隠蔽されてるものなので
権限管理オブジェクトの中でビジネスロジックを呼んでいたとしても、
使う側からすれば、同じようにみえるわけですよ。
そもそも権限管理オブジェクトっていうのは名前が間違いで
一つの「権限+ビジネスロジック」管理オブジェクトとするべきなのですよ。
そしてその中で権限管理オブジェクトやビジネスロジックオブジェクトによる
チェックをするべきでしょうね。場合によってはここでどちらとも関係ない
チェックが入るかもしれません。例えばメンテ中で閲覧しかできないみたいな。
話が見えてきましたね。
あなたは全てを「権限管理オブジェクト」にごっちゃにしてはいけないと言ってる。
私は「権限管理オブジェクト」にごっちゃにはしてない。
ただし「権限管理オブジェクト」やビジネスロジックやその他を扱うオブジェクトを
統括する別のオブジェクトを作って、そこでごっちゃにしろと言ってる。
いや、カプセル化の考え方からすると、
権限管理オブジェクトの中で何やってるかは隠蔽されてるものなので
権限管理オブジェクトの中でビジネスロジックを呼んでいたとしても、
使う側からすれば、同じようにみえるわけですよ。
そもそも権限管理オブジェクトっていうのは名前が間違いで
一つの「権限+ビジネスロジック」管理オブジェクトとするべきなのですよ。
そしてその中で権限管理オブジェクトやビジネスロジックオブジェクトによる
チェックをするべきでしょうね。場合によってはここでどちらとも関係ない
チェックが入るかもしれません。例えばメンテ中で閲覧しかできないみたいな。
話が見えてきましたね。
あなたは全てを「権限管理オブジェクト」にごっちゃにしてはいけないと言ってる。
私は「権限管理オブジェクト」にごっちゃにはしてない。
ただし「権限管理オブジェクト」やビジネスロジックやその他を扱うオブジェクトを
統括する別のオブジェクトを作って、そこでごっちゃにしろと言ってる。
820デフォルトの名無しさん
2017/07/29(土) 12:20:56.80ID:8lDGGI0L ちなみに、ごっちゃにするメリットは
何かの処理ができない時、その理由がなにであるかを
意識する必要が無いということです。
理由は関係なく、単純な できる?できない?で表せるので
条件を書くところが少なくなって、コードがシンプルになります。
何かの処理ができない時、その理由がなにであるかを
意識する必要が無いということです。
理由は関係なく、単純な できる?できない?で表せるので
条件を書くところが少なくなって、コードがシンプルになります。
821デフォルトの名無しさん
2017/07/29(土) 12:25:24.83ID:JFgIXVoU class Rule {
public Rule (Order o, Kengen, k) {/*いつもの*/}
public cancel(){}
}
これでドヤ?
ワイが一番頭良いと思った
public Rule (Order o, Kengen, k) {/*いつもの*/}
public cancel(){}
}
これでドヤ?
ワイが一番頭良いと思った
822あ
2017/07/29(土) 12:42:22.90ID:sarQXHNa >>814
違う、ごっちゃにしたくてしてる訳ではない。
考えるのがめんどくさいからでも、混同してる訳でもない。
逆に、同じものに対する力の強さを、言葉を変えて別定義するのがおかしい。本質的には同じ物なんだから。
列挙するとまるで別のように見えるし、実際そういうシステム見たことあるが、闇が深すぎて設定だけで何人日かかるんだよこれってシステム。
力の強さにするか、ビットマスクにするか、列挙としてたくさんの積や和が可能な型とするかはおいといて、
それらは全部同じ結論の「可能/不可能」を表していて当然だと思う。
増えたとして、って、おかしいよ。今までの判定結果が、今回の判定結果と優先順位が違えば、増えた分全部再テストだよ。
システム整合性
在庫
オペレーター
みたいな3層のチェック条件に、負在庫を許すマネージャーなんて層を足したら、それは今までのシステム整合性→在庫→オペレーターの3層のチェックのどこにどう挟む気なの?
違う、ごっちゃにしたくてしてる訳ではない。
考えるのがめんどくさいからでも、混同してる訳でもない。
逆に、同じものに対する力の強さを、言葉を変えて別定義するのがおかしい。本質的には同じ物なんだから。
列挙するとまるで別のように見えるし、実際そういうシステム見たことあるが、闇が深すぎて設定だけで何人日かかるんだよこれってシステム。
力の強さにするか、ビットマスクにするか、列挙としてたくさんの積や和が可能な型とするかはおいといて、
それらは全部同じ結論の「可能/不可能」を表していて当然だと思う。
増えたとして、って、おかしいよ。今までの判定結果が、今回の判定結果と優先順位が違えば、増えた分全部再テストだよ。
システム整合性
在庫
オペレーター
みたいな3層のチェック条件に、負在庫を許すマネージャーなんて層を足したら、それは今までのシステム整合性→在庫→オペレーターの3層のチェックのどこにどう挟む気なの?
824デフォルトの名無しさん
2017/07/29(土) 13:30:56.05ID:JFgIXVoU826デフォルトの名無しさん
2017/07/29(土) 13:48:21.39ID:JFgIXVoU >>825
日本語でおk
日本語でおk
827あ
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パターン居るよね
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 【速報】中国、水産物輸入停止と通達 日本政府に ★2 [おっさん友の会★]
- 中国側が首相答弁の撤回要求、日本側拒否★6 [夜のけいちゃん★]
- 「厚かましい挑発的発言だ」中国国連大使が高市首相発言に強く反発 日本の常任理事国入りに明確に反対 [ぐれ★]
- 【速報】 米大使「はっきりさせておこう、米国は尖閣諸島含め日本の防衛に全面コミット、中国がどうしようが変わらない」 [お断り★]
- 自民、経済対策で子ども1人に2万円給付へ 児童手当に上乗せ 所要額は約4000億円 [ぐれ★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 ★3 [蚤の市★]
- 【朗報】ウヨの姫小野田大臣、吠える「何か気に入らないことがあったらすぐに経済威圧をする国に依存するのはリスク」脱アメリカを宣言 [856698234]
- 【高市訃報】ホタテ業者、死亡😇😇😇 [573041775]
- 高市早苗 「靖国神社電撃参拝」説が浮上 [163661708]
- 米タイム紙、日中の台湾問題を全力解説で中国の高市早苗批判を全力で拡散。ネトウヨは英語で反論がんばって! [792931474]
- 高市「台湾有事は日本有事!」中国「へぇ、じゃあ渡航規制&水産物輸入停止な」日本、数兆円の莫大な経済的損失で逝く [165981677]
- 【終国悲報】高市早苗、たったの10日で莫大な経済的損失を叩き出す [165981677]
