- 1 名前:デフォルトの名無しさん mailto:sage [2010/05/29(土) 17:25:56 .net]
- テストも書かないでリファクタリングとかうけるw
まずな、リファクタリングでは機能追加・修正は行わない。 動作はまったく同じでコードをきれいに書き換えること。 書き換えるといっても、これなら同じ動きだろ?って推測でやってはいけない。 まずテストを書く。ユニットテストをできるように、 単一のクラスでインスタンスを作る。 汚いコードなのだからたいていは依存関係のせいで単一ではクラスが生成できない それを生成するために、クラスの動作を書き換える。 といっても元のコードは修正しない。継承やプリプロセッサを使って 依存関係を断ち切るために既存のコードを上書きする。 どうしてもそれが不可能な場合には、決められた手順で最小のコード修正を行う そうやって既存のクラスのユニットテストを行う。 それでやっとリファクタリングが行える。 既存のクラスのユニットテストを通るように新たなコードに修正、 もしくは新規作成して置き換える。 この手順と考え方を守ってないのはリファクタリングではない。 で?
- 357 名前:デフォルトの名無しさん mailto:sage [2014/07/31(木) 00:51:52.79 ID:Jagb4X9u.net]
- >>355
知らん。問答無用で差し戻したから。 散々テストしたはずなのに客先に持ってったら動きが変わってて 共通モジュールに手が入ってたんで何やったのか聞いたら「わかりにくかったんでリファクタしました。」 何年も動いた実績あるモジュールにそんな理由でいじんなアホか死ね >「共通化できる処理を各所に(略」 うん。そうだな…だいたい君と同じぐらいの理解度の奴だったよ。
- 358 名前:デフォルトの名無しさん mailto:sage [2014/07/31(木) 00:54:29.60 ID:jvFYVzT/.net]
- > 散々テストしたはずなのに客先に持ってったら動きが変わってて
それリファクタリングになってないから リファクタリングじゃない話を使ってリファクタリング批判してどうすんだよ
- 359 名前:デフォルトの名無しさん mailto:sage [2014/07/31(木) 01:01:10.62 ID:Jagb4X9u.net]
- >>358
別にリファクタは批判してないよ? 考えもなしにリファクタしたがる奴を批判してるんだ。
- 360 名前:デフォルトの名無しさん mailto:sage [2014/07/31(木) 01:07:13.72 ID:jvFYVzT/.net]
- >>359
お前んところがレベル低くて、勝手にコードぶっ壊す馬鹿が居るってだけの リファクタリングと関係ない話を一般論として語られても、 底辺は可哀想だなって感想しか持ち様が無いぞ
- 361 名前:デフォルトの名無しさん mailto:sage [2014/07/31(木) 01:09:10.48 ID:OYcKACC5.net]
- >>358
お前はリファクタリングのつもりかもしれんが 完璧なテストが存在しない以上、挙動が変わる危険は常につきまとうんだよ。
- 362 名前:デフォルトの名無しさん mailto:sage [2014/07/31(木) 01:15:43.10 ID:jvFYVzT/.net]
- 完璧なテストとか言う以前に、
ろくに自動テストとか書いてないでしょ? ていうか、レビューもまともに機能してない (じゃなかったら>>357のケースなんてコードがマージされるはずない) テストもマトモに書いてないじゃ、そりゃトラブルよ
- 363 名前:デフォルトの名無しさん mailto:sage [2014/07/31(木) 01:21:33.19 ID:1DTVAKx3.net]
- Excelで書かれたチェックリスト片手に手動でテストして
「散々テストしたのに」って言ってそう
- 364 名前:デフォルトの名無しさん mailto:sage [2014/07/31(木) 07:53:29.99 ID:RHNsF96S.net]
- >>335
挙動を変えるのはリファクタリングじゃなくて仕様変更だろ
- 365 名前:デフォルトの名無しさん mailto:sage [2014/07/31(木) 21:56:38.46 ID:w9LroIYe.net]
- 仕様変更でもバグ修正でもいいが、
コードを書き換えたら挙動が変わることがある。 つまり、機能追加もバグ修正もするなってことだ。
- 366 名前:デフォルトの名無しさん mailto:sage [2014/07/31(木) 22:08:52.98 ID:t7+Ucdvo.net]
- ネストが揃ってないとか空行が多いとか
変数がはるか上で宣言されてるけど使ってるのは遥か下に固まってるとか 理解力以前に目が疲れるコードをどうにかしろって言ってるんだよ
- 367 名前:デフォルトの名無しさん [2014/08/01(金) 18:46:58.63 ID:xnEk5c3C.net]
- 変数定義の位置を移動したりスペースを除去したり
するのもリファクタリングなわけだが
- 368 名前:デフォルトの名無しさん mailto:sage [2014/08/01(金) 19:22:03.81 ID:+GTzrZhA.net]
- 失敗例をあげてリファクタリングは糞って言ってるの最高に滑稽。
井戸の王様を気取ってる蛙か
- 369 名前:デフォルトの名無しさん mailto:sage [2014/08/01(金) 20:37:16.99 ID:zWTZP0nt.net]
- OO批判と同じ流れだな
- 370 名前:デフォルトの名無しさん mailto:sage [2014/08/01(金) 20:43:59.51 ID:fzo9r37p.net]
- リファクタリングが糞なんじゃないよ
リファクタリングしたがる人が糞なんだよ
- 371 名前:デフォルトの名無しさん mailto:sage [2014/08/01(金) 21:19:55.74 ID:7+EywXB6.net]
- >>370
ゴミみたいなコードばっか書いてっから 他人にリファクタリングされまくっちゃうんだろ
- 372 名前:デフォルトの名無しさん mailto:sage [2014/08/01(金) 22:07:17.79 ID:2Z4Uf/Xj.net]
- 新人はリファクタしたがっていかん
関数の共通化とかGenericsとかTemplateとか覚えたてのこと使いたがる ちょっとしたクソが一晩したらそびえたつ巨大なクソに
- 373 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 01:12:27.41 ID:tvZxKsuR.net]
- 技術レベルの低い人ってのは初心者に近くて
リファクタリングという技術用語を理解できないんだよ。 だからわかり易い言葉に置き換えるといい リファクタリング=整理整頓・改善 こう言い換えれば、改善する必要があるんです。 整理整頓すると普段の仕事が捗るんです。ということになる こう言い換えれば、反対する人はいなくなるよ。
- 374 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 01:27:17.11 ID:nhTOdUsW.net]
- 生理整頓した状態を維持しながら仕事しろよw
個人レベルの話ならクソコードをフィックス前にに最低限他人が読めるようにするのなんて責務のうちだ リファクタはどっちかというと組織再編といったほうがいい 課題と今後の見通しがあってはじめてやることで
- 375 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 02:10:54.57 ID:tvZxKsuR.net]
- >>374
その責務を果たさない奴が、 行き当たりばったりのコード書くんだよな。 そいつに限ってリファクタリングの意味を理解してないという。 もう技術者として終わってるとしか言いようが無いね。
- 376 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 08:46:20.40 ID:Mu2XuA5N.net]
- リファクタリング本を一回読んだとき何を感じるかだよな。
ああそうそう、こういう点で苦しくなってたんだ、って気付くか、 何一つピンとこずに何やってんのこの本?と思うか。
- 377 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 11:09:34.62 ID:nhTOdUsW.net]
- クソコードを普通のコードに直す作業をあんまりリファクタと呼びたくないw
- 378 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 11:27:29.15 ID:h5SZ209F.net]
- 結合テストとかまで進んじゃったら無理だよね
- 379 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 11:55:25.68 ID:nhTOdUsW.net]
- リリースした後でバージョンアップのついでにやるもんだろ
- 380 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 11:59:50.68 ID:tvZxKsuR.net]
- ボーイスカウトの法則といって、
コードを修正するときは、修正する前よりも 綺麗にするもんです。 これが出来るのと出来ないのが、 初心者と中級者の境目。 もちろん、出来ないほうが初心者ね。 これが許されるのは新卒1年ぐらいなもん。
- 381 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 12:22:30.70 ID:DmU4GxTK.net]
- 規模が小さいうちは手抜きで簡単なコードを書くだろ?
最初から拡張性とかそういうものを考えて作りこまない。 で、規模が大きくなってきた時に、将来性のことを 考慮して作り変えればいいんだが、 最初の手抜きのコードをそのままに、手抜きを真似して 同じようなコードを追加するやつどうにかならんかね。 規模に応じたコードの書き換えをしない。できない。 発想がない。そういうい奴がクソコードを量産するんだよ。
- 382 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 12:37:41.39 ID:Ydx1jnyI.net]
- 権限のない末端PGが現場の手続き無視してユニットテストのないコードを
勝手に修正する、自称リファクタリングは非常に迷惑。 日本の受託開発の仕事ではリファクタリングなんてするべきではない。
- 383 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 12:42:59.05 ID:DmU4GxTK.net]
- >>382
ユニットテストが無いことが前提になってる時点で、 やっぱり、その程度の所が、リファクタリングを嫌ってるんだなとしか 思えないよ。残念だったね。君のところの技術不足を露呈しただけ。 えと、技術力不足であることを自覚してね?落ち込むところだよ。
- 384 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 13:29:01.01 ID:a3/R4SSz.net]
- 最初から厳密に書けばいいんだよ
手抜きコピーが多いのは、そういうものかと思ってしまうからだ 自称上級者がスタートアップ書くことが多いが、手抜き繰り返して しまいには自分自身が変な癖背負い込んでいくだろう 初期段階でよい方向に導くには、最初のやつががんばるしかない
- 385 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 13:37:36.15 ID:DmU4GxTK.net]
- 人間誰しも、最初は初心者で
一年後には今よりも成長しているという 前提にたつと最初から完璧なコードを書くのは不可能 どんなに優れたコードを書いたとしても 一年後の自分はもっと優れたコードを書ける。
- 386 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 14:03:04.41 ID:nhTOdUsW.net]
- >>385
この程度の奴がリファクタしたがるんだよなあ… リファクタってのはある設計から別の設計に軸足を移すことだ。 書き散らしたクソコードを書き直すのは、リリース前にやっておくべきそれ以前の問題なんだよ。 お前の末端の画面とか帳票とかは、誰も共通機能として使ってないから汚かろうがクソだろうが問題ないよ。 お前の自己満足のためにプロジェクトとめられてたまるか。 どんなクソでも、客の前にひりだしたクソはてめえのクソだ。受け入れて前に進め。
- 387 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 14:06:28.03 ID:nhTOdUsW.net]
- 大体最初からある程度ちゃんとしたプログラムも書けないやつに
まともなユニットテスト作れるわけないだろうが。
- 388 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 14:26:29.65 ID:1FEiY+vP.net]
- 理想だけど
組織には逆らえない
- 389 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 14:42:12.73 ID:wGpqnjMj.net]
- 関数の中身やprivateな関数のインターフェースを修正するようなリファクタリングと、
ライブラリのpublicなインターフェースを変更するような 影響範囲の大きいリファクタリングの話が混じってる気がする 後者はそう簡単じゃないよ 影響範囲に入る全ての開発者と調整が付かない限り変更できない (勝手に変更したら、ライブラリ使用者側から見たら仕様変更だからリファクタリングにならない)
- 390 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 14:44:44.99 ID:atIEditt.net]
- 初心者にオススメなのは、派生開発でコードを読むときに、動作確認をテストで書くことかな。これはとっつきやすい。
『レガシーコード改善ガイド』では「仕様化テスト」のところ。
- 391 名前:デフォルトの名無しさん [2014/08/02(土) 14:54:07.48 ID:1BrdY1ES.net]
- >>379
そんな意識の奴と仕事したくないわ
- 392 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 15:20:52.89 ID:DmU4GxTK.net]
- リファクタリングするなっていってる奴がいるけどさ、
時間が十分にあるという前提にたつと とたんに何も言えなくなってしまう それってリファクタリングがダメなのではなくて 時間がないという問題だから。 じゃあ、なんで時間が足りないんですか? 今までと同じやり方してるんじゃないですか?って 追い詰めると、泣き出しちゃうw
- 393 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 15:21:48.08 ID:DmU4GxTK.net]
- >>389
そういう場合は、旧関数の互換性を保ちながら 新しい関数を作ればいいんだよ。
- 394 名前:デフォルトの名無しさん [2014/08/02(土) 15:32:36.71 ID:WtoScNjl.net]
- >>389
そういうことのないように依存性を無くすようにプログラミングする プログラマの規律が無いだけ
- 395 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 17:35:26.06 ID:w2qydRR0.net]
- 当たり前のことを当たり前に理解してそれを前提としている人と、
当たり前のことなのに全く理解しないでそれを前提とできない人とが会話しているようだ。
- 396 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 19:06:34.85 ID:jgRhK7n4.net]
- ウォーターフォールだったり、詳細設計書で日本語プログラミングしたりしてるとこと
リファクタリングは相性悪いよ 開発の全体を見直さないと、一部だけ優れた手法を取り入れようとしても 歪みが出て上手く行かないんだよね
- 397 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 19:30:03.16 ID:DmU4GxTK.net]
- うまくいかないんじゃなくて
難しいだけだろ? それを実行する力が技術力なわけで。
- 398 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 19:41:02.16 ID:q1w4boEu.net]
- どうしても自分が書いたコードを書きなおしたい人がいるようだけど
そんなコードはいずれバグで書きなおされるんだから、あまり気にしない方が良い。 その情熱は悪くないけど、もっと前向きに使うべきだよ。
- 399 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 19:57:31.28 ID:DmU4GxTK.net]
- 前向きって新しいコードを書くってこと?
残念だけど、開発ってのは既存のコードの修正がほとんどだよ。 新しい機能を追加するといっても 前よりも効率よく開発するために既存の部分を、 使いまわす(コピペじゃないからね!)するために 既存の部分を修正して使えるようにするんだから。
- 400 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 19:57:37.46 ID:FIwNTFpf.net]
- >>396みたいな事言ってると、拡張を繰り返すうちにコードが保守不能なカオスになって
もう無理だから全部捨てて作り直しだー、ってなるんだよ でもSIerとしては、それが飯の種だから良いんだけどね
- 401 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 20:03:28.32 ID:DmU4GxTK.net]
- 全部捨てて作り直しだーまで追い詰めるって馬鹿だと思う。
少しずつ変化させていくことができないからそうなるんだよね。 全部いっぺんに変えるなんて現実的じゃないんだから。 全部いっぺんに変えることは不可能。じゃあどうするか? それに答えられないから、どんどん壊れていくんだよ。 まあ、少しづつ良くしていくことが出来るのも技術力なわけで。 それを頭でわかっているのと実行するのとは全然違うわけで、 その実行できる力ってのが技術力そのものなわけで。
- 402 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 20:19:36.36 ID:q1w4boEu.net]
- >>399
前向きってのは、コード書きの脳からデザイナーの脳に変われるように努力しろって事。
- 403 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 20:23:43.06 ID:DmU4GxTK.net]
- >>402
何に逃げてるのさ? 両方できるようになるというのなら正しい意見だが、 別のものに逃げたらだめだろ。 まるでペンもイラレもろくに使えない奴が 発想力とかいうのに逃げているのと同じ。 コードをまともに書けるようになった上でデザイナーになることはできる。 だけど、コードから逃げてもデザイナーにはなれない。
- 404 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 20:23:58.64 ID:J1UwFk0L.net]
- よくある設計とコーディングっていう役割分担からしてくるっとる。
プログラミングなんて、設計九割五分なのに。 実装なんざオマケのオマケ。 SEとプログラマ、とわけてプログラマがキーボード叩く役とか、きがくるっとる。 まぁ聡明なお前らの会社は違うだろうけどね。
- 405 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 20:28:21.78 ID:DmU4GxTK.net]
- 「前向き」って言ってる奴が、
コードとデザインの両方を手に入れるじゃなくて、 コードから逃げてデザインを求めていて笑えるよ。 そういう奴は両方できない。
- 406 名前:デフォルトの名無しさん mailto:sage [2014/08/02(土) 20:33:33.15 ID:a3/R4SSz.net]
- やっぱり自分でコード書かなきゃやってる気がしない
- 407 名前:デフォルトの名無しさん [2014/08/03(日) 00:40:07.16 ID:ppjITjjs.net]
- もう最近ガチガチの詳細設計やるとこって殆ど無いだろ
コメント的仮想コードとかで詳細は終わらせちゃうところが多い その方が柔軟だしな
- 408 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 00:45:38.31 ID:CSranqfK.net]
- 一応UMLでシーケンス図とクラスとPublicメソッドだけはきっちり作ってるな
DBアクセスとかあたりまで そっから先はprivateで実装して アプリのフレームワークに依存しないメソッドとかクラスとかはプCommonフォルダに各自放り込んでもらう で上手くいくと思ったけど Commonがかなりカオスなことに
- 409 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 07:51:54.04 ID:KHwMExMo.net]
- >>407
あー、主に非技術者がやる作業だね。
- 410 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 07:57:18.76 ID:mU4IZymt.net]
- >>408
>Commonがかなりカオスなことに kwsk
- 411 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 10:20:01.47 ID:1nxvzFtA.net]
- まるで業務系しか仕事がないかの勢いw
- 412 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 10:36:51.70 ID:CSranqfK.net]
- >>410
コードが酷いのは予想のうちだけど あれだけ言ったのに、規約が守られずにアプリのフレームワークに依存が作られてる 最初あたりに誰かがやったせいで後続が真似して、手続きなんとなくまとめただけみたいな処理がいっぱい 関数の共通化もうまくいってなくて 例えば分かりやすいところでは文字列をバイト列に変換してパディングするって処理があるんだけど SJisStringUtil.ToByte DBCodeChanger.LeftPaddingByteArray StringModel.BytesWithSpace こんな感じでいっぱいできてる 挙句にsTanakaとかフォルダできてるしw
- 413 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 10:42:19.36 ID:KHwMExMo.net]
- まあありがちやねw
だから規約を作った人は 必ずコードレビューをしなくてはいけない。
- 414 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 20:06:25.42 ID:lk1xFWmM.net]
- >>953
糞設計、糞コード書くような人たちが 集まってコードレビューしてもなんの意味もない しかもそういう人って声が大きいだけが取り柄みたいな人だろうし
- 415 名前:デフォルトの名無しさん [2014/08/03(日) 21:25:01.28 ID:LWW935BO.net]
- ロングパスきっちり通せよw
- 416 名前:デフォルトの名無しさん mailto:sage [2014/08/03(日) 23:57:33.38 ID:tNPEJw6R.net]
- A社に発注して作らせた大規模なソフトを、
B社に一時的にメンテナンスさせて、 今はC社に機能拡張させているとか言う例が実際にあるからなー それぞれがそレなりにちゃんとした会社であっても、 開発者の継続性が0の場合、 中のソースがかなり混乱するのは仕方ないかもしれん。
- 417 名前:デフォルトの名無しさん [2014/08/04(月) 22:06:42.37 ID:w1xJJUBp.net]
- リファクタリングはアートですよ。
アートは人間が生み出すものではありません。 ある日、天から降りてくるんです。 この感覚がわからない人は、アートしたことが無いんです。 つまり、リファクタリングもわからないってことです。
- 418 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 22:17:15.14 ID:p5AMhKr8.net]
- わかる、わかるぜ〜
ソースコードがある書き方になりたがってねだってくるんだぜ〜 俺はそのとおりに書き写してるだけなんだぜ〜
- 419 名前:デフォルトの名無しさん [2014/08/04(月) 22:19:31.15 ID:w1xJJUBp.net]
- やべえ。
適当ぶっこいてたらマジキチ召喚しちまった。 ちょっと反省。
- 420 名前:デフォルトの名無しさん mailto:sage [2014/08/04(月) 22:54:50.48 ID:O7gnQe0p.net]
- 自作自演乙
- 421 名前:デフォルトの名無しさん mailto:sage [2014/08/27(水) 12:13:22.10 ID:RluTUsi0.net]
- 他人のコードだと思って、何の前情報もない状態でコードを読み
そこから読み取れる情報だけで、「なんで?」って思う実装を減らしていくのがリファクタリング もちろん、処理の効率とかをよくする場合もあるけど、 どっちかというと、そういうのよりも第三者が見て読みやすいコードである状態を保つ事のほうが重要 (リファクタリングで大幅に処理コストが改善できるような糞実装が最初にされてることは稀) ただ、リファクタリングをできるレベルに達していない職場も少なくない とくに業務系や人売りで奴隷を集めた職場とかは、大抵メンバーのスキルが足りてなさすぎて無理 っていうか設計(という名のゴミファイル作成)段階からそびえ立つうんこを作っていってるから、実装時は既に手遅れ
- 422 名前:デフォルトの名無しさん mailto:sage [2014/09/04(木) 15:14:28.47 ID:NCM4vLJB.net]
- リファクタリングの誤用
ttp://capsctrl.que.jp/kdmsnr/wiki/bliki/?RefactoringMalapropism リファクタリングの境界線 ttp://capsctrl.que.jp/kdmsnr/wiki/bliki/?RefactoringBoundary
- 423 名前:デフォルトの名無しさん [2014/09/13(土) 02:08:52.13 ID:Bjr83Kqx.net]
- ボキもリファクタリングして欲しいです
https://twitter.com/y_konogi/status/510266774290694144/photo/1
- 424 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 02:46:33.71 ID:99VHFg4q.net]
- ちんこの振る舞いを保持したまま変化させる、もちろん性的な意味で。
- 425 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 03:35:58.05 ID:WOkelzJA.net]
- インタフェースの変更はリファクタリングか
capsctrl.que.jp/kdmsnr/wiki/bliki/?IsChangingInterfacesRefactoring > 答えは簡単――インタフェースの変更はリファクタリングだ。 未知のバグフィックスはリファクタリングか? capsctrl.que.jp/kdmsnr/wiki/bliki/?IsFixingAnUnknownBugRefactoring > 私はリファクタリングと呼べると思う。 バグを含んだ振る舞いを知らなかった(あるいは気にしなかった)わけだから、 > これは「外部から見たときの振る舞い」ではないのだ。 たとえバグに気付いていたとしても、 > それが気にするようなバグでなければ、 リファクタリングと呼んでもよいと思う。 最適化はリファクタリングか? capsctrl.que.jp/kdmsnr/wiki/bliki/?IsOptimizationRefactoring > 最適化とリファクタリングはどちらも変化を伴うものだが(なかには最適化かつリファクタリングとなる変化もあるが)、 > 両者は別物だと私は考えている。なぜなら、両者の目的が異なるからである。リファクタリングは、 > コードを理解しやすくするためである。最適化は、プログラムを速くするためである。 > つまり、リファクタリングと最適化は似ており、共通する変更がありはするものの、目的が異なるため、両者は別物であると私は考えている。 宣言の順序変更はリファクタリングか? capsctrl.que.jp/kdmsnr/wiki/bliki/?IsDeclarationOrderingRefactoring > 宣言(Javaで言うメソッドやフィールド)の順序を変更することは、リファクタリングと呼べるのか? > リファクタリングの定義で、 「理解や修正が簡単になるように」というフレーズを使った。 > 宣言部分を変更すると、理解や修正が簡単になるのだろうか? 私は、そういう場合もあると思う。 > ソフトウェアの内部構造を変更しないという点が紛らわしいかもしれない。 リネームしても実行内容は変化しない。 > だがリネームは、プログラムの理解度を向上させる 非常に重要なリファクタリングの一種である。
- 426 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 13:49:13.80 ID:9aicrkfD.net]
- あれもこれも取り入れた「オブジェクト指向」とまるっきり同じパターンだな
どんどん曖昧な意味になりそう
- 427 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 14:14:43.12 ID:Fgrmdz5F.net]
- すべてリファクタリングの結果発生する作業だろ。
まったく理解できていないな。まさに本末転倒
- 428 名前:デフォルトの名無しさん [2014/09/13(土) 16:14:30.25 ID:WJGPx/6o.net]
- 要件を仕様にまとめるのもリファクタリングですか?
- 429 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 20:28:39.39 ID:Y1nBtaE7.net]
- >>428
リファクタリングの一部ではあるな
- 430 名前:デフォルトの名無しさん mailto:sage [2014/09/13(土) 20:33:35.66 ID:zttb1Mfl.net]
- OpenSSLがリファクタリングされまくっているな
- 431 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 00:35:49.32 ID:a/rqPd2y.net]
- >>428
違う > リファクタリング中に2,3日システムが動かなくなっちゃってーなどと言ってる奴がいたら、 > んなもんリファクタリングじゃあなーいと言ってやれ。 ドキュメントをリファクタリングしちゃるとか言ってる奴、 > それもリファクタリングじゃねーぞコラ。 そういうのは、リストラクチャリング(再構築)というのだッ
- 432 名前:デフォルトの名無しさん [2014/09/14(日) 02:43:07.06 ID:XHTMIvTT.net]
- 客の要件はそのままプログラムにできるけど、
それじゃあ最適化できてないから 外面の挙動は変わらない範囲で最適化を行う。 コードの実体だけがリファクタリングの対象じゃないだろ。
- 433 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 03:54:19.00 ID:a/rqPd2y.net]
- >>432
それこそがリファクタリングの誤用で リファクタリングではないと述べられていること。
- 434 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 10:24:07.39 ID:NZ+I8Nx6.net]
- 最適化じゃないんだよ
最適化なんかできるわけねーだろってのが大前提なんだよ
- 435 名前:デフォルトの名無しさん [2014/09/14(日) 13:02:21.11 ID:bjSSfYoR.net]
- バグも含めて機能そのままで、構造だけ変える(良くするつもり)ができるっていうのが結構単純な
還元主義的な思い込みで、実際の構造物は両者は一体というか、都合良くできないと思うんだよね。 テスト駆動とかもそうだけど、この種のスローガンが胡散臭いのは、物作りの本質的な困難を直視 しないで、小手先の技法を当てはめれば解決みたいに喧伝しすぎるところにあるんじゃないかと思う。
- 436 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 14:21:12.62 ID:TJC+Xrrg.net]
- 別に胡散臭いとは思わないが、真に受けちゃったバカが「リファクタリング最強!」とか言い出すのはかなりうざい。
- 437 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 15:42:46.67 ID:a/rqPd2y.net]
- >>435
> バグも含めて機能そのままで、構造だけ変える(良くするつもり)ができるっていうのが結構単純な > 還元主義的な思い込みで、 できるよ。 というか、リファクタリングは構造を良くしましょう(終わり)じゃなくて、 構造を良くするのは当然の話しとして、機能をそのままにするためにはどうすればいいか? って所が出発点で、 機能をそのままにするために、編み出された様々なテクニックが リファクタリング手法なんだよ。 できないというのなら、リファクタリング手法(それには名前が付いている) 一つ一つに対して出来ない根拠を述べてみてよ。 君は単に、リファクタリングに手法があることを知らないで、 闇雲に自己流でなおそうとしてみて失敗しただけでしょう?
- 438 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 15:44:54.17 ID:a/rqPd2y.net]
- なんだ、自分で自白してるじゃんかw
> この種のスローガン スローガンとしか認識していないw リファクタリングは、数学的な証明と なんらかわらないんだが。
- 439 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 18:12:37.41 ID:d9eejC+C.net]
- ダメなコードは直すことでよくできる
という公理が大前提 1000行もあるようなおバカ関数を数学的に定式化して改善するのは無意味なこと 見れば何をすべきかわかる
- 440 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 18:52:51.74 ID:a/rqPd2y.net]
- >>439
つまりどういうこと? リファクタリングすればいいって話を 言葉を変えていってるだけだよね?
- 441 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 19:25:36.36 ID:3Rt2m2d6.net]
- リファクタリングを知らない人は、
リファクタリングを一気に直してしまおうと 思っているに違いない。 リファクタリングが問題が起きることがありえない 小さな修正の繰り返しであることをしらない。
- 442 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 19:30:47.61 ID:NZ+I8Nx6.net]
- デザパタ信者みたいなのが暴走して悪評を広めてるんだろう
- 443 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 19:32:04.00 ID:3Rt2m2d6.net]
- その悪評を鵜呑みにしているのが
頭悪いと言われる所以なわけで。 自分の頭で考えろよとw
- 444 名前:デフォルトの名無しさん mailto:sage [2014/09/14(日) 21:08:34.07 ID:oiv3svus.net]
- リファクタリング
- 445 名前:デフォルトの名無しさん [2014/09/15(月) 00:27:34.64 ID:irRiVyM3.net]
- 流石に数学の定理と同等か言い過ぎだろ。
パターンと同じでさ、セオリーやメソッドじゃない、ちょっとしたコツの集積だろ オブジェクト指向、CMMI、PMBOKとかと同じでさ、アメリカ人の教授とかはそういうのまとめて 自分が言い出しっぺになって、学会ごっこしたり、資格試験の元締めやろうとしたりするのが好きなんだよ。 そういう商売に乗せられているだけなのに、さも学術的な根拠があるものとして「勉強」したりするのが 偉いと思っている奴はどっかオツムが弱いとしか言いようがないw
- 446 名前:デフォルトの名無しさん mailto:sage [2014/09/15(月) 00:37:25.87 ID:9UWhhSIJ.net]
- >>445
数学の定理じゃなくて、数学の証明だろ? a + b = c を b = c - a に置き換えるようなもの。 式の変形だよ。 リファクタリングのテクニックっていうのはどれも この式の変形と同じようなもの。 一部の人が勘違いしているように、ぶっ壊して同じように作りなおすことじゃなくて、 項の移動のように、全く同じ結果になる変形をしているにすぎないんだよ。
- 447 名前:デフォルトの名無しさん mailto:sage [2014/09/15(月) 00:39:47.71 ID:9UWhhSIJ.net]
- >>445
あと警告として、自分が知らないことを 勉強している奴は生意気だっていうのやめたほうがいいよ。 中学生かよ。あいつ勉強なんかしてるんだぜーってw
- 448 名前:デフォルトの名無しさん [2014/09/15(月) 00:43:11.40 ID:irRiVyM3.net]
- 何が「警告」だよ
笑わせるな
- 449 名前:デフォルトの名無しさん mailto:sage [2014/09/15(月) 00:44:52.76 ID:9UWhhSIJ.net]
- いや、普通に恥ずかしいでしょ?
ガリ勉ガリ勉いって勉強しない悪ガキ。 自分が後で困るというのに。 警告してあげないといつまでたっても 気づかないよ。
- 450 名前:デフォルトの名無しさん [2014/09/15(月) 01:15:03.90 ID:WaQuX0Y8.net]
- ぶっ壊して同じ結果が得られるように作り直すこととの違いを教えてください。
- 451 名前:デフォルトの名無しさん mailto:sage [2014/09/15(月) 01:41:27.21 ID:j8xvklWY.net]
- イチから作り直したい病と
現実の範囲で出来る事だけやる工夫の違い
- 452 名前:デフォルトの名無しさん [2014/09/15(月) 02:07:53.50 ID:WaQuX0Y8.net]
- 機能やクラスを抽出するのだって破壊を伴うんじゃないの。
リスクが少ない範囲での変更もあれば、 時には大胆なリファクタリングもあると思うけど。
- 453 名前:デフォルトの名無しさん mailto:sage [2014/09/15(月) 04:21:21.27 ID:9UWhhSIJ.net]
- >>450
> ぶっ壊して同じ結果が得られるように作り直すこととの違いを教えてください。 たとえば数学で、3x - 11 = 4 のxを求めるという問題があった時 1. 移項とい手法を使って、3x = 4 + 11 にして、 2. 足し算という手法を使って、3x = 15 にして 3. 両辺を同じ数で割るという手法を使って、x = 5 という風に、変形をしても等しいと証明されている 安全な手法を使ってシンプルな形に変形していくのがリファクタリング >>452 大胆なリファクタリングって何よ? まずさ、数学の式の変形のやり方と一緒で、 リファクタリング手法には名前があるって知ってる? 一覧見つけてきたから、これのどれが大胆で破壊を伴うのかちゃんと説明してくれ。 d.hatena.ne.jp/asakichy/20100607/1275877997
- 454 名前:デフォルトの名無しさん mailto:sage [2014/09/15(月) 04:22:40.33 ID:9UWhhSIJ.net]
- >>452が言ってる、
大胆なリファクタリングというのは、 これらの手法を使わずに いきなり最終的な答えを だそうとしていることでしょ? それはリファクタリングじゃない。
- 455 名前:デフォルトの名無しさん mailto:sage [2014/09/15(月) 04:24:53.24 ID:9UWhhSIJ.net]
- >>451も少し勘違いしているね。
リファクタリングを「ソースコードを綺麗にしましょう」ということを 英語で言ったものとしか認識していないようだ。 リファクタリングというのは、安全に変形できるという 手法を使って、いっぽずつ書き換えていくもの。 手法を使わない書き換えはリファクタリングじゃない。
- 456 名前:デフォルトの名無しさん mailto:sage [2014/09/15(月) 10:57:57.36 ID:z+pQ6G77.net]
- >>455
それな その手法の確立というか その手法の念押しというか そういう面も大きい
- 457 名前:デフォルトの名無しさん mailto:sage [2014/09/15(月) 11:09:38.77 ID:pNNQiIbO.net]
- これがリファクタ信者の暴走か
|

|