2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

リファクタリングをただのコード修正と思ってる人へ

1 :デフォルトの名無しさん:2010/05/29(土) 17:25:56 .net
テストも書かないでリファクタリングとかうけるw

まずな、リファクタリングでは機能追加・修正は行わない。
動作はまったく同じでコードをきれいに書き換えること。

書き換えるといっても、これなら同じ動きだろ?って推測でやってはいけない。

まずテストを書く。ユニットテストをできるように、
単一のクラスでインスタンスを作る。

汚いコードなのだからたいていは依存関係のせいで単一ではクラスが生成できない
それを生成するために、クラスの動作を書き換える。
といっても元のコードは修正しない。継承やプリプロセッサを使って
依存関係を断ち切るために既存のコードを上書きする。
どうしてもそれが不可能な場合には、決められた手順で最小のコード修正を行う

そうやって既存のクラスのユニットテストを行う。
それでやっとリファクタリングが行える。
既存のクラスのユニットテストを通るように新たなコードに修正、
もしくは新規作成して置き換える。

この手順と考え方を守ってないのはリファクタリングではない。

で?

695 :デフォルトの名無しさん:2017/02/07(火) 18:13:12.04 ID:hq/hh9Cr.net
レベル低くて結構だが
要件から漏れた設計なんて後からいくらでも見つかるのが現実
最初から設計や実装が完璧ならリリース後のコードに手を付けようなんて考えすら出てこないだろ

696 :デフォルトの名無しさん:2017/02/07(火) 18:17:09.92 ID:i748zAYA.net
ID:pecoNgwzがすごい小さい世界で生きていることだけはよくわかる

697 :デフォルトの名無しさん:2017/02/07(火) 20:26:46.11 ID:hbaz0JGp.net
スレタイ通りの人達

698 :デフォルトの名無しさん:2017/02/07(火) 21:49:17.94 ID:6yEMM6pR.net
>>690
> 1箇所数行のリファクタリングであろうが
君はこれで何がリファクターされると考えているのかね?
既存のコードを君好みのノーテーションに変える事をリファクタリングとは言わないのだよ
リファクタリングとはただのコード修正とは違うという意味
君分かってないよね

699 :デフォルトの名無しさん:2017/02/07(火) 21:55:16.30 ID:WNm+xswo.net
っていう勘違いをここまで堂々と話してるところが2chだなぁと感じる

700 :デフォルトの名無しさん:2017/02/07(火) 21:58:23.39 ID:S1oxUZhq.net
>>690
> E2Eテストやシステムテストでなければテストできないようなリファクタリングって、具体的にどんなものなんだ?

違う言語にリファクタリングした場合

701 :デフォルトの名無しさん:2017/02/07(火) 22:06:09.85 ID:S1oxUZhq.net
>>691
> リファクタリングで効率が良くなったとして、ユニットテストレベルで勝手にリリースして
> 本当は他のシステムで必要な協調動作パラメータの再調整が必要だったり
> 想定してたバッファがパンクする可能性とか想像できんの?

これリファクタリングと全く関係ないよね?


機能追加で便利になったとして、ユニットテストレベルで勝手にリリースして
本当は他のシステムで必要な協調動作パラメータの再調整が必要だったり
想定してたバッファがパンクする可能性とか想像できんの?

702 :デフォルトの名無しさん:2017/02/07(火) 22:10:27.76 ID:WNm+xswo.net
>>700
言語関係ないと思うが。
出来た実行可能ファイルかライブラリーか知らんがそれの挙動が変える前と代わっていないかテストすればいいだけだろ

703 :デフォルトの名無しさん:2017/02/07(火) 22:11:07.79 ID:S1oxUZhq.net
>>691
> そもそもリファクタリング単体の案件なんてまず発生しないし
当たり前。何かの修正があるときに
適切な形に変えるのがリファクタリング

「何かの修正」が加わる前の時点での適切な設計と
「何かの修正」が加わった後の適切な設計は必ずしも同じではない

「何かの修正」を加えるときは、もし最初から「何かの修正」が存在したと
仮定した時の適切な設計も同時に実現しなければいけない

修正するたびに適切な設計から離れていく、修正するたびに
壊していくようなやり方は責任あるプロの仕事とはいえない

> 他の案件の一部にねじ込むってパターンがほとんどだから結局テストは全工程やる事になるけど

結局テストは全行程やるんだから、修正のたびにリファクタリングを加えてなんのもんだもない

704 :デフォルトの名無しさん:2017/02/07(火) 22:11:57.21 ID:S1oxUZhq.net
>>702
だから、出来た実行可能ファイルかライブラリーか知らんがそれの挙動が変える前と代わっていないか
E2Eテストやシステムテストでテストするんだよ

705 :デフォルトの名無しさん:2017/02/07(火) 22:21:19.34 ID:NKjx6bYj.net
>>704
実行ファイル一つならそうである可能性もあるけど、ライブラリだったらシステム全体ではないよね。言語関係ないとはそういうこと。

706 :デフォルトの名無しさん:2017/02/07(火) 22:24:10.12 ID:NKjx6bYj.net
勘違いさせたならすまんが、俺は別にリファクタリングにシステムテストとかが必要ないなんて思ってない。その一つとは別人。

707 :デフォルトの名無しさん:2017/02/07(火) 22:44:43.58 ID:K2oda13o.net
リファクタにE2Eテストがいらないというのはある意味ただしいんだよ
アジャイルにおけるリファクタなんかがまさにそう
自動テストありきでイテレーションに組み込まれる
ただリファクタにも色々あるよねって話

708 :デフォルトの名無しさん:2017/02/07(火) 22:53:25.47 ID:hbaz0JGp.net
リファクタリングの責任範囲はユニットテスト迄でシステムテストとかは機能の変更、追加、向上なんかの範囲だと思うけどね
この二つを混ぜてリファクタリングと呼んでる人が一定数いて話をややこしくしてる
もちろんリリース前には一通りテストはするけどそれはそれ。リファクタリングに必要なテストとは別物

709 :デフォルトの名無しさん:2017/02/07(火) 22:55:46.93 ID:NKjx6bYj.net
>>707
いやE2Eテストが自動化出来ないというわけでもないからちょっと違うくない?
リファクタリングにも色々あるよねというのには同意。
リファクタリングの対象を決めることは大事だよね。
システム全体をリファクタリングしようとしても成功率は低い。だからE2Eテストはいらない(システム全体を一度に変えようとすんな)と言いたい気持ちも解る。

710 :デフォルトの名無しさん:2017/02/07(火) 22:57:24.46 ID:6yEMM6pR.net
>>708
責任範囲がユニッテテスト迄w
もはや何を言いたいのか自分でも分かってないだろお前w

711 :デフォルトの名無しさん:2017/02/07(火) 23:01:56.40 ID:hbaz0JGp.net
>>710
君が言いたいことは分かんないけど自分の言いたいことはわかってるよ

712 :デフォルトの名無しさん:2017/02/07(火) 23:08:35.66 ID:6yEMM6pR.net
>>711
いや分かってねえよお前w

既存のユニットテストが利用出来るようなコード修正は
お前のコードオナニー以外の何者でもない
お前はリファクタリングという正義を笠に着てコードオナニーをしているだけの
童貞コーダーにすぎないのだよ

713 :デフォルトの名無しさん:2017/02/07(火) 23:11:01.58 ID:hbaz0JGp.net
>>712
まさに混同してる人が話をややこしくしてる見本

714 :デフォルトの名無しさん:2017/02/07(火) 23:16:01.53 ID:S1oxUZhq.net
>>705
何だその意味がない答えは?

> 実行ファイル一つならそうである可能性もあるけど、ライブラリだったらシステム全体ではないよね。言語関係ないとはそういうこと。

ライブラリだったらシステム全体ではないかもしれないけど、実行ファイル一つならそうである可能性もある

715 :デフォルトの名無しさん:2017/02/07(火) 23:16:32.08 ID:K2oda13o.net
>>709
まあそうね

>>712
いやわかってないのはおまえ
リファクタといえば一般的にはTDDありきのおまえのいうオナニーだ

716 :デフォルトの名無しさん:2017/02/07(火) 23:17:49.44 ID:S1oxUZhq.net
>>708
> システムテストとかは機能の変更、追加、向上なんかの範囲だと思うけどね

意味が全くわからん。外から見たときに機能も何も変わらなくて
内部の設計が良くなってるならそれはリファクタリング

717 :デフォルトの名無しさん:2017/02/07(火) 23:19:18.43 ID:S1oxUZhq.net
>>715
> リファクタといえば一般的にはTDDありきの

TDDがリファクタリングありきなのであって
リファクタリングはTDDとは関係ない

718 :デフォルトの名無しさん:2017/02/07(火) 23:22:44.32 ID:K2oda13o.net
>>717
関係ないのではなくリファクタがそれだけではないってだけ
おまえめんどくさいな

719 :デフォルトの名無しさん:2017/02/07(火) 23:23:22.80 ID:S1oxUZhq.net
>>718
それだけじゃないっていうのなら、
他に何があるのかを言えよ

お前は否定するだけで、自分の意見を何も言ってない

720 :デフォルトの名無しさん:2017/02/07(火) 23:23:38.10 ID:6yEMM6pR.net
>>715
んなアホなw
まともなリファクタリングしている奴だって大勢いるわw

721 :デフォルトの名無しさん:2017/02/07(火) 23:23:56.74 ID:NKjx6bYj.net
>>714
だから違う言語にしたというのと、システムテストをするというのは無関係だって話だよ。それだけ。

722 :デフォルトの名無しさん:2017/02/07(火) 23:25:16.66 ID:NKjx6bYj.net
ID:6yEMM6pR がまともなリファクタリングを語るのはもうギャグにしか見えない

723 :デフォルトの名無しさん:2017/02/07(火) 23:32:41.16 ID:S1oxUZhq.net
>>721
外部から見たときの動きを変えずに、内部の言語を変えたら
ユニットテストもつかえねーだろ。
何を言ってんだお前

724 :デフォルトの名無しさん:2017/02/07(火) 23:37:57.69 ID:hbaz0JGp.net
>>716
そう言ってるつもりだけど?機能の変更までやったらシステムテストは必要だけどそれはリファクタリングの後の工程だよねってこと

725 :デフォルトの名無しさん:2017/02/07(火) 23:41:30.42 ID:NKjx6bYj.net
>>723
なんで?例えばC互換のABI作れる言語なんて山ほどあるけど(バイナリ作る言語ではほぼ必須機能だよね)
他にも内部の言語は変えたけどモジュールの外向きのラッパーは今までと同じ言語で書くというのもあるだろ

726 :デフォルトの名無しさん:2017/02/07(火) 23:46:26.22 ID:6yEMM6pR.net
>>724
お前頭沸いてんなw
そもそもテストの存在意義すら分かってねえじゃねえかw
ユニットテストは必要だけどシステムテストは必要ないなどと言う開発メソッドは
人類の歴史上でただの一度たりとも存在した事はねえよw

727 :デフォルトの名無しさん:2017/02/07(火) 23:53:55.55 ID:S1oxUZhq.net
>>725
なんでお前特別な状況下においてできるって話をしてるんだ?
一般的にはできない(やらない)だろ

728 :デフォルトの名無しさん:2017/02/08(水) 00:00:15.94 ID:xLLPMt9l.net
>>727
別に特別とは思わないけど。例もあるよね。
FirefoxのメディアパーサーをRustで書き直した話とか。

729 :デフォルトの名無しさん:2017/02/08(水) 00:03:59.64 ID:oBIe6m9v.net
>>719
ほんとめんどくさいな
バカがオナニーと言ってるようなifをswitchに変えるリファクタからソフトアーキ自体を変えるものまで全てリファクタだっつってんだろ

730 :デフォルトの名無しさん:2017/02/08(水) 00:16:01.83 ID:ahyxJIg+.net
>>729←自分のオナニーが認められないから根本的な設計思想の変更までリファクタリングだと言いだす極端すぎるバカw

731 :デフォルトの名無しさん:2017/02/08(水) 00:37:41.54 ID:E3hlYujb.net
>>730
涙ふけよ

732 :デフォルトの名無しさん:2017/02/08(水) 03:53:58.44 ID:/T6I+uKy.net
バカをチンカス野郎と言い換えても
罵倒であることは変わりない
これがリファクタリングでしょ?

733 :デフォルトの名無しさん:2017/02/08(水) 04:18:31.48 ID:TcrM+SWf.net
「外部からみた振る舞いを変えずに内部の設計を変更すること」がリファクタリング
ここでいう"外部"が関数の外部だったりシステムの外部だったりするけど、どっちもリファクタリング

リファクタリングを実施するのは設計〜製作工程
TDDなら製作と同時にユニットテストも当然走る
TDDであってもそうで無くても、製作後にテストの工程は当然流す

添削おなしゃす

734 :デフォルトの名無しさん:2017/02/08(水) 05:18:42.07 ID:ahyxJIg+.net
>>733
> TDDなら製作と同時にユニットテストも当然走る
> TDDであってもそうで無くても、製作後にテストの工程は当然流す
これはリファクタリングの定義とは関係ないし
TDDでなくてもユニットテストは当然走る

735 :デフォルトの名無しさん:2017/02/08(水) 09:24:40.45 ID:pGBkCxNv.net
>>734
内省したのか?

736 :デフォルトの名無しさん:2017/02/08(水) 09:39:48.42 ID:nBuIwUQ3.net
>>734
>これはリファクタリングの定義とは関係ないし
そうだね
上の方でごっちゃにしてる人が居たからついでに書いたけど、語弊があったね

>TDDでなくてもユニットテストは当然走る
そうだね
製作と"同時に"走るかどうかだけの違いだと思う

737 :デフォルトの名無しさん:2017/02/08(水) 09:46:07.86 ID:tJ+Jm8vl.net
おれはTDDなんて大嫌いだ
あれ考えやつはアホ

738 :デフォルトの名無しさん:2017/02/08(水) 09:47:23.69 ID:3ajnzt+4.net
>>737
どんなところが嫌いなん?

739 :デフォルトの名無しさん:2017/02/08(水) 13:47:01.32 ID:DMN235DC.net
>>738
日本の社畜プログラマーは文系卒のゴミばっかりだから
日本のソフト業界は大量のゴミを一部の有能なエンジニアがコントロールすることでなんとか成立してる
ゴミにTDDなんてやらせたら有能な人間がリファクタリングに追われる羽目になる

740 :デフォルトの名無しさん:2017/02/08(水) 14:21:20.51 ID:HCDAsN67.net
>>739
どうせゴミが書いたコードなんて修正しなければならないんだから、テストがちゃんと書かれてる方がそれをパスするようにリファクタリング出来てマシだろ。

741 :デフォルトの名無しさん:2017/02/08(水) 18:18:22.76 ID:DMN235DC.net
ゴミが書いたテストコードなんて使えるわけなかろう
時間の無駄

742 :デフォルトの名無しさん:2017/02/08(水) 19:05:55.15 ID:nBuIwUQ3.net
それTDD関係ないじゃん

743 :デフォルトの名無しさん:2017/02/08(水) 19:51:16.87 ID:z7CrxHSJ.net
テストコード真っ先にレビューしろよ

744 :デフォルトの名無しさん:2017/02/08(水) 19:54:03.00 ID:ahyxJIg+.net
>>739←TDDもリファクタリングも分かってないゴミwこういうのがリファクタオナニストw

745 :デフォルトの名無しさん:2017/02/08(水) 20:10:43.25 ID:9HGTCoP8.net
リファクタリング前提の開発なんて小規模開発以外はやるものじゃないね

746 :デフォルトの名無しさん:2017/02/08(水) 20:59:58.04 ID:ahyxJIg+.net
それを言うならプロトタイピングだろw
なんだよリファクタリング前提てw

747 :デフォルトの名無しさん:2017/02/08(水) 21:04:39.44 ID:saIve44q.net
>>746
オナニー君まだいたの?

748 :デフォルトの名無しさん:2017/02/08(水) 22:05:08.20 ID:EqksEKaR.net
>>745
> リファクタリング前提の開発なんて小規模開発以外はやるものじゃないね

設計に問題があるときどうしてるの?
問題があるっていうのは、最初の時点で間違っていた場合の他
機能追加などで最初の想定と変わってしまった場合

リファクタリングしないで、問題ある設計のまま
開発を続行するの?

大きい開発ほど最初に想定しなかった事態が起こるはずだけど?

749 :デフォルトの名無しさん:2017/02/08(水) 22:42:04.56 ID:E3hlYujb.net
>>748
それをリファクタリングと言うのか
ただの上流への出戻り、やり直し、糞開発じゃないの

>>746
アジャイルって知ってる?オナニーくん

750 :デフォルトの名無しさん:2017/02/08(水) 22:59:10.86 ID:EqksEKaR.net
>>749
> ただの上流への出戻り、やり直し、糞開発じゃないの

上流へ出戻りするのは良いんだが、
今のコードはどうするんだよ?捨てるのか?


リファクタリングというのは今のコードをよく知られている
手順を使って安全に(バグを入れることなく)変化させていくことをいう


リファクタリングの勉強をちゃんとした人なら、知っているはずだが
リファクタリングしないことを選択すべき理由として
作り直したほうが速い場合っていうのがある。

作り直したほうが早い場合はリファクタリングの哲学によって作りなおすが、
コードを安全に変化させたほうが早い場合は当然リファクタリングをする。

で最初の質問に戻るが、お前コードを修正したほうが早い場合でも
リファクタリングしないで、コードを捨てて作り直すって言ってんの?
それとも行き当たりばったりなただの修正を行ってバグ発生させるの?

751 :デフォルトの名無しさん:2017/02/08(水) 23:15:25.00 ID:/T6I+uKy.net
現状それなりに動いているけど
将来性を考慮しての改善するのがリファクタリングでしょ

そもそもマトモに動いてないコードは問題外

752 :デフォルトの名無しさん:2017/02/08(水) 23:18:57.65 ID:EqksEKaR.net
> 将来性を考慮しての改善するのがリファクタリングでしょ
YAGNIに反するからそれは違う。
その将来が絶対来るというのなら話は別だけど

753 :デフォルトの名無しさん:2017/02/08(水) 23:22:55.16 ID:E3hlYujb.net
>>750
うーんw
いずれにしてもコードを捨てる捨てないに関わらず設計に問題があるものをその開発中に直すことをおれの界隈ではリファクタリングとは言わないね
おまえがそれをリファクタリングと言うのは自由なので好きにしてくれw

754 :デフォルトの名無しさん:2017/02/08(水) 23:27:19.72 ID:EqksEKaR.net
>>753
俺が言ってるんじゃなくて世間一般の定義。

っていうか開発中とそうでないのが別れてる時点で
お前、前時代的だしなぁ。

お前なら一日に何十回もデプロイするような
ウェブアプリをどうやって変化させていくんだ?

「俺にはできません。」ですかな?w

755 :デフォルトの名無しさん:2017/02/08(水) 23:31:13.83 ID:EqksEKaR.net
ちなみに、TDDでは最初にテストコードを書いて
それに通る最小限の実装を書く、その後リファクタリングを
行うというのを繰り返して開発するものので、

http://www.atmarkit.co.jp/ait/articles/1403/05/news035.html#025
> 開発中に直すことをおれの界隈ではリファクタリングとは言わないね


> 開発中に直すことをおれの界隈ではリファクタリングとは言わないね
というのはもぐり、無知レベルでしかないよ

756 :デフォルトの名無しさん:2017/02/08(水) 23:31:50.65 ID:EqksEKaR.net
引用を間違えた

http://www.atmarkit.co.jp/ait/articles/1403/05/news035.html#025
>【5】テストを成功状態にしたままリファクタリングする

757 :デフォルトの名無しさん:2017/02/08(水) 23:36:21.44 ID:E3hlYujb.net
うーんw
自ら話を反らしていくスタイルw

758 :デフォルトの名無しさん:2017/02/08(水) 23:38:20.99 ID:EqksEKaR.net
それてないじゃん?w

それてるっていうのなら、戻していいよ。君の手で

759 :デフォルトの名無しさん:2017/02/08(水) 23:53:10.75 ID:E3hlYujb.net
うーんww
そもそも少人数短期イテレーション開発におけるリファクタリングの話なんて始めからしてないのだがw
毎日デプロイするwebアプリ?そんな小さな話も全くしてないw
おまえが数億円契約の大規模開発をやったことないのはよくわかったw

760 :デフォルトの名無しさん:2017/02/09(木) 01:52:04.00 ID:CNUBJX7I.net
>>759
大規模だからって何の自慢になると思ってるんだ?

大規模は別にどうでもいいよ
どういった開発をしているのかが重要だろ。

いくら金がかかっているからって
ろくでもないやつばっかり集めて人海戦術で
ひたすら効率の悪い開発方法をしている?
だとしたら自慢どころか恥だよね。

もっと規模とか金以外に自慢できることないの?

761 :デフォルトの名無しさん:2017/02/09(木) 04:01:02.59 ID:VpXdxNl0.net
>>752
は?
while文よりfor文の方がわかりやすいね
って書き直す事のどこが機能追加なの?

読みやすくしておくことも未来への投資じゃね?

762 :デフォルトの名無しさん:2017/02/09(木) 06:44:32.92 ID:IOSaScxB.net
リファクタリングに開発規模は関係ない
レガシーコードの山に頭抱えながら仕事するのも自由だし、好きにしてくれ

763 :デフォルトの名無しさん:2017/02/09(木) 07:38:20.57 ID:W9c8fNbT.net
規模が大きい開発はクソコーダーがクソコードを量産してくるから俺様が随時コードを書き換えてやる

ってのが ID:E3hlYujb の主張
こういうリファクタオナニストに好きにさせてはいけない

764 :デフォルトの名無しさん:2017/02/09(木) 08:20:04.14 ID:2NAFiD3Z.net
リファクタリングに必要な見積りを出してくれ

765 :デフォルトの名無しさん:2017/02/09(木) 11:43:47.05 ID:qhoyYE05.net
>>764
これな

766 :デフォルトの名無しさん:2017/02/09(木) 11:48:27.92 ID:qhoyYE05.net
>>763
そうじゃなくて作ってからリファクタリングなんてやってる暇があるなら先にレビューで潰すってことさ
それでも設計レベルでの変更が必要にるならレビュアもゴミだったってだけのこと

767 :デフォルトの名無しさん:2017/02/09(木) 12:39:15.13 ID:Ra4XvV1b.net
本当に大規模開発やったことあるのか?
新規で作って作りっぱなしだったのか?

768 :デフォルトの名無しさん:2017/02/09(木) 12:49:33.29 ID:2OmAEiex.net
>>766
それこそ規模の大小は関係ないわけだが
結局なにが言いたいのお前

769 :デフォルトの名無しさん:2017/02/09(木) 13:07:11.30 ID:/WGpXuP3.net
>>768
関係ないことはない
設計レベルでの見直しをリファクタリンクを言うのであればそんなことがやすやすと可能なのは少規模開発だけ

770 :デフォルトの名無しさん:2017/02/09(木) 13:11:02.24 ID:/WGpXuP3.net
話を戻すと開発中にそんな状況になるのを俺はリファクタリングとは言わん
リファクタリングとはもっと前向きなものだ

っていうことを>>749から何度も言ってるからだけなんだがねw

771 :デフォルトの名無しさん:2017/02/09(木) 14:01:01.97 ID:Ra4XvV1b.net
じゃあ何のことをリファクタリングと呼んでるの?

772 :デフォルトの名無しさん:2017/02/09(木) 14:27:10.00 ID:VpXdxNl0.net
そもそもファクタリングとは?
それをやり直すってことでしょ

773 :デフォルトの名無しさん:2017/02/09(木) 15:01:34.48 ID:Lyr2GEHi.net
じゃあ逆に聞くけど設計から変えてUTのコードがそのまま使えるケースってどんなの?w
テストコードの書き換えが必要な改修は開発スキームとして事前にスケジュールに組み込まれるリファクタリングとは全く別ものだろww

774 :デフォルトの名無しさん:2017/02/09(木) 15:14:26.88 ID:lnTHGhne.net
別にリファクタリングは個別のユニットテストに影響ないレベルとは限らないでしょ。
リファクタリング対象によってそこは取捨選択すべき。

775 :デフォルトの名無しさん:2017/02/09(木) 17:19:48.49 ID:EPpoXydB.net
結論から言えば概念としてのリファクタリングは否定しないが、
リファクタリングのための工数なんて実際は取れないし、
そんな余計なリソースがあるなら他の事に回した方がいい
所詮暇を持て余した学生の戯言だよ

776 :デフォルトの名無しさん:2017/02/09(木) 19:13:25.68 ID:Lyr2GEHi.net
>>774
いやだから話の前提が>>748だから選択も糞もないくやらないといけない状況でそれをリファクタリングとはいわねーって
もうええわww

777 :デフォルトの名無しさん:2017/02/09(木) 19:41:42.20 ID:2NAFiD3Z.net
プロジェクトの開始時にリファクタリングの見積も出してね
オーバーした分はお金出せないからね

778 :デフォルトの名無しさん:2017/02/09(木) 20:10:08.12 ID:VpXdxNl0.net
だからまずファクタリングの定義からしようか
それをやり直すってだけの話でしょ

779 :デフォルトの名無しさん:2017/02/09(木) 20:29:21.19 ID:Ra4XvV1b.net
機能要件を満たすため
非機能要件を満たすため
オナニーするため
目的が何であろうとリファクタリングはリファクタリングですよ

780 :デフォルトの名無しさん:2017/02/09(木) 21:09:00.44 ID:DXVOdvHd.net
オブジェクト指向でシステム開発するなら、リファクタリングは必須です。
クラスの設計、インターフェースの抽出・設計といったプログラミング前に
既に必要です。

781 :デフォルトの名無しさん:2017/02/09(木) 21:09:16.18 ID:W9c8fNbT.net
>>770
> リファクタリングとはもっと前向きなものだ

ここへ来ていきなり精神論かよ
やっぱり頭沸いてんだろお前w

782 :デフォルトの名無しさん:2017/02/09(木) 21:29:45.22 ID:l61bzEJu.net
とりあえず動くものを新規で作って書き換える場合か、すでに動いているもので、修正が入りまくって汚くなったものを整理するくらいしかない。

自由にいじくりまわすのをリファクタリングとは言わない。

783 :デフォルトの名無しさん:2017/02/09(木) 21:35:33.02 ID:CNUBJX7I.net
>>761
> while文よりfor文の方がわかりやすいね
> って書き直す事のどこが機能追加なの?

while文よりfor文の方がわかりやすいねとか
俺は言ってない。お前が言ったことだ。

お前は、機能追加じゃない例を自分で出して
自分で自分にツッコミを入れてるだけなんだが、

何がしたいの?

784 :デフォルトの名無しさん:2017/02/09(木) 21:39:19.62 ID:lnTHGhne.net
とりあえずみんな
http://www.shoeisha.co.jp/book/detail/9784798116839
とか
https://estore.ohmsha.co.jp/titles/978427405019P
これ読んでる?

785 :デフォルトの名無しさん:2017/02/09(木) 21:42:53.34 ID:CNUBJX7I.net
>>776
> いやだから話の前提が>>748だから選択も糞もないくやらないといけない状況でそれをリファクタリングとはいわねーって

お前根本的に間違ってるんだわ。

まず先に最初の話のツッコミ漏れを補完しておくとだな
>>748で設計に問題があるときはどうするのか聞いた。
これは言い換えると「やり直し以外の選択の余地がない例」として上げたんだよ。

それなのに、>>749
> ただの上流への出戻り、やり直し、糞開発じゃないの
やり直しすればいいじゃんって、お前アスペか?

やり直し以外の選択肢の余地がないことにたいして、
「やり直ししろ」ってそれは反論になってない
俺が意図してる答えだ

でな、リファクタリングかどうかっていうのは、手段なの
「糞もないくやらないといけない状況」のときに、
リファクタリングを使って、修正を行うのか
リファクタリングを使わずに、修正を行うかの話

ここまで言えば、お前が根本的に間違ってることが理解できるだろ?
お前はリファクタリングが手段であることをわかってない。どんな状況かはどうでもいい。
修正をするときに、どうやって修正するかの話だ。

お前は、リファクタリングしないで、行き当たりばったりで修正してバグを入れ込むんだろう?
俺はリファクタリング(わかりやすく言えばリファクタリングの本に書いてあるテクニック)を使って修正するんだよ

786 :デフォルトの名無しさん:2017/02/09(木) 21:45:29.54 ID:CNUBJX7I.net
>>777
> プロジェクトの開始時にリファクタリングの見積も出してね

リファクタリングが手段であることを知れば、
「リファクタリング(手段)の見積もり」がおかしい言い方だとわかるだろう。

正しく言うならば「プロジェクトの開始時に修正の見積もだしてね」だ
修正にはバグだけじゃなくて仕様の追加や間違いによる修正も含まれる。


あとは修正するしかない状況で、行き当たりばったりで修正するか
リファクタリングで修正するかの違いなだけだ

787 :デフォルトの名無しさん:2017/02/09(木) 21:46:27.58 ID:CNUBJX7I.net
>>775
> リファクタリングのための工数なんて実際は取れないし、
リファクタリングのための工数が取れなくて
リファクタリングを使わない修正であれば
工数が取れるっておかしくね?w

788 :デフォルトの名無しさん:2017/02/09(木) 21:52:20.21 ID:lnTHGhne.net
https://estore.ohmsha.co.jp/titles/978427405019P

リファクタリングに工数がーとか言ってる奴はこれ特に読んで欲しい

789 :762:2017/02/09(木) 21:55:31.20 ID:VpXdxNl0.net
>>783
ほらな
きちんと書いてないと
こうやって誤解されるわけだ
言いたかったのは

「現状while文で処理されていて問題ないけど
このケースはfor文の方がわかりやすいから書き直そう!」
どこに機能追加される余地があんの?

790 :デフォルトの名無しさん:2017/02/09(木) 21:57:10.56 ID:CNUBJX7I.net
>>789
> どこに機能追加される余地があんの?
ないよ?

誰がそこに機能追加される余地があるって
言ってるの?

お前?

791 :デフォルトの名無しさん:2017/02/09(木) 21:58:18.00 ID:lnTHGhne.net
>>790
>>752 こいつ

792 :デフォルトの名無しさん:2017/02/09(木) 21:58:44.70 ID:CNUBJX7I.net
>>752には while とか for の話は
明らかに書いてないけど?

793 :デフォルトの名無しさん:2017/02/09(木) 21:59:52.90 ID:VpXdxNl0.net
>>790
あのさー
YAGNIに反するって言ったのは誰なんですかね?
余計な機能はつけるなってことでしょ?
whileからforに書き換えるのに何か機能追加されんの?

794 :デフォルトの名無しさん:2017/02/09(木) 22:01:15.92 ID:CNUBJX7I.net
YAGNIの話?

753 自分:デフォルトの名無しさん[sage] 投稿日:2017/02/08(水) 23:18:57.65 ID:EqksEKaR [3/7]
> 将来性を考慮しての改善するのがリファクタリングでしょ
YAGNIに反するからそれは違う。


これがどうfor やwhileと関係すんの?

795 :デフォルトの名無しさん:2017/02/09(木) 22:02:47.10 ID:lnTHGhne.net
ほんまやね。レス辿って明らかにおかしいのを見つけたがら言ったけどそれforのレスにかすりもしなかったわ。すまん。

総レス数 845
252 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★