1 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 23:08:42.31 ID:pIEuB3Z3.net] オブジェクト指向に限らず、理由もなく小さく細分化させるのはアホ オブジェクト指向は役割でオブジェクトに分割するものであって 処理で分割するものではない。
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パターン 他は好きにしろ
553 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 22:34:25.63 ID:pn86qigp.net] そうやって仕様も出さずに○○パターンの適用から考えちゃうとか もうプログラマから足洗って欲しい マジで害にしかならない
554 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 23:08:13.44 ID:Sbqo4kno.net] >>543 >>537 と同一人物だよな…?
555 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 23:18:59.84 ID:4uQe4rvn.net] オブジェクト指向にデザインパターン持ち出すのは何でなの? いつから設計思想とプログラム構造がゴッチャになっちゃったの?
556 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 23:43:14.57 ID:pn86qigp.net] そもそもデザインパターンはオブジェクト指向として適切なの? ってのと そもそもデザインパターンは設計として適切なの? ってのと そもそもオブジェクト指向は設計として適切なの? ってとこをちゃんと足場を固める必要があるよね俺ら 砂の上にお城を建てて喜んでる奴なんて馬鹿みたいじゃないか
557 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 00:46:56.23 ID:eiIG0jy5.net] >>546 @オブジェクト指向は設計として適切 反対するなら設計手法の代案を。 Aザインパターンは適切 デザインパターンは設計指針だからな。 Javaを初めとしてデザインパターンにしたがっている(Javaなどで成功したパターンをデザインパターンとしてまとめたのか前後関係はしらないが) 以上、設計指針としての有効性は実証済み。
558 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 00:49:23.14 ID:eiIG0jy5.net] >>546 オブジェクト指向で失敗してるのはオブジェクト指向設計を正しく利用できていないから。 オブジェクト指向設計は一般人には活用できないのでは?という質問なら同意するかもしれない。
559 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 00:58:02.73 ID:PAgdOZpu.net] なおオブジェクト指向を採用しているフレームワークには Railsだけでなく、様々なものが有る。 使いこなせない人は、落ちこぼれw
560 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 01:36:03.72 ID:8zGv30iU.net] >>547 どういう仕組みでどういいの? 俺らがソフトウェア開発(製造業)でできることは2つ 品質を上げるか、工数を減らすか オブジェクト指向は品質を上げる オブジェクト指向は工数を削減できる この2つのどちらも成り立たないとき オブジェクト指向はクソと認定できる
561 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 02:40:40.54 ID:MTgm06wQ.net] C++に限って言えば >オブジェクト指向は品質を上げる >オブジェクト指向は工数を削減できる は成立するか微妙 言語の仕様的に破壊的副作用をCLASS内に隠蔽した状態で実装できてしまう C++の破壊的自由度が破壊的方向に作用することがある これを回避するには、C++以外の自由度への制限が多い処理系なみの不自由さを受忍する必要がある 破壊的CのプログラムをC++の機能によって、我慢と工夫次第によっては色々な恩恵が受けられますよ な感じ
562 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 03:15:08.11 ID:eiIG0jy5.net] >>550 本に書かれてるから読んだら。デザインパターンの本にも書かれてる。 基礎すら知らない奴に説明するのはめんどくさい。 基礎すら知らないで批判するのはバカだからバカの相手はしたくない。
563 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 06:29:39.07 ID:YNBwuY3J.net] >>545 オブジェクト指向にデザインパターン持ち出すのは何でなの? いつから設計思想とプログラム構造がゴッチャになっちゃったの? オブジェクト指向が、日本に最初に広まったときからだと思う。 その悪影響がずっと続いて現在に至る。
564 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 07:14:25.23 ID:8YdCKwaE.net] 歴史的にはデザインパターンの方が後だと思うけど? プログラミング実装の分類整理の研究で出て来たのがデザインパターンだよ。 主にデータとプログラムの関係性につての研究だったかな? プログラミングをブロックを積み上げるみたいに行う方向を目指してた感じ? なので、デザインパターンやってればオブジェクト指向かというとそうでは無いし オブジェクト指向ならデザインパターンで実装しないといけないというものでも無い。
565 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 07:38:00.95 ID:8YdCKwaE.net] オブジェクト指向は、現実にある対象の複雑さをいかに捉えて、プログラムという別の表現系に写し取るかを研究して出来た考え方。 複雑に見えるものでも一つ一つは単純な機能の積み上げでしかなくて、それぞれを扱う仕組みや動作は幾つかの同じ概念に集約できる。 そうやって単純な機能に分けて考えましょうってのがオブジェクト指向。 現実をいかに単純な似たようなかたまりで捉えるかが主な目的。 ところが運の悪いことにオブジェクト指向の誤った解釈のせいかやたら隠蔽だのといって同じコードをみんなが他人に公開せず自前で用意する事態に陥る始末だった。 そりゃ生産性に逆行してる罠w
566 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 07:54:16.76 ID:8YdCKwaE.net] 朝から連投で申し訳ない。 ここまで読めばオブジェクト指向とデザインパターンは別々の考え方だってのが分かると思うけど でも、デザインパターンがオブジェクト指向の舌足らずになりがちな実装面での問題を解決してくれているって一面もあるんだよね。
567 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 09:03:17.23 ID:8zGv30iU.net] >>552 自分の言葉で説明できないの? そもそもそこに抜けがあったらデザパタはゴミなんだからね
568 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 09:16:17.51 ID:kjF/TSSS.net] デザインパターンなんて「実際に作ってる時によく使ってたパターンに名前付けてまとめた、名前付けたおかげで(それを知っている者同士なら)説明が省けて楽」ぐらいの意味しかないだろ 適所で使えば便利だが、何も考えずに乱用すれば逆効果にもなり得る 逆効果なケースしか見ずに全否定する無能も全肯定して乱用する信者も迷惑だ
569 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 09:33:04.83 ID:PAgdOZpu.net] >>556 いやさ、デザインパターンと共に歩んできてないの?って思ったんだが デザインパターンといえば、有名なのはこの本だよね。 https://en.wikipedia.org/wiki/Design_Patterns 出版は1994年。もちろん研究レベルではもっと前からあるのだろうけど、 それを言ったらオブジェクト指向ももっと前からある。 で、この本自体に書いてあったと思うけど、デザインパターンというのは 巷にあふれる(当時主流となりつつあるオブジェクト指向言語の)設計のパターンをカタログ化したもの。 サンプルコードはこれまた当時主流で勢いもあったJava言語で記述されていた。 (ちなみにRubyは1995年生まれ) 今から勉強しているような人は、デザインパターンがすでにあって、 それを勉強してオブジェクト指向を理解するんだろうけど、 俺とかは逆。オブジェクト指向言語を使っていて、こういう場合は実装しよう? こうやればうまくいいんじゃね?と考えていたことを、体系化したものがデザインパターン。 デザインパターンは書籍化された当時(1994年ごろ)の問題、つまりオブジェクト指向の問題を 解決するものであり、それよりも前からオブジェクト指向はあったのだから、別々の考えだし、 設計をカタログ化すると言うアイデアは、オブジェクト指向にかぎらないものと、 他の分野にも広がっていったのは、常識なんだが。
570 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 09:35:22.10 ID:PAgdOZpu.net] >>558 > デザインパターンなんて「実際に作ってる時によく使ってたパターンに名前付けてまとめた、 > 名前付けたおかげで(それを知っている者同士なら)説明が省けて楽」ぐらいの意味しかないだろ 知ってる者にとってはその通り。俺とかデザパタ本を、 やっぱりこんな感じで実装するんだねとか、 こんな抜け道が有るなとか、こうやって解決すればいいのか などと自分の経験と重ねながら読んでた。 でもそういった経験がない人にとっては「よく使っていたパターン」が無いわけだから、 新しい技術を勉強するといった扱いだよ。
571 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 09:37:21.20 ID:PAgdOZpu.net] >>545 > オブジェクト指向にデザインパターン持ち出すのは何でなの? > いつから設計思想とプログラム構造がゴッチャになっちゃったの? 今でこそデザインパターンはオブジェクト指向に限らない概念になったが、 そもそもデザインパターンは当時の問題である 「オブジェクト指向における設計手法」をまとめた本。 だからオブジェクト指向にデザインパターンを持ち出すのは当たり前の話。
572 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 09:40:19.17 ID:PAgdOZpu.net] ちなみに、オブジェクト指向が普及する前の技術を カタログ化したものは、アルゴリズムと呼ばれていた。 昔は構造と呼ばれるようなレベルに発展しておらず、 処理レベルの話で終わっていたからだ。
573 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 09:45:01.70 ID:PAgdOZpu.net] >>555 > ところが運の悪いことにオブジェクト指向の誤った解釈のせいかやたら隠蔽だのといって同じコードをみんなが他人に公開せず自前で用意する事態に陥る始末だった。 おまえ、オープンソースが正しいオブジェクト指向だとかいいそうだなw 隠蔽と言ったって、それはあくまでオブジェクトから見た時の話で、 ソースコードは(オープンソースじゃないだけで) 関係者なら誰でも見れるって、たとえプライベートメソッドであったとしても。 自前で用意するとかいうのは、隠蔽されてるからじゃねーよ。 アホかw
574 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 10:22:15.35 ID:vibNsuKz.net] 型システムが貧弱で、抽象化の手段がOOくらいしか無い言語を使うとデザインパターンの出番増えるよ。
575 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 11:17:38.97 ID:+OMR19AC.net] 書籍以外で絶賛してる奴を見たことがないし そもそも仕様書や構成図から見えないクラスがいきなり登場してるのも ビジネスだと説明できない
576 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 11:27:09.25 ID:eiIG0jy5.net] >>557 オブジェクト指向すら知らない奴に説明するのはめんどくさ〜い。 知らないくせに批判するバカだとなおさら。 オブジェクト指向についてちょっとでも興味があって本を読めば書かれているから。 知らない=本すら読んでない。 知らない概念を批判するってすごいバカだと思わない?
577 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 11:31:27.48 ID:eiIG0jy5.net] >>559 「サンプルコードはこれまた当時主流で勢いもあったJava言語で記述されていた」 え?え?? Each pattern also includes code that demonstrates how it may be implemented in object-oriented programming languages like C++ or Smalltalk. って書いてあるけどwwww 読んでないのに語るなよ恥ずかしいからwww
578 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 11:34:33.87 ID:eiIG0jy5.net] >>562 アルゴリズムとデザインパターンは全然違うぞ。
579 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 11:39:37.67 ID:eiIG0jy5.net] >>565 Javaの標準APIのあちこちにデザインパターンが出てくるんだけど…。 評価うんぬんじゃなくて、そこにあるもの。 デザインパターンを理解していないとどうしてそんな構成になっているか理解できない。
580 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 11:
] [ここ壊れてます]
581 名前:46:21.88 ID:L71HvcLp.net mailto: デザパタって優秀なエンジニア達の良い設計に見られる共通項をパターン化したものだよね [] [ここ壊れてます]
582 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 12:00:30.99 ID:+OMR19AC.net] >>570 その「優秀」が怪しいって言ってるの それでも地球は回ってるわけで
583 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 12:03:32.73 ID:eiIG0jy5.net] >>571 >>565 みたいなことを言っちゃう奴に理解しろと言っても無理なのはまあ分かる。 素人には難しい。
584 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 12:34:18.99 ID:L71HvcLp.net] >>571 そうか・・・信用できないなら仕方ないね 僕は先人達の英知を無駄にはしないけどね
585 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 12:35:32.63 ID:3IJ+HIal.net] >>571 ある特定の場合に役に立つってだけなので理解できないなら使わないほうがいいし使っても見当違いな使い方してデザパタは使えないとかいう馬鹿が生まれるだけ
586 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 12:37:23.17 ID:8YdCKwaE.net] >>563 実際にオブジェクト指向を曲解して工数がべらぼうになった某携帯電話の共通化プロジェクトってのがあってだなw
587 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 13:07:21.68 ID:kjF/TSSS.net] 勘違いした馬鹿がやらかした失敗例を元に、他に成功例が多数存在する手法すべてがダメだと断じるのは やらかした馬鹿と同じレベルの馬鹿の思考パターンよな、普通は失敗例と成功例を比較して使い所を見極めるものだと思うんだ >>559 4人のギャング共が最初にデザインパターンをまとめたのはJavaの登場より少し前だよ Javaで書かれたサンプルが多いのは、Java登場が1995年でたまたま注目された時期が被ったに過ぎない