TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
労働者派遣法は無視
職業訓練校プログラミング終了後 3
初心者プログラマーの寺子屋 #2
東京コンピュータサービスグループ総合 Ver2
幸か】SEやPGから他業界へ脱出した人のスレ1【不幸か
29歳独身SESの悩み
2020から小学生にプログラムの授業
お前らがプログラム書いているときに聴く音楽
東京コンピュータサービスグループ総合 Ver2
この世界が神のシミュレーションプログラムなら

リファクタリングすると全部テストしろと言ってくる奴の矛盾3


1 :2018/10/29 〜 最終レス :2018/11/09
機能追加や変更した時に、全部テストしてるでしょ?
いつもやってることじゃん

よくある応答のパターン

1. 必要もないのにリファクタリングを勝手にやるな
⇒ 客などから修正を要求するときに行うので、勝手にやることはありません

2. 修正の指示は出したがリファクタリングの指示は出してない
⇒ 修正工程の一つに含まれる作業なので修正と分離することは不可能です

3. リファクタリングすると動きが変わるだろ
⇒ 動きを変えないのがリファクタリングです

4. リファクタリングしたら全部テストしなきゃならないだろ
⇒ 修正しろと客などから言われたんだから修正するしか無い
どちらにしろ全部テストするんだろう?


前スレ
リファクタリングすると全部テストしろと言ってくる奴の矛盾2
https://medaka.2ch.sc/test/read.cgi/prog/1526720757/

2 :
え?でもやっぱり今回の改修で他の機能までバグるのはおかしいですよね?

共通ルーチン?
なんで分けて改修しないんですか?
テスト全部やり直してくださいよ

もう一回やったら訴えますよ

これが現実
震えて眠れ

3 :
> 共通ルーチン?
> なんで分けて改修しないんですか?

分けて二箇所改修する意味は?

4 :
え?でもやっぱり今回の改修でバグは治ったんじゃないんですか?テストしたんですよね?

テストはした箇所は治っていました。ですが似たような箇所で同じような計算をしていて
そちらは治っていませんでした。軽く検査した所、同じような計算が10箇所ありましたので
その改修とテストに今回の10倍の時間と費用がかります。

5 :
>>3
片方は問題ねーから

6 :
なんで共通化しないんですか?


それはね。あなたから開発費をせしめるためですよ


 

7 :
>>5
共通ルーチン使っていて、片方は問題ないなんてありえないよ
どういう場合にそうなるんだよw

8 :
片方問題がなかったら、それはもう設計時点の問題だな
違う処理であるべきなのに、同じ処理にしてしまったんだから

9 :
>>7
え?想像力がたりなさすぎない?

一つは精度が必要なときとかfloatで十分、doubleでないとダメ
条件が特定のルーチンしか通らないとか

いくらでもあるぜ
お前一つも浮かばなかったの?
プログラマやめちゃえよ
設計なんか語るレベルにないじゃん

10 :
> 一つは精度が必要なときとかfloatで十分、doubleでないとダメ

修正内容が「精度を上げたい」なら共通関数を変更するべきだが、
「一箇所だけ精度を上げたい」ならば、そのときに分ければいいの

おかしいでしょ?精度を上げたい箇所を明確にしないまま作業するなんて
まず先に精度を上げたい場所がどこかが決まる。

そしてそれはリファクタリングではなくて単なる仕様変更
一箇所だけ精度をえるという仕様変更

その違いもわからないなら、プログラマやめたほうがいいよ

11 :
>>9
> 条件が特定のルーチンしか通らないとか

設計が破綻してる

func() { A処理 and B処理 } があって?
一つは、A処理 B処理 両方通って
もう一つが A処理 のみしか通らないなら

func 内部で条件フラグとかで分けるんじゃなくて
呼び出し側で、A処理を行うA() と B処理を行うB() を呼び出す
もう一つは、A処理を行うA() のみを呼び出すの

クソコードによくある。長い関数でグダグダやっていて
特定の場合だけ処理を分けたいから、フラグを追加してフラグみて
片方だけ実行とかね。ほんとコレ、クソコード

12 :
>>9
> 条件が特定のルーチンしか通らないとか
そもそも言ってることがおかしくない?

func() { Aルーチン and Bルーチン } があって条件が特定のルーチンしか通らないんでしょ?
片方は Aルーチン と Bルーチンの 両方を通る。もう片方はAルーチンのみを通るということだ

修正箇所がBルーチンなら片方は修正されるし、もう片方はそもそも通らないのだから関係ない話

だからAルーチンが修正箇所ということになるが、
「条件が特定のルーチンしか通らない」とはどういうことだ?
両方共、修正箇所のAルーチンを通ってるではないか?

13 :
一言で言うならば共通関数の中に、
AルーチンとかBルーチンのようなエリアができてる時点でクソ

14 :
「精度上げてっていったのに上がってないんだけど?」

この関数は上げましたよ?でも他の部分がfloatのままなので
他に渡すときにfloatに変換されますねぇ
他の部分を変更しろとは言われてないしーwww

15 :
>>13
それな

16 :
たいていけんか腰のやつって中身のない議論するんだよなあ

17 :
>>13
これに尽きる

18 :
共通関数があるとしてfloatかdoubleにコードを統一できないなら
単にfloat版とdouble版の関数を作るだけだろ

例えばこんな感じに

https://linuxjm.osdn.jp/html/LDP_man-pages/man3/clog10.3.html
> double complex clog10(double complex z);
> float complex clog10f(float complex z);
> long double complex clog10l(long double complex z);
>
> 他の関数は同じ機能を持つ float 版と long double 版である。

何かを修正するのと、新しく精度違う版が必要になった(機能追加)のを
ごっちゃにするんじゃねーよ

19 :
>>18
じゃあ、そういう修正が入っても既存は一切いじらないって主張でいいんだよね?

20 :
>>19
まず「そういう修正」の中身を明らかにしようか?

floatをdoubleに変えるのは"仕様変更"である
リファクタリングは仕様を変えないものなのだから
仕様を変えると言っている以上、これはリファクタリングではない

リファクタリングなら当然既存を修正する
繰り返すが、既存を修正する

お前が言ってる「そういう修正」の中身は
「他の処理は変えずに一部分だけ精度を上げるという仕様変更のための修正」だ

21 :
え?でもやっぱり今回の改修で他の機能までバグるのはおかしいですよね?

リファクタリングもしたからバグったって?

いやいや、リファクタリングをは動きを変えないものだから
それでバグるわけ無いでしょ?

改修内容を間違えたんですよね。一部分だけ修正しろと言ったのに
全部修正したんですよね?リファクタリングのせいにしないでください

もう一回うそついたら訴えますよ

これが現実
震えて眠れ

22 :
>>21
まあ、人間である以上いじったらバグる可能性は残るんだよ
君は信用できない

23 :
ウチとエンドの客の受入れ試験のお金も君が出してくれるならその範囲を変更してもいいよ
って普通に言われるだろ
仕事はお前だけが回してるわけじゃない
小さい会社でばっかり組んでるとヤバイな

24 :
>>23
修正する以上、テストするだろ?
リファクタリングは修正に関する部分しかしないんだから
テストの工数はすでに計上済み

25 :
>>22
> まあ、人間である以上いじったらバグる可能性は残るんだよ

だから修正範囲のテストをするんですよね?
それとも修正をするなと?
客から言われてるのに?

26 :
>>25
え?だからお前のはいらんとこに手を広げて関係ない機能まで修正入るんだろ?
共通処理使ってるからって理由だけで

27 :
>>26
何度も言うが、リファクタリングは動きを変えないものなんだから
共通処理を変えた所で動きは変わらない

修正内容が共通処理部分なんだろ?
ならリファクタリングしなかったとしても共通処理を修正するだろ
ということでここからはリファクタリングとは関係ない話だぞ


なら共通処理を修正するなら、テストもするわけだ
共通処理をコピーしたとしても、テストの数は変わらない
俺はあたり前のことしか言ってないぞ

28 :
リファクタリングといいながら、リファクタリングとは
関係ない話ばっかりしてるんだもんなぁw
あきれるよ。


単に共通処理を修正(仕様変更)する時、
コピーして修正(仕様変更)するか
コピーせずに修正(仕様変更)するの話じゃんか

29 :
>>27
動き同じでも触ったらテストするんだよ
おk?

30 :
今回の修正で共通処理をいじったんだな?
ちゃんと共通処理のテストをしたのか?

共通処理の中は、エリアが2つに分かれていて、
今回の修正で影響がある部分はテストしました

どういう意味だ?

今回のテストは共通処理の中のエリアBを通りますが、
他の部分からエリアBを通る部分はないはずです。
だから他の部分は影響がないはずです。

だから共通処理を修正しましたが、共通処理自体のテストはしてません
今回の修正内容に関する部分だけテストしました。


テストやり直しな

31 :
>>29
> 動き同じでも触ったらテストするんだよ

そこは今回の修正対象ですよね?
なら最初からテストするに決まってるじゃないですかw

32 :
>>27
動きが同じってどこまで?
メモリの使い方も同じなの?

33 :
>>31
いいや
お前のはやらなくていい範囲まで手を出してるよね?

34 :
>>33
やらなくて良い範囲は手を出しませんよ?
何いってんの?

今回の修正する範囲、テストする範囲しか
リファクタリングしませんwww

35 :
>>33
まさか、共通処理を修正しているくせに
共通処理の一部分は通らないはずだから
テストしなくていいとか言ってんの?www

36 :
>>32
> メモリの使い方も同じなの?

メモリの使い方が仕様に明記されてるならその通りでしょうね
(明記されてないなら何が正しいかも決められないわけで、
正しいことをテストできない)

37 :
>>35
だから俺はしない
分離しちゃう
リファクタリングなんてソースの修正範囲を広げる愚行などもってのほかだ

38 :
>>36
動作は変えないんじゃなかったのか?

39 :
>>37
> だから俺はしない
> 分離しちゃう

だからリファクタリングの話関係ないじゃん

バグ修正の場合も分離するの?
あちこちでバグ起きてるんだけど?

40 :
>>38
> 動作は変えないんじゃなかったのか?

動きを変えないということは、
ソースコードをコピーしたりしてもだめだっていうのはわかってる?

41 :
訂正
× 動きを変えないということは、
○ メモリの使い方を変えないということは

いかなる修正を行っても、メモリの使い方は
変わるから・・・お前すべてのテストをしろって言いたいの?

42 :
>>39
リファクタリングとは関係ない話だけど
ソースコードコピーしたら、その分テスト工数が増えるじゃん

43 :
リファクタリング否定派だと思っていたら、
まさか関数否定派だったとはw

共通処理禁止、コードをコピペして使え
バグが見つかったら、コピペした物すべて
探し出して修正しろ。そして全てテストしろ

44 :
曲解ばっかりだな
リファクタリングなんてまともな職場なら許可なんて下りるわけない

45 :
有名ソフトウェア企業はすべてリファクタリングの許可が降りてるのに?

46 :
たいていというかほぼ全てがリファクタリングに取り組んでいるよな

やってないところはCOBOLに関係がある分野ぐらいか・・・
まあ、あそこは文化が違うからな

47 :
まあそもそも許可とってやるもんじゃないし。
「修正」の中に含まれてるもんだからね

48 :
>>47
は?
理由もないのに内部の造りまで変えたソースなんて品証通るわけねーだろ
コードレビューナメてるのか?

49 :
>>48
テストしてるから通るよ
ってか、なんのためにテストしてるの?

50 :
むしろ汚いコードで、コードレビューやれるのかって話だよなw

51 :
コードレビューは難しいコードを何人もの人が何時間もかけて
解読する作業なんです。

チームの仲間が暗号コードを作成し
別の人が暗号コードを解読する。
それがコードレビューなのです。

そういう不毛なことをして喜んでいるんです。

52 :
>>49
通る?
なぜ?
テメーの不必要な変更で増えた分のお客の受け入れテストの金と時間はどこから出るの?

53 :
俺も新卒のとき自分の作業しか見えなかったな
そのままおっさんになってるようなのは痛い

54 :
>>52
だすもなにも、逆にコスト減るからなぁ

クソ汚いコードを何日もかけてコードレビューするのにくらべたら
綺麗なコードはほんの数分で終わってしまうこともざらにある

55 :
汚いコードをばんって出されて、
このコードが正しいかどうか見てください!って言われても
コード汚いとそいつが作業した時間以上にかかるんだよ
コードレビューやるのにどれだけ時間がかかると思うのか

56 :
許可なく自由にコードいじれるって凄いねw
自由な社風って素敵やん

57 :
リファクタリングは動きを変えないので
テストはいまあるテストコードをそのまま流せばいいだけ

だからリファクタリングのコードレビューは、
単に自動テストが変更されていないかを確かめるだけでよい

必要なのは本質的な仕様変更に対する修正
この修正がリファクタリングされてないと複雑な修正になってしまう
リファクタリング後だと簡単な修正で済む
コードレビューも楽になる

58 :
>>56
仕事を任せられるっていうのはそういうことやで

許可無いと仕事させてもらえないなら、
お前はその程度ってことだ

59 :
無駄な改行までしちゃってw
煽りたくて必死って感じかな?

60 :
お前はその程度ってことだ(キリッ

61 :
とうとう捨て台詞w

62 :
相当悔しかったんだろw
そういう奴にはコレを言ってやれ

お前はその程度ってことだ

63 :
早速コピペwww

使い捨てにされるってのは所詮そこまでの奴
俺ならそいつにこう言ってやるね

お前はその程度ってことだ

64 :
オウム返しは負け犬の証ですよ

65 :
誰もオウム返してないってw

66 :
リファクタリング肯定派なんてこの程度の集まりか

草ばっか生やしちゃってさ・・・
がっかりだよ

67 :
反対派が何も言い返せなくなったんじゃんかw
言い返せることがあるなら言い返せばいいんだぞ
話ならいくらでも続けてやる

68 :
まず、リファクタリングといいながら
仕様変更というリファクタリングとは関係ない話に
すり替えようとしたのは何故だ?

そしてテストする箇所が増えるのに
コードをコピーするのは何故だ?

69 :
意味もなく煽る
無駄に改行
とにかく草

これがリファクタ厨

70 :
ほらこれだ

71 :
技術者としての向上心を捨てるって、こわくない?

72 :
もっと怖いのは、会社が技術力を必要としなくなったときだな
そこで働いているのはひたすら奴隷よ
替えのきく奴隷

73 :
ほらな
話すりかえてすぐ逃げる

74 :
仕方ないよ。リファクタリングを理解できない程度なんだから

75 :
うーん?
リファクタリングなどの技術力って基本的にポータブルなスキルだから、会社がどうこうは関係ないよね。

76 :
ただのコードの整理を理解もくそもない

77 :
つぶしがきく技術ってことだな

78 :
>>74
>>69

意味もなく煽る
お前のことだよ

79 :
一人で自作自演してw
極端すぎるからお前の意見なんてまともなやつなら同調しねーよw

80 :
うるせーよ。いいからお前はリファクタリングは
意味がないに同調してればいいんだよ

81 :
このスレ見てからリーダブルコード買って読んだんだけど
あんなのは労働基準も社内ルールも全く違う国の夢物語
いまだ縦社会の日本じゃ到底実現不可なのが現状だよ

82 :
そうか、やはりリーダブルコードの世界が "夢" なんだな

83 :
>>81
大手ゼネコンの多重受けみたいな場合でもなければ融通は効くでしょう
環境のせいではなく不勉強で過去の踏襲しかしないタイプのリーダーしか居ないことが本当の問題
彼らは比較的自由にできるチャンスがある案件でも日本風のやり方しかできない

84 :
そもそも、リファクタリングで同じものができるなんてのは幻想。
絶対に体外的な仕様に影響がでる。

この事実を理解しいいないバカがリファクタリングすると大変なことになる。

85 :
> そもそも、リファクタリングで同じものができるなんてのは幻想。
> 絶対に体外的な仕様に影響がでる。

でるわけないじゃんw

リファクタリングで使用するテクニックは
動きが変わらないと保証されてるものばかり

数学の式の変形とやってることは変わらん

86 :
でもテストはやれよな
いじったとこの影響範囲全部

87 :
>>86
基本的には元々あるテストを流すだけ
ベンチマーク追加して、リファクタリングの有効性を示すことはあるけど

88 :
>>87
元々あるテストを流すだけってなんや?

何十人も動員して、エクセルに書いたテスト仕様書の
通りに実行してテストするんやで

テスト仕様書が曖昧で、毎回これどういう意味ですか?って聞かれるは、
人によってやり方が微妙に違うわで、正しくテストしているか不安だから
同じテストを何人も使って行うんやで

どれだけ金がかかってると思う?
コストがかかるから一年に数回しかできない
その数回で確実なテストを行うんだ。

これが真面目な仕事ぶりっていうもんや
根性見せろや

89 :
>>88
だよね
明らかに作るより金かけてるもんね
テスト流すだけって頭おかしいわ

90 :
>>89
はいキチガイ

91 :
>>90
社会に出ろよボーヤ

92 :
>>91
え、ポチッとボタン押すだけのことがそんなに難しいの?

93 :
>>92
それ単体だけだろ?
結合とシステムテストは?

94 :
>>92
www

95 :
>>93
ニートおつ

96 :
>>88
どうやら30年前の世界に生きてるやつがいるようだ

97 :
30年前の世界を知ってる爺
50代スレに戻ってどうぞ

98 :
>>93
> 結合とシステムテストは?

どういう意味?

結合とシステムテストでバグが一つでも見つかったら、
修正しなきゃいけないってことで、
修正するならば、全部テストやり直しになるので
結合とシステムテストでは原則バグは見つからないという前提

それでもバグは見つかるので、
全部テストするコスト×数回分がテスト全体のコストになる

どれだけ高額になるかわかるだろう?

全部テストっていうのはそれだけのことを年数回やっている

99 :
そのテストを自動化すれば、膨大なテストコストが削減できて、
信頼性も高いテストになりますけど?

100 :
>>98
じゃあなんで動いてるコードいじったの?バカ?


100〜のスレッドの続きを読む
元請け VS 下請け 技術力が高いのはどっちなの?
【初心者】基本の基本【はまずここ】
☆☆★プログラマで簿記1級持ってる奴
まともなプログラマってどのくらいの割合でいる?
「夜の」を付けて卑猥な感じにするスレinマ板
プログラミングに適したOSはWindows10かMacOSXか?
面接に来たすごいやつ晒せ
【経済】料金以上に開発するな【損失】
プログラマーになってよかったと思うこと
【Cocoa】Macプログラマのスレ【Objective-C】
--------------------
安物ダサブサ歓迎★並未満の外見の人限定オフ★3
ユニコーン/UNICORN★226
メダルゲームで負けたらちんちん振り回すスレ
【バーチャルYoutuber】にじさんじ有ンチスレ8350【複垢低評価ガイジ粛清記念スレ】
劇場版クレヨンしんちゃんの至高は「暗黒タマタマ大追跡」だよな!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! [195135844]
iHerbのコスメ 15
え!?本州JR3社で新快速走ってないのは東だけ?
【AEON】イオン Part136
完全に逃げ遅れた者達が集うスレ
■ロコの偽物=コテトリップ付けた輩&名無しの輩■
【GSOMIA問題】発端は日本政府が元徴用工をめぐる韓国最高裁の判決に対して真摯に向き合わなかった事にある-赤旗
モンストやってる喪女 ランク5
【絵描き専用】何が何でも大手になりたい【オフ専用】◆6484
卍卍法科大学院は殺し合いの場卍卍
大阪北摂の土人
【GFO】ガールフレンド(♪)176小節目
語尾に「ですわー」を付けるとお嬢様になれるぞ。  [571598972]
株式会社 キョウデン その3
既婚男性/既婚女性の雑談(双方質問)スレ424
怪盗ラレロ
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼