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

■ このスレッドは過去ログ倉庫に格納されています
2018/04/15(日) 13:13:44.63
機能追加や変更した時に、全部テストしてるでしょ?
いつもやってることじゃん
2018/04/19(木) 16:40:47.18
リファクタ厨はその時々でリファクタリングの定義を変えるので話にならない
正反対のことを平気でメリットとして主張してくる
2018/04/19(木) 20:32:34.99
>>144
わからないことや見えないことを逆に肯定理由にする
宗教家と同じ手口だな!
2018/04/19(木) 21:36:48.00
ある程度経過したコードは捨てろ。
リファクタなんぞせず。

さらにある程度経過したシステムは捨てろ。
リファクタなんぞせず。
2018/04/19(木) 21:39:51.72
>>151
実装は変えるけど、処理の内容は変えませんよw
処理の内容っていうのは、1から1000までの数を足すとかいうことです。

forループを使うとか、計算式を使うっていうのは
実装であって処理の内容じゃありません
2018/04/19(木) 21:40:23.43
>>152
> 難解なコードを読み解いて修正前に正しく把握するのは難しいという主張?

違う。時間がかかるという主張
2018/04/19(木) 21:45:12.79
コーダーの時間が現実のリスクとのトレードオフに値するだろうか?
159KAC
垢版 |
2018/04/19(木) 21:49:39.33
>>157
解読せずにリファクタリングすると酷いことになるだけだぞ?
2018/04/19(木) 21:52:17.10
>>156
どのように実装するかというのが処理の内容だから
リファクタリングで変更しないのは外部仕様な
内側は変えていいんですよ
2018/04/19(木) 21:56:06.09
改修のためのリファクタリングって15年前ぐらいの考え方
今さら熱く語るようなトピックでもない
2018/04/19(木) 21:57:46.81
>>159
> 解読せずにリファクタリングすると酷いことになるだけだぞ?

リファクタリングする時に解読しないなんて誰が言ったの?

そもそも解読が必要になってるのはリファクタリングしてなかったからなんだが、
まあそんなこと言ってもしょうがない。過去の話だ。

今手元にあるのは解読が必要なほど複雑なコード
リファクタリングをしないということは、複雑なコードをそのままに
さらに複雑にする行為。それをレビューしてもらったって、できるわけがない。
なにせ解読が必要なほど複雑なコードなんだから、

そして、せっかく時間を書けて解読しても、その解読をコードに反映させないなら
次回修正する時にまた時間がかかる。そして次回修正はそんなに先のことじゃないかもしれない
なぜなら複雑なコードをさらに複雑にしたのだから、デグレのリスクも高い


せっかく時間かけて解読したのだから、それをコードに反映(リファクタリング)させましょう。
読むのは時間かかるが、書くのは大して時間はかからない。
そうすれば、リファクタリングしなかった場合の時間がかかるという問題が解決できる。

何回も同じこと言ってるんだけどなw
2018/04/19(木) 22:01:18.70
あと解読するときも、最初から最後まで想像して解読するよりも
簡単なところから一歩ずつやったほうがいいよ
2018/04/19(木) 22:06:50.19
>>161
リファクタ病患者の闘病のために必要
2018/04/19(木) 22:07:26.56
>>164
君みたいに突っかかってるやつのためだよw
2018/04/19(木) 22:11:04.54
まったり普通にまともなこと言っても誰も相手してくんないし
2018/04/19(木) 22:23:27.27
本質的に複雑なものはどうやったって複雑なので、考えるべきは複雑さをどこに押し込めるかだ
複雑な処理もリファクタリングすればシンプルになると信じてる奴は、まあ本質的には簡単なことしかやってないんだろう
例えば、SQLがわからないユーザーのために、DBにUIを提供するだけのCRUDアプリとか
2018/04/19(木) 22:25:12.05
関数レベルのリファクタリングじゃ抜本的な設計改善にはならないからなぁ
やらないよりはやった方がいいけど、まぁ趣味の話だな
2018/04/19(木) 22:29:02.98
>>167

> 例えば、SQLがわからないユーザーのために、DBにUIを提供するだけのCRUDアプリとか

あんたは複雑なことをしたいのかもしれないけど
仕事なんだから客が求めるものを作るべきでは?

客は本質的に複雑なものばかり、求めてるんですか?
客が求めてるものは簡単なものばかりですよ。
2018/04/19(木) 22:34:00.95
>>168
設計ってどこまで含んでいってる?
クラス設計は? どういうメソッドが有るとか
どういう階層をしているかとか
2018/04/19(木) 22:36:08.75
データベース設計なら、まんまデータベースリファクタリングって
本があるけどもう売ってないな
2018/04/19(木) 22:48:51.20
>>169
本質的に簡単なことって、頑張れば誰にでもできるじゃん?
実際、キャリアの少ない若手プログラマだって、先輩やらの手助けを受けつつもちゃんと動くコードを書いて納品してるわけで

たかだか数年の経験しかないプログラマにでもやれなくはない程度の仕事を、ああだこうだいって多少整理された状態に
持っていくのがお前の言うリファクタリングでしょ?
まぁ誰かがやらなきゃいけない仕事なんだろうけど、それって汚いコードを書く奴の尻拭い以上のものではないし、
ドヤって語るほどのもんでもないように思うけどなー
2018/04/19(木) 23:02:09.88
改修後に予定されているテストでカバーできる範囲でリファクタするというのは
ひとつの答えのようにおもえる

あとはリファクタしたほうが本当にましになってるのかという問題
2018/04/19(木) 23:05:48.73
>>172
> 本質的に簡単なことって、頑張れば誰にでもできるじゃん?

本質的に簡単なことって、頑張れば(=コストと時間をかければ)誰にでもできるよ?

でもそれじゃだめだよね
コストと時間がかかってるんだから
2018/04/19(木) 23:05:50.09
リファクタじゃなくてリジェクト
2018/04/19(木) 23:07:11.05
関係ないけど安定した共通化部分から
関数抽出して使いまわしたいんだけど
やっていいもんじゃろか?
2018/04/19(木) 23:13:04.60
>>173
将棋でも自分の指した手がいい手かどうかわからない人いるよね。
初心者?上級者?

マシになってるかどうかわからない?
将棋で言えばどっちかな?


自分の指した手が良いかどうかわからないってことは
恥ずかしいことだと思ったほうが良い。


まあ、初心者なら仕方ないけど、そういう人は
コードメトリクスを計測したら良いよ。
客観的に良いか悪いかを判断してくれる。
2018/04/19(木) 23:16:49.13
>>177
>自分の指した手が良いかどうかわからないってことは
>恥ずかしいことだと思ったほうが良い。

やっぱりやらないに越したことはないな!
2018/04/19(木) 23:28:59.50
>>178
なんで?
そういう人はコード書いたらダメだって言ってるんだけど?
2018/04/19(木) 23:30:15.83
料理が下手な人は料理をしないほうが良い
2018/04/19(木) 23:33:30.35
人の問題なのか、技術の問題なのか
その区別ぐらいはできるだろうけどな

俺が運転すると事故るから
車はだめだみたいな。
182KAC
垢版 |
2018/04/19(木) 23:44:08.24
>>162
改造するのは解読に時間がかかる
リファクタリングすると解読に時間がかかる

で、何がメリットだって主張?
2018/04/19(木) 23:53:59.72
>>182
二行目が繋がってない、つまらんからやり直して。
2018/04/20(金) 00:03:23.46
>>182
コピペしろって言ってる?

162 自分:仕様書無しさん[sage] 投稿日:2018/04/19(木) 21:57:46.81
>>159
> 解読せずにリファクタリングすると酷いことになるだけだぞ?

リファクタリングする時に解読しないなんて誰が言ったの?

そもそも解読が必要になってるのはリファクタリングしてなかったからなんだが、
まあそんなこと言ってもしょうがない。過去の話だ。

今手元にあるのは解読が必要なほど複雑なコード
リファクタリングをしないということは、複雑なコードをそのままに
さらに複雑にする行為。それをレビューしてもらったって、できるわけがない。
なにせ解読が必要なほど複雑なコードなんだから、

そして、せっかく時間を書けて解読しても、その解読をコードに反映させないなら
次回修正する時にまた時間がかかる。そして次回修正はそんなに先のことじゃないかもしれない
なぜなら複雑なコードをさらに複雑にしたのだから、デグレのリスクも高い


せっかく時間かけて解読したのだから、それをコードに反映(リファクタリング)させましょう。
読むのは時間かかるが、書くのは大して時間はかからない。
そうすれば、リファクタリングしなかった場合の時間がかかるという問題が解決できる。

何回も同じこと言ってるんだけどなw
2018/04/20(金) 02:23:37.72
>>184
冗長な文章だな
186KAC
垢版 |
2018/04/20(金) 07:25:56.11
>>184
リファクタリングに時間がかかるって主張だよな?
2018/04/20(金) 14:41:02.18
数字を入力するのにテンキー使う奴の地雷率は100%
2018/04/20(金) 19:02:31.75
ソフトウエアの問題は
どんなに技術的に見えようとも
人間の問題である

って偉い人が言ってた
189仕様書無しさん
垢版 |
2018/04/20(金) 19:05:43.41
>>188
(底辺ではなwww)

が抜けてる
2018/04/20(金) 21:52:25.40
問題というのは人間の主観的認識なのだから
人間の問題でない問題などというものがあろうか?
2018/04/20(金) 23:16:13.44
>>186
> リファクタリングに時間がかかるって主張だよな?

なんでそう何度も曲解するの?
わざとだよね?

時間がかかるのは、コードの修正。
リファクタリングしなくても時間がかかる
2018/04/20(金) 23:20:25.44
正確に言えばコードの修正を始めるまでの
コードを解析している時間だな

たった一行の修正なのにこんなにするんですか!?って
言われるぐらいの費用になるのは、"コードのタイピング"には
含まれない部分がたくさんある
193KAC
垢版 |
2018/04/20(金) 23:23:17.89
>>192
で、コードを解析する時間は
 リファクタリング > 一部修正
だって理解できないの?

「リファクタリング終わったコードを修正する時間は短い」
という主張に誤りは無いが、
リファクタリングする時間を無視してどうする。
2018/04/20(金) 23:23:47.05
>>190
そういうレベルの人はコードメトリクスを計測するツールを使ったほうが良い
ツールで問題が有るとされたコードはほぼ確実に問題が有る
2018/04/20(金) 23:28:17.97
>>193
> で、コードを解析する時間は
解析する時間って言ったのに、お前


> リファクタリング > 一部修正

修正する時間に話がすり替わってるじゃんw


解析する時間、すなわち複雑なコードをよんで
それがなにを意味しているか、どう書換えれば
正しく動くかを、考える時間は

リファクタリングしながら解析する時間 < 一部修正のために解析する時間

こうだからな。

ぐちゃぐちゃに絡み合った紐の束から、少しづつ結び目をときながら、
適切な一本を抜き出すのと、結び目をとかずに適切な一本だけを抜き出すの
どちらが簡単なのかを考えればわかるだろ
スパゲティコードとはよく言ったものだw
2018/04/20(金) 23:42:05.55
>>194
それはそれでわかったが

言ったことの返答にもなってない
話のつながりが見えない
レベルが何を指すのかわからない
問題が何を指すのかわからない

リファクタする奴は思考が支離滅裂だな
2018/04/21(土) 00:05:35.08
あぁ、問題は全て、人間の主観的な問題!というのが間違いだよ、
客観的な問題も有るよっていったのが通じてないのか
話が分からんやつは困るな
198KAC
垢版 |
2018/04/21(土) 00:14:22.07
>>195
お前さん、開発したこと無いの?

一部の修正の為に必要な解析情報量と
リファクタリングに必要な解析情報量の
違いすらわからないなら
解析の仕方がおかしいか、
内容を十分理解せずにリファクタリングしてるって事。
2018/04/21(土) 00:17:57.77
>リファクタリングしながら解析する時間 < 一部修正のために解析する時間

個人的経験から断固として異議を唱えたい
2018/04/21(土) 00:19:59.16
>>199
もしかしてリファクタリング、溜まってるんですか?
2018/04/21(土) 00:21:01.32
>>196
リファクタ厨は毎回そんなもんだよ
2018/04/21(土) 00:23:24.27
つーかさ、誰も100%納得がいくまで
リファクタリングしろなんていってないんだよ。
修正する所、どちらにしろテストが必要な所
関係がある所を、少しづつやればいい。

時間がかかるっていうのは、それはいつも手遅れの
コードばかりだって自覚有るからじゃねーの?
2018/04/21(土) 00:24:30.08
でもメリットが欠片も見えないな
2018/04/21(土) 00:25:43.38
>>142でも書いたが、
リファクタリング=大規模なものしかイメージできてないって
状態がそもそもやばいよ

142 自分:仕様書無しさん[sage] 投稿日:2018/04/19(木) 00:37:19.05
>>141
重要なのは手遅れになる前にこまめにやることだよね

大規模リファクタリングなんてのはあってはだめ
リファクタリングだけのための作業なんて持っての他

そうやって手遅れにするから、リファクタリングのための
工数なんて取れるかーみたいな話になる

リファクタリングは、機能追加や変更に伴う作業に
含まれているべきものですよ
2018/04/21(土) 00:26:03.25
>>203
何度も書いた。コピペしかしないよ?
2018/04/21(土) 00:26:42.60
リファクタリングをしたから具体的にどういうコードがどうなってそれでどのくらい得になるのかわからない
2018/04/21(土) 00:27:48.92
>>205
え?説明になってないじゃん
2018/04/21(土) 00:28:36.97
>>206
そういう実例が書いてある本を紹介すればいいの?
2018/04/21(土) 00:29:13.26
>>207
ん? すでに過去レスで書いたって言ってるんだけど、
お前はどのレスが「説明」だと思ったの?
2018/04/21(土) 00:29:45.71
肝心のマーチン本からして何が得なのかよくわからん有様
2018/04/21(土) 00:31:35.22
本読んでもコードがどうなるかも分からんの?
2018/04/21(土) 00:33:26.89
理解がちょっとづつ歪んでいくな
リファクタでも同じように処理をちょっとずつゆがめて気が付かずにいるにちがいない
2018/04/21(土) 00:33:29.19
>>209
いや、ここまでそんなレス1つも無いから
2018/04/21(土) 00:35:02.56
https://blogs.yahoo.co.jp/mathweather4067/5819997.html

> 指導のポイント
> ここの指導は、難しい。なかなか理解されないのが、現状です。
>
> まずは、「等式の性質」を思い出させることが必要でしょう。
>
> 次に、「1次方程式の解法」も思い出させます。
>
> その後、1次方程式の解法と対比させながら、進めていきます。
>
> 「等式の変形」は、等式をその目的に応じて変形することの良さが理解できていないと、
> 何のためにするのかがわからないまま、機械的に進めてしまいます。
>
> 導入部分を大事にしたいですね。


まさにコレだな
2018/04/21(土) 00:35:26.46
>>213
でも説明なってないと判断したレスがあるわけでしょう?
2018/04/21(土) 00:35:28.22
>>212
自分の都合のいいように捏造と曲解ばっかりしてるよね
一度もまともな実績がないくせに何で役に立つって言うんだろうね
どうせ数字も捏造してんだろう
2018/04/21(土) 00:38:32.40
>>216
曲解って俺が先に指摘したんだけど、
言われて悔しかったからって自分も使おうとしないでよw
どれが曲解かを指摘してない以上意味ないよ
2018/04/21(土) 00:42:39.66
いやリファクタ野郎のことね
2018/04/21(土) 00:43:50.39
お前のことだよw
2018/04/21(土) 00:45:19.25
>>214
そいつの説明が悪すぎる、良さってなんやねん

理解してもらえないのではない
自分が理解もせずに良いものだと思い込んでいるだけだ

本当に理解してたら必要性や可能になることを明確に説明できるはず
2018/04/21(土) 00:53:21.22
本当に理解している本の作者が
十分以上に説明してるんだけどなぁ
2018/04/21(土) 00:57:49.37
修正ってほんの数行程度なのに対して
リファクタリングってほぼ全域書き換えでしょ?
そりゃ影響範囲が違いすぎるよ
2018/04/21(土) 01:00:47.75
読んだ上でいってんのか?

142 自分:仕様書無しさん[sage] 投稿日:2018/04/19(木) 00:37:19.05
>>141
重要なのは手遅れになる前にこまめにやることだよね

大規模リファクタリングなんてのはあってはだめ
リファクタリングだけのための作業なんて持っての他
2018/04/21(土) 01:19:48.95
大規模リファクタリングもありえるよ
こまめにって言ってるのは、せいぜい関数レベルのリファクタリングの話でしょ
まだそれぐらいしか任せてもらえない立場なのかもしれないが、リファクタリングってそれだけじゃないから
2018/04/21(土) 06:51:17.73
じゃこう考えよう

リファクタリングは
テストコードのデバッグ
226仕様書無しさん
垢版 |
2018/04/21(土) 07:13:19.41
もうコーディング=リファクタリングでええやん
2018/04/21(土) 07:29:41.93
>>222
あほすwww
2018/04/21(土) 08:09:45.92
なんで、こんな派遣すら首になるようなリファクタバカを相手にしてるの?

基地外に何言っても無駄だよ。
相手の言葉を聞く能力がないからキチガイにして派遣すら首になってんだから。
2018/04/21(土) 08:59:08.52
>>223
214のどこを読めばそのレスとつながるのか
ID出ない板で自分がわかれば相手もわかるとか思ってるとか
2018/04/21(土) 09:04:26.73
あれ?
2018/04/21(土) 10:33:35.84
>>229
なぜ>>214に対してのレスだと思ったのか?
2018/04/21(土) 11:12:38.42
なぜだろう
2018/04/21(土) 11:24:43.22
>>224
それって
リファクタリングじゃなくて
リプレース
234仕様書無しさん
垢版 |
2018/04/21(土) 12:10:29.62
どんなきれいなソースコードでも
プログラムから仕様を起こすのは大変

だから現場が仕様を忘れる前に、再開発をするのが正しい

つまり、リファクタリングなんぞ不要
2018/04/21(土) 12:12:22.10
やっぱ
日本人のソフト開発って
土木工事想定なのな
236仕様書無しさん
垢版 |
2018/04/21(土) 12:14:21.71
日本は土建と同じ構造

世界は基本的に内製
2018/04/21(土) 23:35:59.80
CIAすらアマゾンに開発委託したってのに
2018/04/22(日) 00:00:17.09
>>233
リプレースとリファクタリングを混同するな
2018/04/22(日) 06:53:14.54
>>238
区別の仕方は?
2018/04/22(日) 08:54:37.71
リプレースって、普通の文脈だとシステム置き換えじゃねーの?
コード周りの文脈でリプレースなんて表現するのか?
2018/04/22(日) 11:36:40.79
>大規模リファクタリングもありえるよ

大規模リファクタリングとは
リプレイスの事ではないかと言う主張だよ
2018/04/22(日) 11:37:50.25
どうでもいい
2018/04/22(日) 11:52:15.63
リプレースってハードウェア更新でしょ?
5年ごとにハードウェアを最新にして、ついでにソフトウェアも新ハード新OS向けにテストしますよと
で、ほとんどはリビルドで済む話だけど
どさくさにまぎれてちょっと不具合修正しましょうとか機能追加して欲しいとなる
そこにリファクタリングする余地は確かに出てくる
本来必要ないのに修正するという意味ではいかにもリファクタリングだ
2018/04/22(日) 12:18:50.50
>>243
ずいぶん狭い世界で生きてるんだね
2018/04/22(日) 12:33:53.96
>>244
転職経験2桁だけど何かいいたいことある?
2018/04/22(日) 14:21:37.97
大規模リファクタリングなんてあってはならないと言っちゃった以上、「俺のリファクタリング」より大規模なものは、
リプレースでもなんでもいいけどリファクタリング以外のなにかでないと困るんだもんね
2018/04/22(日) 14:31:39.67
>>245
狭いね
2018/04/22(日) 14:34:41.97
>>245
ただのクズやんwww
2018/04/22(日) 14:48:42.49
>>246
リファクタリングの定義は、外部的振る舞いを変えずに
理解や修正が簡単になるように内部構造を改善することなんだが
お前の言うリプレースっていうのは、外部的振る舞いを変えないものってことか?
2018/04/22(日) 14:49:01.88
> リプレースでもなんでもいいけどリファクタリング以外のなにかでないと困るんだもんね
普通にバージョンアップでは?
2018/04/22(日) 14:49:53.01
>>245
www
2018/04/22(日) 14:52:10.53
>>246
> 大規模リファクタリングなんてあってはならないと言っちゃった以上

お前意味分かってんのか?

大規模リファクタリングなんてあってはいけないっていうのは
許されるのは小規模(せいぜい中規模)リファクタリングまでで
リファクタリングだけを大規模にやってはいけないないってことなんだが?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況