リファクタリングすると全部テストしろと言ってくる奴の矛盾2
■ このスレッドは過去ログ倉庫に格納されています
機能追加や変更した時に、全部テストしてるでしょ?
いつもやってることじゃん
前スレ
リファクタリングすると全部テストしろと言ってくるやつの矛盾
https://medaka.5ch.net/test/read.cgi/prog/1523765624/ >じゃあ、型情報潰しちゃってるのにどうやって該当の処理まで飛ぶの?
作業対象の型も設定や命名規約からすぐわかるし全体からすれば極一部の動的なインスタンスだったとしてもログやファクトリーを見ればすぐにわかる
>インターフェース君はどうやってインターフェースの先を知らずに不具合を直すのだろう?
作業対象が依存してるのはインターフェースの契約でしかないのでインターフェースの先はもちろん知らなくていい
作業対象==バグってるクラス >>356
IF「フフフ、我らを見抜けるかな?」
IF「3万のインスタンスをもち、150種のクラスをもつ我らを見抜くことは不可能」
IF「さらにメモリ、フォーム、コントロール、スレッド、ファイル、プロトコル、etc」
IF「すべての共通項を見出した万能クラス」 実際には責務:クラス=1:1だから症状聞いた瞬間にあぁあのクラスだなってわかるんだけどね
クラス分けしないでif文書きまくるとそれができなくなってコード追いかけたり実際に動かさないとわからなくなる >>357
いや、お前の主張はインターフェースの先は知らなくていいんだから
不具合直せないだろ
そこでチンコでもいじってろよ バグがあるクラスを直す時にそのクラスが依存しているインターフェースの先を知る必要がない
インターフェースを守っていればいい これも成り立つよな?
バグがあるクラスを直す時にそのクラスが依存しているクラスの先を知る必要がない クラスを使ってるだけなら、クラスの実装を知る必要はないのと同じことか
そういやライブラリのソースコードって見ないもんな クラスを使ってるだけならクラスの実装にも注意が必要 あー、勝負ついたなw
クラス(第三者が作ったライブラリ)のソースコード
普通見ねぇわ インターフェースを使うとバグが無いことが証明される
なんでかな? インターフェースの先は知らなくていい
↑これが間違ってる これが流行ってるからっで、レガシーコードにぶち込まれた数々のソリューション。
やるなら同等の箇所を完全に書き換えろ。
未来に責任が持てないならおとなしくしとけよ、糞が あ、未来のことなんか考えなかったからだね
未来の責任は放棄か 残業、休出してリファクタリングってなんかおかしくねーか?
いま、足が出てるわけで、いま、なんとかしろよ
アリもしないお前が想定する未来はきっとこないんだ >>377
うーん? ただ単に遅れてるだけだよね、それ >>378
え?ちょっと頭使ってね
リファクタリングっていまの工数を使って明日の工数につなげましょうって作戦じゃん?
なのにいま足が出てるのにそんなことしたって一体いつのプロジェクトを成功させたいのかわけがわからないじゃん > リファクタリングっていまの工数を使って明日の工数につなげましょうって作戦じゃん?
え?違うよ
まず今日の仕事の準備としてリファクタリングする。
そして今日の仕事の仕上げとしてリファクタリングする
それで今日の仕事が終わったと言える
準備と仕上げを入れずに仕事を見積もってはいけない
足が出てるのは、その準備と仕上げを勤務時間中にやらないで
1時間早く出社して、残業もするような状態になってるから >>380
は?
それなんのためにやってるの?
設計書通りに組んだんだよね? 気分に任せて組んでるから必要になってんじゃない?
お前の場合 >>381
設計書にコードの中身まで書いてあるっていうのかい? 野球で例えるならバッターが足場を慣らすのがリファクタリング >>388
それ統計データでもあるの?
それともあなたの思い込み?
嘘つかないでくれませんか? 設計書通りだとバグ出るしバグの修正めちゃくちゃ大変
しかも当たり前のように仕様変更入るじゃん
だから設計書は参考までに止めてリファクタリングするしかない
文句言うなら最初から整理とテストまで実行した設計書をよこせや >>390
だからって設計書書かないって
それノーガード戦法じゃね >>391
設計書はゴミだけど設計というプロセスは必要
設計した結果をコードとテストとしてアウトプットする
それらでカバーできない部分があれば別途図表や文章を用意するが設計書という体裁にはならない
後発の開発者やユーザーに対する解説書となる んで、設計書を通りのコードと言っても
わかりやすいコードと、わかりにくいコードがある
正しく動いていたとしても、わかりにくいコードだと
今後の作業に支障をきたす。
今後の作業を改善するためにリファクタリングするのではなく
今後の作業に支障をきたさないためにリファクタリングをする。
これは今やらなければいけない作業
工事終わりました。でも片付けはしてないです。じゃだめだろう?
片付けまでやるのが今日の仕事 @良い設計を簡潔に記したもの
→必要です。これを設計書と言います。
A悪い設計を膨大な文書で誤魔化そうとしたもの
→不要です。むしろ害悪になります。
これは設計書とは言いません。ゴミです。
残念なことに日本のIT業界ではAの事を設計書と呼び、盲信しています。
今すぐAをリファクタリングして@に書き換えましょう。
そうすればコードのリファクタリングは最小限で済みます。 >>395
> @良い設計を簡潔に記したもの
> →必要です。これを設計書と言います。
簡潔に書くのと、詳細なコードを書くことは
矛盾するからね。簡潔に書けば、書いてない部分が
増えるため汚いコードになってしまう可能性が増える リファクタリングしながらやると美しいコードになるけどやっぱり時間かかるな
複雑なSQLで一気にデータ持ってきて表示、編集させて、ボタン押したらこれまた複雑な更新SQLで一気にデータを更新
コードめちゃくちゃになるけど、これが一番生速度が速い 設計は遠回り
最初から最短距離見えてるんだからそうすればいい どうせ引き継ぎ用の説明書作らなきゃならないだろうに…。 >>402
設計は必須。
お前さんは書き込みする時に、カキコの影響とか考えるだろ?
それは広い意味での設計。
「設計書」と称する、実は設計書になってないゴミは要らんけどね。 設計・設計書要らない派が挙げてる仕事って、
1時間で終わるレベルのタスクなんだろうなって思う。
人と設計を共有したりしないでいいんだろうな。 だからコードで設計を共有すればいいじゃん
設計書を記述するための「プログラム言語」という専用の言語で
設計書を記述すればいいでしょう? >>410
プログラム書いて持ちよった結果
イメージが合って無くて全面書き直しになっても
直ぐに書き直せるのならそうかもな >>410
小規模ならそれもいいけど、大規模になったらそうもいかんのよ >>411
お前が言う「設計書」を書いて持ち寄った結果
イメージが合って無くて全面書き直しになるのと何が違うの?
全面書き直しが問題なら、単に早めに
レビューすればいいだけ。別の問題だろ >>413
それはプログラムと設計書の工数によって変わるだろ
プログラムより設計書の工数がえらい小さい場合は、設計書を持ち寄ってレビューするべきだし
工数がほとんど変わらないなら、最初からプログラムでレビューすればいい 設計書は長時間うんうんうなって完成させてから
レビューするもんでしょ
大規模なものなら、1ヶ月とかそれ以上かかって完成させて、
でイメージが合ってなくて全面書き直しwww 設計書は書き直すことなんてないよ
所詮絵に描いた餅なんだから
間違ってもOK。レビューなんてしない
間違いはコードでなおす >>416
いや、設計書書いたならレビューしろよw
何のために書いてんの? 建築業なら企画書→仕様書→設計書→図面→といった工程の中の
一部分であることが設計書の存在意義なんだが
この業界って仕様変更の頻度が高すぎて工程という前提条件が破綻してる
とくに下請けはプロマネのレベルが低くて無知だから何でもハイハイで
再見積もりも無しに平気で工程をまき戻していつものデスマーチ >>419
建築はしっかりしてるというような隣の芝生は青く見えるんだろうけど、
あっちもやっぱり似たようにgdgdだよ。
特に今は作業員に外国人が増えてるから意思疎通も大変だし。 建築業界に例えたらプログラマは何に相当するんだ?
○○に相当するとして、建築業界では○○に対して
ちゃんとした資料を渡してるんだろ?
だけどプログラマに対して、それと同じぐらいの内容の
資料渡してないだろ
って結論になるのが、この話題の最後になるのが目に見えてる >>421
土方だろ
だって俺ら鬼の副長じゃなくてIT土方だろ >>422
おい、先にレスしてるんだからその先を書けよ。
土方に渡す資料に
「4階建でマンションを建てます。
部屋はいくつで、階段、エレベータはここで。
詳細は全部任せます。材料とか適切なのを選んでください」
って書いてあったら、それ建築士が使えないって判断だぞ >>423
末端の土方はそれくらいの情報しか持ってなさそう
で、現場監督や棟梁には詳細な資料が渡ってると プログラマは土方に相当すると言ってのに
現場監督や棟梁に相当するって訂正かよw 将来的には絶対いいしそうしないと先がふさがるけど
当面の課題解決の理由として正当化できないせいで採用できない などと言い訳をしているところは
デスマ状態なんだろうってのがよく分かる
なぜならコード修正の見積もりには
予めリファクタリング分の工数を含めるものだからだ
その余裕も無いほどカツカツなスケジュールなら
デスマになるに決まっている 将来的に当たるかもしれない課題がある
でもそれは優先度低くてかなり先、一度後回しでいいやってなった
今回の改修は範囲狭くて緊急性たかい
今回のを理由に将来を見越した改修をしてしまうと、緊急性高いテストに関係ないモジュールまで巻き込まれてしまう
先で死ぬのが見えてるのに出口が コストカット原理主義が無くならない限りはリファクタリングの正当性を見出すのは無理だろうな
空いてる時間に今までのフィードバックをすることでよくしていくことが必要なのに空いた時間
そのものをコストとして敵対視してるのだから受け入れられることはない
空いた時間=余裕=コスト=絶対悪 になっている人が多い >>429
それならコード修正の見積もりもできないだろうね そりゃ正しいコードの姿が見えてないのに
コード書くのにどれくらいかなんて見積もりできないだろw
それか修正前のコードがどんなに汚くて
修正箇所が大きくテスト範囲も広くなろうが
修正前のコードが綺麗でわずかの修正で解決できようが
全く同じ工数で修正できるって考えてるアホかのどちらかだ 正当化できない理由は>>430
コードの正しい姿とかどっからでてきた話だ 言語やOS、ライブラリ、フレームワークなんてのは変わり続けてたり、変わらないことで
使えなくなることがあったり、使用者の習熟度が上がるなんかでも変化するから正しい
コードの姿なんてものは幻想だよ。
極端な話、変更がなければリファクタリングなんてしなくてもいいがOSバージョンアップは
ほぼ確実に数年単位で起きるしそれに対する対応としてはリファクタリングなりなんなりの
事前によくしておくというのは必要なんだよな。 >>435
え? コードを適当に修正してんの?
動けばどんなコードでもOKって人? >>436
> 使用者の習熟度が上がるなんかでも変化するから正しい
> コードの姿なんてものは幻想だよ。
コードの話をしてくれないかな?
お前が言ってるのは使用者の習熟度の話
お前が言ってるのは、正しいコードはあるが
それを使用者が理解できないって言ってるだけだろう? >>437
おまえは自分の頭にある筋道以外の話が理解できんのか >>431
テストやリファクタリングをサボって、コストカットしたと勘違いしてるのが多いけどね。 >>441
そもそもそこまでコストカットする必要はあるのかっていう話だな。
お給料=コストなんだからコストカット自体は自分の給料を減らすものとして考えなきゃ
ならないわけで、なんで自分の首を絞めることに肯定的なのかなあと。
効率化自体はかったるい作業をかったるくない作業にする自分ために必要なことだが
効率化しないと評価下げる、お前は低評価だみたいなのは違うだろうと。 資本主義の世界だと自分の成功とは他人より成果を出すことでつまり他人が失敗すること
つまり望まれてるのはお前がコケて失敗することなんだ
それでまわりが幸せになる
おまえの上司は
お前が失敗しないことを理由に地位と給与を下げ、失敗したことを理由に地位と給与を下げるだろう
成功者の側に立とうと思ったらうわべに隠された別の道を通らねばならない >>442
費用対効果って概念が抜けてる現場は多い。 >>444
だからそんなバカバカしい定量化しづらい、出来ない概念を信奉してるから
ちょっとした計算違いでどんどんドツボにはまっていくんだよ。
金は貯めたり削ったりするものじゃなくて使うものだという認識が出来てない。 減量が必要なボクサーじゃないんだから無駄なんてあっていいの、あって当たり前なの
そんな当たり前のことが分らなくなってきているから作業量が増え続けて仕事が楽に
ならないんだよ。
過労死するとかそれに近い状態が幸せなのか? どうでもいいけど、
少なくとも給料上がった分くらいは効率化しろよ?
新人雇った方がコスパ良いとか笑えないから。 われながらクラスとメソッドの名前がひどい
壊滅的な英語センスと気まぐれなルールで
日本語との対応や分類がえらいことになってる
名前かえるぐらいさせろよ 小売業者が定期的にやってる棚卸しみたいなもんだけどな リファクタリングは日々一人ひとりがやることだから
棚卸しのようにまとめてやる行事とはぜんぜん違う 正確には無能がする日課のオナニーみたいなものやけどね システム刷新の前にリファクタリング少しでもやると効果的なんだけど余計な手間だろって却下される
古い言語で書かれたゴミを新しい言語で書かれたゴミに刷新しても意味ないと思うんだけどな 定期的な整理をしないと肝心なときにぐちゃぐちゃになる
んで、緊急だっつって慌てて直してカオス化が進む
そーなる前に整理しろってそんだけの話でしょ
なんか難しいところあるか? ■ このスレッドは過去ログ倉庫に格納されています