リファクタリングすると全部テストしろと言ってくる奴の矛盾2
リファクタリングすると全部テストしろと言ってくる奴の矛盾2
元スレ
1 :仕様書無しさん:2018/05/19(土) 18:05:57.63 .net
機能追加や変更した時に、全部テストしてるでしょ?
いつもやってることじゃん
前スレ
リファクタリングすると全部テストしろと言ってくるやつの矛盾
https://medaka.5ch.net/test/read.cgi/prog/1523765624/
104 :仕様書無しさん:2018/05/24(木) 18:58:55.64 .net
>>103
1. 俺の理解によるとマーチンファウラーは詐欺師である
2. 詐欺師は信用してはいけない
3. 詐欺師であることを見抜いた俺はすごい
369 :仕様書無しさん:2018/06/10(日) 12:35:52.36 .net
インターフェースを使うとバグが無いことが証明される
なんでかな?
376 :仕様書無しさん:2018/06/14(木) 20:58:25.98 .net
あ、未来のことなんか考えなかったからだね
未来の責任は放棄か
324 :仕様書無しさん:2018/06/09(土) 19:47:13.82 .net
94 :仕様書無しさん:2018/05/23(水) 06:49:30.06 .net
>>91
不確定要因をソフトにてんこ盛りにする奴が無能なだけ。
223 :仕様書無しさん:2018/06/08(金) 00:37:50.29 .net
>>222
インターフェースにはバグは無い
実装にバグがあるか
クライアントにバグがある
258 :仕様書無しさん:2018/06/09(土) 12:10:35.07 .net
例えばインターフェースが以下のようなものだったとしよう
interface Foo {
void method1();
void method2(int i);
}
この時、インターフェースを守っていなければ、
呼び出し側にバグがあるし
インターフェースを守っていれば、
呼び出し先にバグがある
プログラムでバグが発生したら、Fooのインターフェース
具体的には、method1を引数無しで呼び出しているか?
method2をint引数一つで呼び出しているか?
を確認すれば良い。
このインターフェースを守っていれば、呼び出し側にはバグはなく
呼び出し先にバグが有るということだ
122 :仕様書無しさん:2018/05/26(土) 13:14:13.69 .net
アルゴリズムを考える人より
アルゴリズムを特定の言語で実装するほうが
偉いに決まってるだろ
348 :仕様書無しさん:2018/06/09(土) 21:03:01.94 .net
215 :仕様書無しさん:2018/06/07(木) 20:38:41.72 .net
>>213
> なるよ
> それが契約というものなんだよ
> 契約はそうあれと定められたものだからね
根拠なしにそう言われてもなー
まずそう定められたものとか
嘘言わないで理由を言おうか
268 :仕様書無しさん:2018/06/09(土) 12:40:51.75 .net
やっぱりパソコンのたとえがわかりやすい
インターフェース使わない派は
メモリが壊れたらパソコンが壊れたものとしてパソコン全体を修理に出すしかない
パソコンとして結合してないとテストできないからどこが壊れたかもわからないのでぼったくられる
ひどい時は修理代が馬鹿にならんならいっそパソコン買い替えちゃうかともったいないことを言い出す
そそてメモリだけを高性能なものに替えたい場合でもパソコンを買い換えるしかない
インターフェース使う派は
メモリが壊れたらパソコンの部品を個別にテストしてメモリが壊れてると判断できる
メモリだけ買い替えればいいので最小限のコストでパソコンが復活する
メモリだけを高性能なものに替えたい場合は文字通りメモリだけを取り替えればいい
232 :仕様書無しさん:2018/06/08(金) 13:27:08.92 .net
163 :仕様書無しさん:2018/06/05(火) 23:11:55.06 .net
それは汚いままだともっと時間がかかってたんだよ
リファクタリングしたことによって被害が最小化した
139 :仕様書無しさん:2018/06/02(土) 03:08:10.24 .net
まさか、あのマー○ンファ○ラーがハゲとか誰も予想だにしなかったよね
314 :仕様書無しさん:2018/06/09(土) 19:07:31.20 .net
どうやってクラスAの中に埋め込まれているクラスBをテストするのか?
そりゃクラスBだけ取り出して、
テストすればいいだけでは?
269 :仕様書無しさん:2018/06/09(土) 12:42:01.12 .net
14 :仕様書無しさん:2018/05/19(土) 20:57:08.26 .net
アメリカのシステムインテグレーションなんて
ろくなもんないだろ
SIなら日本が最高だよ
357 :仕様書無しさん:2018/06/10(日) 00:33:37.26 .net
>じゃあ、型情報潰しちゃってるのにどうやって該当の処理まで飛ぶの?
作業対象の型も設定や命名規約からすぐわかるし全体からすれば極一部の動的なインスタンスだったとしてもログやファクトリーを見ればすぐにわかる
>インターフェース君はどうやってインターフェースの先を知らずに不具合を直すのだろう?
作業対象が依存してるのはインターフェースの契約でしかないのでインターフェースの先はもちろん知らなくていい
作業対象==バグってるクラス
381 :仕様書無しさん:2018/06/15(金) 08:03:25.86 .net
>>380
は?
それなんのためにやってるの?
設計書通りに組んだんだよね?
354 :仕様書無しさん:2018/06/09(土) 23:22:41.12 .net
>>347
じゃあ、型情報潰しちゃってるのにどうやって該当の処理まで飛ぶの?
っていうか君はインターフェースの先は知る必要がないって主張だから
不具合も直せないよね?w
86 :仕様書無しさん:2018/05/22(火) 08:04:05.58 .net
>>85
テストはできる。ただ時間がかかるから
コストも掛かるだけだ
62 :仕様書無しさん:2018/05/20(日) 06:57:35.34 .net
6 :仕様書無しさん:2018/05/19(土) 18:44:55.59 .net
そろそろリファクタリングよりもそれをする頭の悪い>>2自身が全ての元凶だって気がついた?
160 :仕様書無しさん:2018/06/05(火) 23:05:18.43 .net
綺麗なコードを書いてリファクタリングを繰り返したほうが楽に動くコードを維持できると思うんだが
311 :仕様書無しさん:2018/06/09(土) 18:57:25.28 .net
インターフェースは交換しやすいだけで
バグが修正しやすくなるわけじゃないんだな
351 :仕様書無しさん:2018/06/09(土) 22:45:58.47 .net
まぁ実際のところ、interfaceまでガッツリ作る業務は今まであったことないんだけどね。
大体abstractクラスが限界
36 :仕様書無しさん:2018/05/19(土) 23:58:46.61 .net
Amazonの評価とかでいいんやないか?
他にもっといい案があればよろしく
なければこれで
91 :仕様書無しさん:2018/05/22(火) 19:54:46.87 .net
コストがかかるとテスト回数を減らすだろ
テストってのは何回もやらなきゃダメなんだよ
1回だけじゃたまたまテスト通っただけかもしれんぞ
これは数学的にも正しいことが証明されてるから国外の大手機械メーカーなどは凄まじい回数のテストを繰り返す
125 :仕様書無しさん:2018/05/26(土) 14:50:11.14 .net
マーチンファウラーはRailsのActiveRecordの基本を考えただけ
それを実装したRailsの開発者のほうがすごい
そのActiveRecordを使いこなしている俺のほうがもっとすごい
やつはリファクタリングを考え出しただけ
使いこなしている俺のほうがもっとすごい
165 :仕様書無しさん:2018/06/05(火) 23:27:42.79 .net
上のコードなら3分で書ける
コードもシンプルで誰が見てもわかりやすい
リポジトリやらドメインサービスやらおバカなことをやりだすとクラスが一気に増えて意味不明になる
コーディング時間も10倍じゃ足らんくなる
世間一般で言う綺麗なコードを書くのは実は非合理的なんやな
コンサルさんはそれでお金貰っとるから綺麗に書かなアカンって洗脳しようと企んどるようやけど騙されへんで
286 :仕様書無しさん:2018/06/09(土) 14:43:48.21 .net
>>284
まだわからないかー
子供用の説明ならどうだ?
依存先を直接参照インスタンス化するのは一体型パソコンと同じ
メモリが壊れてたらパソコン全体が壊れてることになるんだ
パソコン全体を修理に出すか買い替えてね
依存先をインターフェースで切るのは組み立て型のパソコンと同じ
メモリが壊れててもパソコンが壊れたことにはならないんだ
メモリだけを交換してね
78 :仕様書無しさん:2018/05/21(月) 06:15:56.93 .net
212 :仕様書無しさん:2018/06/07(木) 20:09:57.82 .net
178 :仕様書無しさん:2018/06/06(水) 12:12:46.41 .net
233 :仕様書無しさん:2018/06/08(金) 13:41:45.35 .net
341 :仕様書無しさん:2018/06/09(土) 20:26:46.54 .net
>>337
整備のコストがもったいない
モック使うって発想はインターフェース肯定だぞ
222 :仕様書無しさん:2018/06/08(金) 00:31:57.52 .net
>>220
論点がおかしい。
いくらテストしても、バグがないことは証明できず
いざバグが発生したとなったときに、
インターフェースの呼び出し側に問題があるか
呼び出し先にあるのかわからないから
インターフェースの先まで調べないといけないって話だろ
392 :仕様書無しさん:2018/06/15(金) 19:05:31.85 .net
>>391
設計書はゴミだけど設計というプロセスは必要
設計した結果をコードとテストとしてアウトプットする
それらでカバーできない部分があれば別途図表や文章を用意するが設計書という体裁にはならない
後発の開発者やユーザーに対する解説書となる
239 :仕様書無しさん:2018/06/09(土) 08:59:12.38 .net
>>238
じゃ、どのクラスがバグってるのか言ってご覧よ
299 :仕様書無しさん:2018/06/09(土) 16:23:59.60 .net
ものによるね
インターフェースや抽象クラスでやるべきものを無理やり条件分岐にしたようなものは追う気しないね
実装クラス全部見るより大変だよ
90 :仕様書無しさん:2018/05/22(火) 19:40:20.09 .net
109 :仕様書無しさん:2018/05/25(金) 07:52:06.62 .net
ノルマこなした上でちゃんとテスト書くならリファクタリングしていいよって言われたから取り組んでるんだが
DB層が腐りきってるからどうにもならんという事に気が付いた
DB層を無視してDB層より上を綺麗にしようたってそうはいかないんだ
ビジネスロジックやプレゼンテーションロジックを大量に含む
テーブルやビューが複雑怪奇に絡まりあって何がどこにあるかさっぱりわからない
理解不能で長大なプロシージャが大量にある
どのアプリケーションがそのDBを参照してるかの資料すら無い
そんな腐りきった巨大な企業データベースをリファクタリングする体系的なテクニックって無いものか
404 :仕様書無しさん:2018/06/18(月) 23:00:21.08 .net
336 :仕様書無しさん:2018/06/09(土) 20:22:07.65 .net
>>334
> それを癒着というんだよ
言わない。ソフトウェア業界のどの文献を探しても
癒着なんて書いてあるものはない
勉強し直したほうが良いよ?
あんた自分の妄想の世界で生きてる
57 :仕様書無しさん:2018/05/20(日) 00:35:12.65 .net
>>51
そう、そこまで肯定してしまうと
彼らの虚業にも正当性ができてしまう
彼らははじめからかあるいはいつの時点からか
全く役に立たない技術をさも役に立つかのように
無料で公開し関連の商品で儲けるようになった
それの何が悪いのかと?
言われると何も悪くはない
273 :仕様書無しさん:2018/06/09(土) 12:53:38.99 .net
>>268
> インターフェース使わない派は
> メモリが壊れたらパソコンが壊れたものとしてパソコン全体を修理に出すしかない
その方がいい場合もあるよね?
例えばパソコンが動かない!どこが壊れたんだ?ってなった時
パソコンに詳しくない人はメモリかどうかを切り分けられない
どうせ切り分けないんだから、丸ごとメーカーに出したほうが良いし
メーカーも丸ごと交換したほうが安くて早い
それほど人件費は高い
92 :仕様書無しさん:2018/05/23(水) 00:20:00.32 .net
アプリケーションのリファクタリングは実はそんなに重要じゃない
データベースのリファクタリングしろマジで
205 :仕様書無しさん:2018/06/07(木) 08:21:56.25 .net
本当にインターフェイスから実装に飛べないやつなんているのかよ…
391 :仕様書無しさん:2018/06/15(金) 18:34:11.91 .net
>>390
だからって設計書書かないって
それノーガード戦法じゃね
240 :仕様書無しさん:2018/06/09(土) 09:01:03.39 .net
そもそも違いを知らなくていいように自分でしたのに特定なんかできるわけないじゃん
自分が何をやってるのかわかってる?
君が作ってるのはごった煮リストって言われる闇鍋
レスを投稿する(名前省略可)