[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 11/04 03:18 / Filesize : 386 KB / Number-of Response : 1023
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

オブジェクト指向システムの設計 170



1 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 23:08:42.31 ID:pIEuB3Z3.net]
オブジェクト指向に限らず、理由もなく小さく細分化させるのはアホ
オブジェクト指向は役割でオブジェクトに分割するものであって
処理で分割するものではない。

452 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 09:10:24.49 ID:n7HRsF8B.net]
なんで質問に対して質問に返すのかな?

そんなメソッドや関数って普通あるっけ?

リファクタリングとは何か?
こんな単純な質問にすら答えられないのに、一体何を設計できるんだろうな?

453 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 09:14:49.00 ID:n7HRsF8B.net]
ああそうか、質問に対して別のやつに質問するメソッド(デリゲート)はあるわな

つまり君たちに質問しても君たちは答えられないわけだ
君たちは単なるラッパークラスであり、実体は別の人間が知っていればよいと
それがオブジェクト指向であると

実際そんな無知蒙昧なオブジェクトが「設計行為」できるわけないけどな

454 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 09:20:26.52 ID:gXar6Rt9.net]
chain of responsibilityね?

455 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 09:24:16.89 ID:ZPhk/eMO.net]
>>430
重複を許容 ≠ リファクタリングしない

バカすぎ

456 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 09:50:23.15 ID:Ux1fTD3c.net]
>>443
> リファクタリングとは何か?
>>327

457 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 09:51:41.72 ID:Ux1fTD3c.net]
>>446
>>353 のリンク先読んでそんなこと言ってるなら恥ずかしいだけだぞ w

458 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 09:51:49.72 ID:OPSrDWPX.net]
OOPするしないに関わらず設計と言うのは大きな概念から考えてその大きな概念を実現するために枝葉に至るべきである

大きな目的を定めず小さな目的に拘泥するのは馬鹿な行為である
これはプログラムの設計に限らず絵などでも同様で細部をバラバラに描くから全体のバランスの悪い崩れた物しか描けない
末節のクラス設計にこだわり、総体としてのプログラムの構造を見ていない馬鹿がOOP信者には多い
抽象化に失敗してるOOPもどきは醜悪の一語だ

一方で大きな概念が適切に抽象化されていれば順次それを具象化していく段階でOOは優れた手法である
前段で述べた一部の馬鹿な信者を見てOOP全体を否定するのは馬鹿なOOP信者と同様に馬鹿な行為である
間違ってる馬鹿を見過ぎたか手法を理解できないのかはわからないがこちらも全体を見ていない

馬鹿と馬鹿が議論をしたところで結論なんか出るわけがないのである、どっとはらい

459 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 09:58:03.84 ID:ZPhk/eMO.net]
>>448

>>353のリンク先を読んだよ

> テストのリファクタリング
> 実装にコードの重複や無駄はあるでしょうか? 現時点ではリファクタリングの余地がないほどシンプルですね。
> ではテストコードはどうでしょうか? …かなり重複が見られますね。テストを書いたすぐ後のタイミングで、
> テストコードの重複も積極的に排除していこう、というのが最近の考え方です。テストの「リファクタリング」というと
> 厳密にはもっと難しく、タイミングが遅れるほど困難なものですが、テスト実装直後では自分の頭にもテスト設計が
> 残っているでしょうし、このタイミングでは大胆に行動できます。では重複を排除していきましょう。

460 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 10:06:47.58 ID:h8gmrQ4h.net]
なんか、2chって、ちょっと長め(一般基準からすれば、十分に短文なものだが)の文章を目にすると、頭がスタックオーバーフローになっちゃう人たちが多いの?



461 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 10:25:12.33 ID:Ux1fTD3c.net]
>>450
そっちじゃねーよ w
俺のレスすら理解してないのかよ...

462 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 10:38:44.34 ID:ZPhk/eMO.net]
>>452
これは和田さんのブログなんだが、
お前は何がいいたいのだ?

リファクタリングとは重複を全く無くすって意味じゃないんだが?

463 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 10:44:06.85 ID:n7HRsF8B.net]
>>449
一方で大きな概念が適切に抽象化されていれば順次それを具象化していく段階でOOは優れた手法である

ないない、もっとも抽象化された構造というのは、結局計算コストが高くつくものだから
継承するにもスレッドをブロックするにもコストがかかるってことわかってないよね
必ずしもハイパフォーマンスである必要はないが、ある機能拡張が
深刻にパフォーマンスに問題をきたすとき、それがOOのできる拡張の限界

建築でも同じだが単なるお絵かきデザイナーに、強度計算や構造計算はできないし、
そんなお絵かきデザイナーのいうことを真に受けないといけなくなったIT業界に
まともなプロダクトは出せていないことは、この15年で証明済みだろ

464 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 10:44:11.73 ID:ZPhk/eMO.net]
俺も和田さんと同じ意見なんだが、
テストコードのリファクタリングというのは
テストを読んだだけで、理解できるようにシンプルな形にすると言うもの。

テストコードのリファクタリングは重複を省くことじゃない。
重複があってもいいが、テストコードのテストとか意味不明なわけで
そういうものを作らないためにテストコードは人間が読んだだけで
理解できるほど単純じゃないといけない。

単純にするためにリファクタリングする。

465 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 10:55:59.85 ID:Sbqo4kno.net]
ID:ZPhk/eMOは誰と闘ってんだ?
>>1ってお前じゃないの?w

まともな設計ができないことを正当化するために何某のブログを引用しているだけじゃん。
そんな奴知らないからそいつがほんとにそんなことを言いたいのか知らんけど。

で、疑問に対する回答がまったくなされていないという…。
テストコードが作られるとして、テストコードはクラス・メソッドを前提としている。
@クラス・メソッドを変えたらテストコードの修正が必要になるのでは?
Aクラス・メソッドが変わっても対応できるテストコードの書き方なんてある?あるならどんな書き方なんだ?

同じ質問を無視してただただ持論を繰り返すってコミュ障かよ。
自分の主張をするだけなら自分のブログに書いてろw

466 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 10:57:47.40 ID:ZPhk/eMO.net]
クラス・メソッドを変えても、動作が変わらないならばテストコードの修正は不要

当たり前の話だと思うが?

467 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 10:58:23.57 ID:Sbqo4kno.net]
>>454
建築業界には設計図を書けない設計者がいると思ってんのか?
脳みそ腐ってるw

468 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 10:58:59.82 ID:Ux1fTD3c.net]
>>453
だれも「全く」なんて言ってないのに...
人の話聞くの苦手なの? w

469 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 10:59:04.36 ID:ZPhk/eMO.net]
> >>1ってお前じゃないの?w

ぜんぜん違う。

お前こそ>>1と戦ってるんだろ?
俺に戦いを挑むなよw

470 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 10:59:21.59 ID:oaV48IC8.net]
前スレの1とこのスレの1は別人だよな
前スレの1は固定つけてくれたほうが分かりやすくて助かるんだが



471 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 10:59:31.60 ID:Sbqo4kno.net]
>>457
メソッドを使わないテストコードって何それ?怖い。

472 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:00:58.59 ID:ZPhk/eMO.net]
>>459
> だれも「全く」なんて言ってないのに...

>>430で言ってるだろw
> テストの重複の話に至ってはその和田某氏は重複を許容(=リファクタリングしない)って言う発言すらしてるぞ w

重複を許容(=リファクタリングしない)って。

それとも自分の意見を変えるのか?

重複を許容(=でもリファクタリングはしない)

473 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:01:32.08 ID:ZPhk/eMO.net]
>>462
「メソッドを使わないテストコード」ってどこに書いてあるの?www

474 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:03:00.27 ID:ZPhk/eMO.net]
>>463訂正。

× 重複を許容(=でもリファクタリングはしない)
○ 重複を許容(=でもリファクタリングはする)

それともこっちのほうがいいか?w

重複を(一部)許容 (=その一部以外は重複を省くためのリファクタリングをする)

475 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:03:15.46 ID:Sbqo4kno.net]
>>464
「クラス・メソッドを変えてもテストコードの修正は不要」なんだろ。
テストコードでクラス、メソッドを利用しているなら
クラス・メソッドを変えたらテストコードも変更が必要なのでは?
どういうことなのか合理的に説明しろ。

476 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:03:54.53 ID:ZPhk/eMO.net]
>>466
クラス・メソッドが変わっても動作が変わらないならば
テストコードの修正は不要。

477 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:04:42.44 ID:Sbqo4kno.net]
>>464
それともクラス・メソッドを「変えても」の意味が不明ないのか?
「変えても」とは>>420の意味か?

478 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:05:45.72 ID:ZPhk/eMO.net]
例えば、設定をYAMLに保存する、クラス・メソッドがあったとして、
それをXMLに保存する、クラス・メソッドに置き換えた時、
何に保存するかを隠蔽されている状態でのテストコードは修正が不要

479 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:06:57.96 ID:Sbqo4kno.net]
>>469
つまり>>420ってことだろ?
YesならYes、違うならお前の言葉で正確に定義してくれ。

480 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:10:25.36 ID:Ux1fTD3c.net]
>>457
ホワイトボックステストって知ってる?



481 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:10:26.64 ID:Sbqo4kno.net]
どうした?
変更範囲の正確な定義も認識せずにこんだけ主張してたの?
インタフェースは変えないことが前提なんだろ?

482 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:10:48.42 ID:ZPhk/eMO.net]
>>470
二通り有る。

クラス・メソッドを変える時、正確に言うとテストより先に変えるとき、
それはリファクタリングや実装の変更(挙動は変わらない)ものしかやってはいけない。

クラス・メソッドの仕様が変わる → ならば テストを変えるのではなく。
仕様が変わったら、テストコードを先に修正する。
そして実行したらテストに失敗する。それは「バグがある(もしくは未実装)のクラス/メソッド」と
同じ扱い。テストが通るように、クラス・メソッドを書き換える。

クラス・メソッドを変えてもテストコードの修正は不要
テストコードを修正した場合には、クラス・メソッドの修正が必要

483 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:12:03.63 ID:ZPhk/eMO.net]
補足

クラス・メソッドを変えてもテストコードの修正は不要
テストコードを修正した場合には、クラス・メソッドの修正が必要
ただし、テストコードのリファクタリングの場合には、当然クラス・メソッドの修正は不要

484 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:14:33.02 ID:Ux1fTD3c.net]
>>463
で、どこに「全く」なんて入ってるんだ? w

重複コードの排除はリファクタリングで普通にやられてますよ
objectclub.jp/technicaldoc/refactoring/refact-smell#1

485 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:15:47.82 ID:Sbqo4kno.net]
>>473
これは設計中の変更と普通は呼ぶ。
当然あるけど、お前が主張する設計ができてなくてもテストから開始するという
プロセスとは関係ないので、これはお前の言ってる話からは除外しよう。
>クラス・メソッドを変える時、正確に言うとテストより先に変えるとき

テストから開始するというプロセスを前提にしてインタフェースを帰る場合は
>テストコードを修正した場合には、クラス・メソッドの修正が必要
となるだろ?

これもYesならYes、違うならお前の言葉で正確に説明してくれ。

486 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:18:11.64 ID:ZPhk/eMO.net]
>>475
> 重複コードの排除はリファクタリングで普通にやられてますよ

それ以外のリファクタリングもあるだろw

↓これお前が言ったセリフな
「重複を許容(=リファクタリングしない)」

重複を許容するが長すぎるメソッドを短くする
objectclub.jp/technicaldoc/refactoring/refact-smell#2

これは、重複を許容していてもリファクタリングだろ。

487 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:19:30.24 ID:ZPhk/eMO.net]
>>476
> これもYesならYes、違うならお前の言葉で正確に説明してくれ。

さっきから、俺の言葉で正確に説明してるだろ。
アホかw

488 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:21:49.03 ID:Sbqo4kno.net]
>>478
俺の理解があってるならYes。
何か違うならどこが違うか説明しろってことだが。

お前のやり取りって、他の人とのやり取り見てても認識がずれてるから
ちゃんと確認してるんだよ。
で、はっきり回答しろ。

489 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:22:50.08 ID:ZPhk/eMO.net]
>>479
だから、Yesって言わないで、
何か違うから、俺の言葉でずっと説明してるんだが?

490 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:23:38.96 ID:Sbqo4kno.net]
>>480
>>476に対する返事はない。



491 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:26:28.37 ID:ZPhk/eMO.net]
>>481

> テストから開始するというプロセスを前提にしてインタフェースを帰る場合は
> >テストコードを修正した場合には、クラス・メソッドの修正が必要
> となるだろ?
>
> これもYesならYes、違うならお前の言葉で正確に説明してくれ。

となるだろ?と言われても意味不明なんだが?
Yesもなにも、それは俺が>>473で言ってる言葉だw

492 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:33:29.79 ID:Sbqo4kno.net]
>>482
>>473がおかしいんだがw

お前はテストから開始するというプロセスについて主張してるのに
「クラス・メソッドを変える時、正確に言うとテストより先に変えるとき」
ってお前が言ってたプロセスと違うじゃん…。
何言ってんだ?って状態だから確認してるんだけど。

493 名前:デフォルトの名無しさん [2016/06/04(土) 11:35:05.80 ID:AIJuo/HE.net]
Haskellを使えばテスト必要ない。

494 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:38:09.90 ID:ZPhk/eMO.net]
>>483
> 「クラス・メソッドを変える時、正確に言うとテストより先に変えるとき」
> ってお前が言ってたプロセスと違うじゃん…。

正確に引用しような?w

「クラス・メソッドを変える時、正確に言うとテストより先に変えるとき、
それはリファクタリングや実装の変更(挙動は変わらない)ものしかやってはいけない。」

何も違ってないじゃん?

テストよりも先に変えるって言ってる。
テストよりも先に作るなんて言ってない。
それは即ちテストがすでにあるということ。

クラス・メソッドを変える時にはテストがすでにある。
言い換えるとテストを先に作っている。

クラス・メソッドをテストよりも先に変える時、
それはリファクタリングや実装の変更(挙動は変わらない)ものしかやってはいけない。

495 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:40:47.53 ID:Sbqo4kno.net]
>>485
意味分からん。
これとか謎過ぎる。「テストよりも先に変える」のに「即ちテストがすでにある」って時系列がどうなってんだ?
>テストよりも先に変えるって言ってる。
>テストよりも先に作るなんて言ってない。
>それは即ちテストがすでにあるということ。

テスト、設計、変更とかのステップの順序を正確に書いてくれ。

496 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:43:51.80 ID:ct4DNQD3.net]
48 :まちがって名前消しちゃいました。:2013/04/29(月) 00:46:16.62 ID:???
それでCPU云々ぬかしてるとか、バロスwwwww

49 :まちがって名前消しちゃいました。:2013/04/29(月) 00:47:53.21 ID:???
コンソーレは、ポインターの使い方を知らない。

497 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:44:07.65 ID:Sbqo4kno.net]
>>485
結論としてはインタフェースを変更するならテストコードも変更するんだろ?
テストコードが先にあるのにインタフェースを変えてもテストの変更がいらないケースがあるなら
どういうケースなのかちゃんと説明しろ。

498 名前:デフォルトの名無しさん [2016/06/04(土) 11:45:12.68 ID:AIJuo/HE.net]
コンソーレはポイントゥの使い方を知らない・・・の方が良いのでは。

499 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:45:18.46 ID:pn86qigp.net]
visualstudioが提供するような
ユニットテストはいらんなぁ
uwscで一巡出来ればいい感じ

500 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:47:15.90 ID:ZPhk/eMO.net]
>>486
あー、わかったw

コードをテストコードよりも先に変えるときはリファクタリングしかしないから
結果的に既存のテストは変えないよw
そうだね。そこは間違った。

たいていリファクタリングする前には、既存のテストは変えないが
追加して不足しているテストを書くことが多いので勘違いした。



501 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:49:24.99 ID:ZPhk/eMO.net]
>>488
> 結論としてはインタフェースを変更するならテストコードも変更するんだろ?

インタフェース(仕様)を変更したいならテストコードを先に修正してから
バグが有るコードの状態にしてからコードを修正する。

これは一般的なTDDのやり方どおりだ。

502 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 11:51:19.80 ID:Sbqo4kno.net]
>>492
インタフェースを変更するならテストコードも変更するってことだな。

となると、インタフェースの変更はテストコードと本体のコードの両方の変更が必要になり
工数の負担が大きくなる。

503 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:02:21.37 ID:ZPhk/eMO.net]
>>493
何と何を比べてるのだ?

インターフェースを変更したときに、それを手動でテスト(全部をね)するか
テストコードで自動でテストするかだろ。

テストコードを書かなかったら、工数の負担はもっと増える。

504 名前:トの名無しさん mailto:sage [2016/06/04(土) 12:03:36.51 ID:gXar6Rt9.net]
あるいは更新されない仕様書とかね

505 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:03:44.99 ID:Sbqo4kno.net]
>>494
設計からやる場合との比較。
設計中の変更はテストにもコードにも影響しない。
テストを設計により先にやるならインタフェースの変更はテストにもコードにも影響する。

506 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:05:11.04 ID:ZPhk/eMO.net]
>>496
その3つだけで言うならば、
設計 → テストコード → コード
の順番だろ。

507 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:05:48.96 ID:Sbqo4kno.net]
というか、テストを設計により先にやるべきだと提唱してる人なんていないと思うぞ。
何か誤解してるのでは。

508 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:06:47.90 ID:ZPhk/eMO.net]
> テストを設計により先にやるべきだと提唱してる人

え? そんなこといい出した(>>496が初出)のお前じゃねw

509 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:06:48.91 ID:Sbqo4kno.net]
>>497
それって設計を先にやってるじゃん。
テストを設計の前に開始するって謎プロセスは何だよ?w

510 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:07:48.23 ID:ZPhk/eMO.net]
> テストを設計の前に開始するって謎プロセスは何だよ?w

何だよって言われても、それお前以外誰も話ししてないんですが?



511 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:10:26.85 ID:Sbqo4kno.net]
>>500
これはお前の書き込みかと思ってた。これについては同意しないと?
>>424
OOPや従来型の「しっかり設計してからコーディング」とはやり方が根本的に異なる。
デタラメでもいいからコーディングし、単体テスト/レグレッションテストの環境を構築してから

512 名前:
リファクタリングで目的のコードを得ることを目指す。つまり、事前に「完壁な設計」は必要ない。
[]
[ここ壊れてます]

513 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:11:48.26 ID:ZPhk/eMO.net]
>>502
日本語おかしい。

なんで他人の書き込みに「同意しないと?」
なんだよ、その「?」は?

514 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:12:14.17 ID:4uQe4rvn.net]
アスべですなぁw

515 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:12:20.56 ID:Sbqo4kno.net]
そもそもお前は何が主張したくて俺に絡んできたのか分からんわ。
主張したいことを明確にしろよw

516 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:13:12.05 ID:Sbqo4kno.net]
>>503
和田の意見なんだからお前は同意するんじゃねえの?
和田和田連呼してたのお前だろw

517 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:18:15.78 ID:ZPhk/eMO.net]
レベルが違いすぎるのかな?
なんでこんな基本的なことが分かってないんだろw

設計 → テストコード作成 → コード作成 → (必要ならリファクタリング →) リリース

↓ 数週間〜ヶ月後、仕様変更発生

再設計 → テストコード修正 → コード修正 → (必要ならリファクタリング →) リリース

※仕様変更があったら当然テストコードを変更するが、新しい設計に対応しやすいように
テストコード修正前に、コードのファクタリングを行うこともある。


だろ。

518 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:19:57.01 ID:ZPhk/eMO.net]
>>506
> 和田の意見なんだからお前は同意するんじゃねえの?

どれが和田の意見なんだよw
和田のブログか記事か書籍からの引用かそれ?

519 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:21:30.08 ID:4uQe4rvn.net]
つうかさ、外部仕様がテストコードで、内部仕様が実コードって見れば
外部仕様から固めていくのは普通の行為なんだけどね。

520 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:24:43.61 ID:Sbqo4kno.net]
>>507
当たり前過ぎて俺に対して何を主張したかったのか意味不明。
なんか知らんが当たり前だから反論はないよ。

>>508
和田信者だったら自分で確認しようぜ。俺はそいつを知らないし興味ないって言ってるじゃんw



521 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:26:48.20 ID:ZPhk/eMO.net]
>>510
> 和田信者だったら自分で確認しようぜ。俺はそいつを知らないし興味ないって言ってるじゃんw

だからお前は確認して無くて、

お前が引用した↓これが和田の発言じゃないってことに
気づいてないのかw 墓穴ほってるだけじゃんwww

> OOPや従来型の「しっかり設計してからコーディング」とはやり方が根本的に異なる。
> デタラメでもいいからコーディングし、単体テスト/レグレッションテストの環境を構築してから、
> リファクタリングで目的のコードを得ることを目指す。つまり、事前に「完壁な設計」は必要ない。

522 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:28:05.40 ID:ZPhk/eMO.net]
>>510
> 当たり前過ぎて俺に対して何を主張したかったのか意味不明。

当たり前のことに、お前が絡んできたんだろ

523 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:28:40.07 ID:U+sUBqw0.net]
>>461
同意。が、そのつもりはなさそうなので、特定しよう。

>>456, ID:Sbqo4kno
> >>1ってお前じゃないの?w
1の>>1(前スレの1)はお前だよな?
当たり前だが俺の発言中の>>1というのは前スレの>>1の事だ。他のみんなが言っている>>1もこの意味だ。

524 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:29:54.73 ID:Sbqo4kno.net]
>>511
だから知らないって。
>>424がそういってるからそうなのかねえってだけ。
興味ないから確認する気もないし、してない。
知らないと俺は認めてるのに「墓穴」って謎過ぎるwwww
だから知らないってwwwww

525 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:30:56.64 ID:ZPhk/eMO.net]
>>514
↓あきらかに墓穴だろw なにが「和田の意見」だよw

506 返信:デフォルトの名無しさん[sage] 投稿日:2016/06/04(土) 12:13:12.05 ID:Sbqo4kno [37/39]
>>503
和田の意見なんだからお前は同意するんじゃねえの?

526 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:32:08.06 ID:Sbqo4kno.net]
>>513
>>424はお前じゃん。
お前の書き込みが和田信者から疑われてるからちゃんと話し合えよ。
俺には関係ないから。

527 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:32:59.42 ID:Sbqo4kno.net]
>>515
>>424読めよ。
>>424がそういってるからそうなのかねえってレベルだって書いたろ。
ほんと大丈夫か?

528 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:33:49.35 ID:gXar6Rt9.net]
いやーおもしろいw

529 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:40:21.20 ID:U+sUBqw0.net]
>>516
分かった、>>424については後で説明を落とすから、まず皆が思っている疑問に答えろ。

前スレの>>1は、お前だよな?
そうならさっさとコテ付けろ。

530 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:42:09.54 ID:Sbqo4kno.net]
>>519
付けたきゃお前が付けろよ。
ばっかじゃねえのwwww

で、和田ソースは?



531 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 12:50:54.80 ID:gXar6Rt9.net]
単に引用符>がついてるかどうかじゃねーの?

532 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 13:21:09.88 ID:U+sUBqw0.net]
>>520
>>424は俺の解釈だ。そしてこれはこのスレの誰とも矛盾してない。お前が何か勘違いしているだけだ。
ソースは書籍のプロフィール欄なのだから、本人が書いたか、少なくとも本人の了解は取れているものだ。

もっと詳しく解釈すると、
> テスト駆動開発に「完壁主義の呪い(完壁な設計を得るまではコードを書けないし良いシステムも出来ないという強迫観念)」を解いてもらってからは、
> xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/%E8%91%97%E8%80%85/%E5%92%8C%E7%94%B0%20%E5%8D%93%E4%BA%BA
つまり、和田は「完壁主義の呪い」に嵌っていたんだよ。この点で、和田は「センス」のあるプログラマではない。
「センス」のある奴は、最初から完璧に設計しきってしまえる。OOPでやれと言われても大して苦労しない。

ところで、OOPは最初に完璧に設計しきってそれを実装して終わり、を目指している。
これは、万人が「『センス』のあるプログラマ」になることを目指している。(これは目標としては正しい)

ところが実際にはそんなことが出来る奴=センスがある奴なんてほぼいない。これは定義上そうだ。
10人中10人出来る場合は「センスがある」なんて言わない。10人のうち1人が出来るかどうかだから「センス」と呼ばれる。

533 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 13:21:24.82 ID:U+sUBqw0.net]
OOPにしてもそれ以前の「手続き型」にしても、「センス」に頼りきっているところはある。
「無能には設計させるな」というのがそれだ。(俺もこれを支持するが)
ところがこれは「無能=センスがない」だし、「センス」はそう簡単に鍛えられないから問題なんだよ。
そに対してTDDは「センスがない奴でもある程度何とかなる」という意味で画期的だ。(ただこれでいいのかという疑問はあるが)
そして和田はそれを認めている。つまり、自分に「センス」はないことを認め、TDDに飛びついた。
この時点で和田は実力があると言える。自分を客観的に判断できる時点で、実力はあるんだよ。

問題なのは>>1みたいにセンスもないくせにOOPにすがっている馬鹿なんだよ。
OOPも手続き型も関数型も結局の所プログラムの編集方針が異なるだけで、大差ない。
(というか俺にはそういう風に見えるし、そう言っている奴もこのスレにも多いだろ)
単純にどれを取ったら品質が上がるとか、テストが楽になるとか、そういうものではない。
それよりは、個々のプログラマの技量によって左右される部分の方が断然大きい。
つまりそれは「センス」なんだけど、従来の問題点はじゃあどうやって「センス」を身につけるのか?であって、
これに解がないから困っていたんだよ。

TDDは「(センスのない)万人がコーディングする時代」の実践的手法なんだよ。そこが違う。

C:センスのない奴はプログラミングするな
OOP:センスのない奴はセンスを身につけろ
TDD:センスがなくても何とかなる方法でやりきれ

分かるか?というか分かってない奴はお前だけっぽいんだが。
てか、お前こそTDD向きなんだよ。OOPじゃなくてね。

534 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 13:26:59.37 ID:ZPhk/eMO.net]
>>522
> ところで、OOPは最初に完璧に設計しきってそれを実装して終わり、を目指している。

目指してねーだろw

535 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 13:29:10.52 ID:ZPhk/eMO.net]
OOPは最初に完璧に設計しきってそれを実装して終わり、を目指しているというのが真なら、
OOPではTDDができないってことなってしまうし、
TDD信者はOOPを排除しようとするはず。

だけど、そうはなっていない。
むしろTDD信者はOOPを使ってる。

つまり、
OOPは最初に完璧に設計しきってそれを実装して終わりを
目指ざしていないということ。

536 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 14:04:05.25 ID:Ux1fTD3c.net]
>>477
重複の話と言うことも理解してないのか w

537 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 14:15:15.11 ID:U+sUBqw0.net]
>>525
それは結局の所、君の言うOOPは既に折衷案だからだ。
> 合わせ技というのは考えないのか?(>>428)

基本的には、トップダウン設計においては試行錯誤は悪なんだよ。
ただしどこまでトップダウンできるかはそいつの実力にも依るし、
そもそも細部までトップダウンすることが効率がいいのか?という疑問もある。
だから一般的なOOPだと骨組みまではクラスで組み、メソッドの子細は各クラスにお任せ、交換も可能、としてる。
もちろんメソッドの子細までトップダウンで設計しきってもいいが、
一般的なOOPに於いてはメソッドの実装はTDDしても問題ないと言われるだろう。(これも川俣晶は指摘している)

しかしクラスまでTDDして新規クラスが発生/消滅するようならOOP出来ないだろ?というのが君らの論争だろ。
そしてそれは川俣晶も既に指摘している(>>425)

TDDは最初から試行錯誤を織り込んでいる。
OOPは基本的に試行錯誤をせずに済ませようとしている。
ここが根本的に違う。
どの程度の折衷案を採るかは君のプロジェクトで自由に決めればいい。

お前ら、結局、言葉尻をつまんで自演したいだけか?少なくとも俺にはそう見えるので、以降は
ID:Sbqo4kno
ID:ZPhk/eMO
にはレスを付けない。
お前らと議論をする価値があるとは思えないし、お前らに議論できる知能があるとも思えない。

538 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 14:38:11.97 ID:iJ55/nuN.net]
>OOPは基本的に試行錯誤をせずに済ませようとしている。
こんなこと本気で思ってるとしたらその現場は地獄だろうな。。
絶対一緒に仕事したくないタイプだわ。

539 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 14:40:43.98 ID:Ux1fTD3c.net]
トップダウン?
ひょっとしてウォーターフォールのことを言ってるのか?

540 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 14:46:33.94 ID:i7cbgqH+.net]
和田って人は権威なのかも知れないけど、言ってる事に共感できんよ

TDDって言ってしまえば単なる要求の記述に過ぎないのだから、
契約プログラミングの一種として見ればいいだけだ

その場でモデリングしつつというのも別に全然駄目じゃないし、
それで不整合になるなら、そもそもの仕様がおかしいのだろ



541 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 14:47:47.76 ID:i7cbgqH+.net]
間違えた
そもそもの要求がおかしいのだろ

542 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 15:18:45.79 ID:ZPhk/eMO.net]
>>527
> そしてそれは川俣晶も既に指摘している(>>425)

川俣晶って、おまwww
川俣晶ってwwww

川俣 晶さんのスレッド
pc.2ch.net/test/read.cgi/prog/1004673171/
ってのがあったから見てこいよ。

笑う所をわざわざ持ってくるなよwww

543 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 15:19:53.15 ID:ZPhk/eMO.net]
>>527
> しかしクラスまでTDDして新規クラスが発生/消滅するようならOOP出来ないだろ?というのが君らの論争だろ。

そんな論争してない。

OOP + TDD は相性がいい。

544 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 16:19:19.31 ID:Sbqo4kno.net]
>>522
ソースがあるならソースだけを示せ。
ソースとお前の解釈を同時に述べると訳分からん。

545 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 16:25:44.35 ID:Sbqo4kno.net]
「○○が言ってるから正しい」って言う奴って自分には判断力も説明する能力もないって自覚してるよなw
ID:U+sUBqw0は和田がこう思ってるって言ったくせに後から「自分の解釈」だの言い出すし…w
「ソースなし夫」ってコテをつけてくれればそいつの書き込みは無視するからそうしてくれ。

546 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 17:40:51.25 ID:qjr7DQXX.net]
ファイルシステムやクラウドストレージなどなんらかの手段でBLOBを階層管理するコンポートのインターフェースやクラス構成はどう書くべきでしょうか?

547 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 18:00:00.33 ID:pn86qigp.net]
>>536
エクセルで

548 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 18:08:42.83 ID:ZPhk/eMO.net]
>>535
> 「○○が言ってるから正しい」って言う奴って自分には判断力も説明する能力もないって自覚してるよなw

全くだなw

川俣晶が言ってるから正しいとかアホかとw

自分の頭で考えて、自分と同じ意見を持っている人の中で
一番信頼できるやつの名前を持ってこいよ。

549 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 19:13:25.23 ID:pn86qigp.net]
俺も○○が言ってるから系のキャラは好きになれないな
ちゃんと自分の言葉で語るべき

550 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 19:23:41.43 ID:ZPhk/eMO.net]
最初に自分の言葉で語ってから、それを補足する形で
有名な人の言葉を引用するのは問題ない。
つまりソースを書いたってだけ。

今回はこのパターン

↓ (>>345
> テストのリファクタリングはするぞ?
> というか、テストコードが正しく動くかどうやって確かめると思ってるんだ?
>
> テストコードのテストを書く?そんなことを言い出す馬鹿が本当に居るから困りものだがw
> テストコードはテストコードでテストしない。その代わりにテストコードは人間が目視で読む。
>
> テストコードというのは基本的に、○○をしたら××になる。というシンプルな
> 形式になるので、ちゃんとしたテストコードであれば可読性は高く目視で読んでも
> 負担にならない。というか負担にならないようすることが必須。
>
> 略

>>345に対する反論(>>350
> テストコードのリファクタリング?
> テストコード書いたこと無いだろ w


>>350に対する反論(>>350
>>350
> お前が、和田卓人(t_wada)さんより優秀だと認めることが
> 可能な証拠があるなら信じてやるよw
>
> d.hatena.ne.jp/t-wada/20100228/p1
> テストのリファクタリング



551 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 21:40:29.11 ID:NEIO1PVo.net]
スゲー伸びてると思ったらまだテストの話してんの?

552 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 21:57:13.99 ID:i7cbgqH+.net]
>>536
Compositeパターン
他は好きにしろ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<386KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef