テストも書かないでリファクタリングとかうけるw
まずな、リファクタリングでは機能追加・修正は行わない。
動作はまったく同じでコードをきれいに書き換えること。
書き換えるといっても、これなら同じ動きだろ?って推測でやってはいけない。
まずテストを書く。ユニットテストをできるように、
単一のクラスでインスタンスを作る。
汚いコードなのだからたいていは依存関係のせいで単一ではクラスが生成できない
それを生成するために、クラスの動作を書き換える。
といっても元のコードは修正しない。継承やプリプロセッサを使って
依存関係を断ち切るために既存のコードを上書きする。
どうしてもそれが不可能な場合には、決められた手順で最小のコード修正を行う
そうやって既存のクラスのユニットテストを行う。
それでやっとリファクタリングが行える。
既存のクラスのユニットテストを通るように新たなコードに修正、
もしくは新規作成して置き換える。
この手順と考え方を守ってないのはリファクタリングではない。
で?
リファクタリングをただのコード修正と思ってる人へ
■ このスレッドは過去ログ倉庫に格納されています
2010/05/29(土) 17:25:56
2011/06/05(日) 07:54:59.13
>>82
だとすれば
>ちゃんとインスタンスの生成箇所をしっかり制御すればそもそもプログラム全域に一つの値が
>複数使いまわされることなどほとんどない(はず)
ってのはグローバル変数使ってる前提なのか
だとすれば
>ちゃんとインスタンスの生成箇所をしっかり制御すればそもそもプログラム全域に一つの値が
>複数使いまわされることなどほとんどない(はず)
ってのはグローバル変数使ってる前提なのか
2011/06/05(日) 08:21:32.31
2011/06/05(日) 09:03:52.51
いや俺の脳みそ云々の問題でなく、矛盾してるんだってば
管理が要らないのか要るのか、どっちなのさ
管理が要らないのか要るのか、どっちなのさ
2011/06/05(日) 09:31:51.48
>>85
それとグローバル変数がどうして関係あると思ったの?
それとグローバル変数がどうして関係あると思ったの?
2011/06/05(日) 09:39:59.44
2011/06/05(日) 09:43:54.09
>>83での「だとすれば」がどういう意味もってるのかわからない
なにが「だとすれば」なの?
馬鹿だからグローバル使うしか方法わからないだけじゃない?
いままでプログラム組んでてこの程度ってすごくみじめ
なにが「だとすれば」なの?
馬鹿だからグローバル使うしか方法わからないだけじゃない?
いままでプログラム組んでてこの程度ってすごくみじめ
2011/06/05(日) 10:04:45.71
グローバル変数を使わなければ管理が要らないなら
何故にインスタンスの制御とかの話になったの?
要らないんでしょ?
何故にインスタンスの制御とかの話になったの?
要らないんでしょ?
2011/06/05(日) 12:27:20.48
2011/06/05(日) 12:35:52.01
>>90
「何故」と理由を聞いてるのだが
「何故」と理由を聞いてるのだが
2011/06/05(日) 12:53:18.34
2011/06/05(日) 14:26:48.94
2011/06/05(日) 14:28:38.99
2011/06/05(日) 15:03:32.48
>>94
何故そう思った?
何故そう思った?
96デフォルトの名無しさん
2011/10/09(日) 01:02:25.28 ああげ
2011/10/09(日) 04:44:50.43
#define 使うな、までは同意できたんだがなあ…
2011/10/09(日) 12:05:06.67
リファクタリングとリエンジニアリングの関係は?
2011/10/09(日) 18:39:07.21
リファクタリングなんて、簡単な概念でしょ。
たとえば、多角形を表示するプログラムがあったとする。
それは実際は三角形を表示するプログラムを反復実行してるとする。
三角形を表示するプログラムは、線を表示するプログラムを反復実行してるとする。
線を表示するプログラムは、点を表示するプログラムを反復実行してるとする。
すると、
点を表示するプログラムを、高速に書き換えれば、
これに依存した全てのプログラムが、その内容を変更しなくとも、高速化する。
ってのがリファクタリング。
これのポイントは、修正したのは点を表示するプログラムだけで、それ以外は一切変更していないのに、他も高速化できること。
このためには、インターフェースを極力保ったままで、中身だけを変更することが重要になる。
これがリファクタリングと、普通のコード修正との違い。
たとえば、多角形を表示するプログラムがあったとする。
それは実際は三角形を表示するプログラムを反復実行してるとする。
三角形を表示するプログラムは、線を表示するプログラムを反復実行してるとする。
線を表示するプログラムは、点を表示するプログラムを反復実行してるとする。
すると、
点を表示するプログラムを、高速に書き換えれば、
これに依存した全てのプログラムが、その内容を変更しなくとも、高速化する。
ってのがリファクタリング。
これのポイントは、修正したのは点を表示するプログラムだけで、それ以外は一切変更していないのに、他も高速化できること。
このためには、インターフェースを極力保ったままで、中身だけを変更することが重要になる。
これがリファクタリングと、普通のコード修正との違い。
100デフォルトの名無しさん
2011/10/09(日) 18:57:05.08101デフォルトの名無しさん
2011/10/09(日) 19:57:12.25 >>99
近いが微妙にはずれている。
リファクタリングと高速化は無関係。
リファクタリングした結果、高速化することもあれば
(他にメリットがあるならば)逆に遅くなることもある
インターフェースも変えないこともあれば変えることもある。
リファクタリング本にもしっかり、「インターフェースを変えるリファクタリング」が載っている。
リファクタリングの目的はアプリ全体の動きを変えずに、ソースコードを綺麗に改善すること。
ただこの目的を達成するために、適当に修正するのとリファクタリングとでは違うものがある。
それはリファクタリングはちゃんとした手順でやるものだということ、
この手順に従うことが、修正とリファクタリングの違い。
どういった手順があるかは、リファクタリング本に書いてある。
この手順に従って修正することでバグを入れずに修正することが可能になる。
近いが微妙にはずれている。
リファクタリングと高速化は無関係。
リファクタリングした結果、高速化することもあれば
(他にメリットがあるならば)逆に遅くなることもある
インターフェースも変えないこともあれば変えることもある。
リファクタリング本にもしっかり、「インターフェースを変えるリファクタリング」が載っている。
リファクタリングの目的はアプリ全体の動きを変えずに、ソースコードを綺麗に改善すること。
ただこの目的を達成するために、適当に修正するのとリファクタリングとでは違うものがある。
それはリファクタリングはちゃんとした手順でやるものだということ、
この手順に従うことが、修正とリファクタリングの違い。
どういった手順があるかは、リファクタリング本に書いてある。
この手順に従って修正することでバグを入れずに修正することが可能になる。
102デフォルトの名無しさん
2011/10/09(日) 23:20:59.42 高速化は変更の具体例として挙げているだけで、
高速化がリファクタリングだとは言っていないだろ。
高速化がリファクタリングだとは言っていないだろ。
103デフォルトの名無しさん
2011/10/09(日) 23:59:37.52 >>101
I/F変えたら機能変更だろ。
リファクタリングの範囲をどこまで取るかであって
その範囲で内部I/Fは変わることがある。
手順がどーのだって、効果的な手法がそうだってだけで、
ある作業がリファクタリングかどうかの判断に手順は関係ない。
I/F変えたら機能変更だろ。
リファクタリングの範囲をどこまで取るかであって
その範囲で内部I/Fは変わることがある。
手順がどーのだって、効果的な手法がそうだってだけで、
ある作業がリファクタリングかどうかの判断に手順は関係ない。
104デフォルトの名無しさん
2011/10/10(月) 00:31:27.92 >>103
> I/F変えたら機能変更だろ。
え? そんな事言ってもなぁ。
インターフェースを変えるリファクタリングはたくさんある。
メソッドの移動、クラスのインライン化、メソッド名の変更
引数の追加、引数オブジェクトの導入、メソッドの隠蔽
メソッドの引き上げ、階層の平坦化、継承の分割、他
リファクタリングの目的は、高速化という今すぐに効果があるメリットのためではなく、
過去にその場しのぎで対応したコードの修正とか、設計上まずいコードの修正とか
過去の負債、将来への投資として行うものだよ。
設計がまずい=インターフェースがまずいってことはよくある話で、
コードを改善するためには、インターフェースを変えなければいけないということも当然ある。
> I/F変えたら機能変更だろ。
え? そんな事言ってもなぁ。
インターフェースを変えるリファクタリングはたくさんある。
メソッドの移動、クラスのインライン化、メソッド名の変更
引数の追加、引数オブジェクトの導入、メソッドの隠蔽
メソッドの引き上げ、階層の平坦化、継承の分割、他
リファクタリングの目的は、高速化という今すぐに効果があるメリットのためではなく、
過去にその場しのぎで対応したコードの修正とか、設計上まずいコードの修正とか
過去の負債、将来への投資として行うものだよ。
設計がまずい=インターフェースがまずいってことはよくある話で、
コードを改善するためには、インターフェースを変えなければいけないということも当然ある。
105デフォルトの名無しさん
2011/10/10(月) 00:40:22.19 なんでこいつら10年前の議論してるの?
106デフォルトの名無しさん
2011/10/10(月) 00:53:59.26 したらいけないの?
107デフォルトの名無しさん
2011/10/10(月) 01:04:25.82 >>103
> I/F変えたら機能変更だろ。
インターフェースが機能になってるのは
ライブラリぐらいなもんだろ。
システム(アプリ)の動作さえ変えなければ
リファクタリングでインターフェース変えたっていいんだよ。。
インターフェースが変わりますって他の開発者への通知が
必要なことがあるかもしれないが、それは、通知すればいいだけの話。
それが世界中巻き込んで大変なことになろうが、
社内の一部だけしか関係ない小さなものだろうが、
「やってはいけないこと」ではない。
> I/F変えたら機能変更だろ。
インターフェースが機能になってるのは
ライブラリぐらいなもんだろ。
システム(アプリ)の動作さえ変えなければ
リファクタリングでインターフェース変えたっていいんだよ。。
インターフェースが変わりますって他の開発者への通知が
必要なことがあるかもしれないが、それは、通知すればいいだけの話。
それが世界中巻き込んで大変なことになろうが、
社内の一部だけしか関係ない小さなものだろうが、
「やってはいけないこと」ではない。
108デフォルトの名無しさん
2011/10/10(月) 12:55:38.15 >インターフェースが変わりますって他の開発者への通知が
>必要なことがあるかもしれないが、それは、通知すればいいだけの話。
幸せな環境だ・・・
>必要なことがあるかもしれないが、それは、通知すればいいだけの話。
幸せな環境だ・・・
109デフォルトの名無しさん
2011/10/10(月) 15:07:45.53110デフォルトの名無しさん
2011/10/10(月) 15:29:15.75 おお、Javaがやってる方法じゃん
Java PGは可哀想な子だからな
Java PGは可哀想な子だからな
111デフォルトの名無しさん
2011/10/10(月) 15:31:03.21 DeprecatedやObsoleteは
どの言語でもやってることだろ。
なんかこう、俺とは一段以上 下のレベルの
奴しか見当たらんよなw
どの言語でもやってることだろ。
なんかこう、俺とは一段以上 下のレベルの
奴しか見当たらんよなw
112デフォルトの名無しさん
2011/10/10(月) 15:49:03.28 そう。どの言語でもやってる。
何故ならインターフェースなどそう簡単に変更できないからだ。
それなのに
> 必要なことがあるかもしれないが、それは、通知すればいいだけの話。
のような事を書くほど低レベルのPGはJava PGだけだと予想して釣ってみたが、
やっぱりその通りだったねw
何故ならインターフェースなどそう簡単に変更できないからだ。
それなのに
> 必要なことがあるかもしれないが、それは、通知すればいいだけの話。
のような事を書くほど低レベルのPGはJava PGだけだと予想して釣ってみたが、
やっぱりその通りだったねw
113デフォルトの名無しさん
2011/10/10(月) 15:55:41.96 「なんかこう、俺とは一段以上下のレベルの奴しか見当たらんよなw」(キリッ
114デフォルトの名無しさん
2011/10/10(月) 16:24:50.97115デフォルトの名無しさん
2011/10/10(月) 16:48:43.88 めんどくさいからコードに対する変更はもう全部リファクタリングでいいよ
116108
2011/10/10(月) 19:15:25.35 >>109
若干かわいそうな環境かも。
機能毎に縦割りでリーダーが立ってて
「こっちは機能追加が進んでて人居ない」とか
「影響が大きい」とか言われて
とてもじゃないが変えられない。
それでも自担当の部分だけでもリファクタリングする工数が
貰えるだけマシなのかも知れんけどね。
若干かわいそうな環境かも。
機能毎に縦割りでリーダーが立ってて
「こっちは機能追加が進んでて人居ない」とか
「影響が大きい」とか言われて
とてもじゃないが変えられない。
それでも自担当の部分だけでもリファクタリングする工数が
貰えるだけマシなのかも知れんけどね。
117デフォルトの名無しさん
2011/10/10(月) 21:13:00.47 JavaのPGやってるけど
privateメソッドを修正するだけでもJAVADOCの修正とかユニットテストが更新されるからって
チーム内でそれを拒む人いるんだよなー
ってか、お前が俺のソースコピペして、俺がその責任背負わなくなくなるのが嫌なんだろwwwどうせwww
privateメソッドを修正するだけでもJAVADOCの修正とかユニットテストが更新されるからって
チーム内でそれを拒む人いるんだよなー
ってか、お前が俺のソースコピペして、俺がその責任背負わなくなくなるのが嫌なんだろwwwどうせwww
118デフォルトの名無しさん
2011/10/25(火) 13:23:05.69 リファクタリング中は考えることを止めよう
http://www.infoq.com/jp/news/2011/10/thinking-and-refactoring
http://www.infoq.com/jp/news/2011/10/thinking-and-refactoring
119デフォルトの名無しさん
2011/10/29(土) 00:57:02.72 やっぱり目的が意味不明
設計ミスならリファクタリングという形で手を出すべきじゃないし
汎用性の向上にしても次の開発やバージョンアップの仕様書があってこその修正だ
単純にリファクタリングってのが何を目的としてるのかどの文献を読んでもまったく意味不明
設計ミスならリファクタリングという形で手を出すべきじゃないし
汎用性の向上にしても次の開発やバージョンアップの仕様書があってこその修正だ
単純にリファクタリングってのが何を目的としてるのかどの文献を読んでもまったく意味不明
120デフォルトの名無しさん
2011/10/29(土) 03:24:37.60121デフォルトの名無しさん
2011/10/29(土) 05:48:50.42122デフォルトの名無しさん
2011/10/29(土) 11:34:19.34 時間と共に増大する複雑性への対処では。
書いたソースが自分たちのものになるのかで大きく価値が異なると思う。
複雑性が増すと修正にかかる工数が増えるけど、それを良しとするか悪しとするか。
書いたソースが自分たちのものになるのかで大きく価値が異なると思う。
複雑性が増すと修正にかかる工数が増えるけど、それを良しとするか悪しとするか。
123デフォルトの名無しさん
2011/10/29(土) 18:57:08.38 果てしなく続くメンテナンスと機能追加を前提として
それぞれのモジュールの精度を高めるために必要な準備作業
じゃないかな
それぞれのモジュールの精度を高めるために必要な準備作業
じゃないかな
124デフォルトの名無しさん
2011/10/29(土) 22:48:37.21 何いってるのかさっぱりわからない
じゃ、質問をかえる
その作業いつ終わるの?
じゃ、質問をかえる
その作業いつ終わるの?
125デフォルトの名無しさん
2011/10/29(土) 23:05:14.32126デフォルトの名無しさん
2011/10/29(土) 23:30:50.35 効果も含めて微ファクタリング
127デフォルトの名無しさん
2011/10/30(日) 00:00:06.96128デフォルトの名無しさん
2011/10/30(日) 00:12:36.90 最初から間違えなければいい。
129デフォルトの名無しさん
2011/10/30(日) 01:44:30.53 >>127
んー
それをコードにいれちゃうのはなんかちがうなーって思う
だって説明として仕様や設計に入ってもいないクラスが
自分の考える汎用性のためだけに入ってるってことでしょ?
まあ、昔の俺ならそういうコードいいと思ったけど
最近はこういう見切り発進みたいなコードをちっともいいと思わなくなった
むしろ余計なもん入れちゃうのってどうよ?って思う
んー
それをコードにいれちゃうのはなんかちがうなーって思う
だって説明として仕様や設計に入ってもいないクラスが
自分の考える汎用性のためだけに入ってるってことでしょ?
まあ、昔の俺ならそういうコードいいと思ったけど
最近はこういう見切り発進みたいなコードをちっともいいと思わなくなった
むしろ余計なもん入れちゃうのってどうよ?って思う
130デフォルトの名無しさん
2011/10/30(日) 02:01:00.62 余計なもんなんかいれない。
”必要だから” 入れてる。
”必要だから” 入れてる。
131デフォルトの名無しさん
2011/10/30(日) 02:32:58.38132デフォルトの名無しさん
2011/10/30(日) 09:42:26.14133デフォルトの名無しさん
2011/10/30(日) 11:29:33.88 >>129
見切り発進と思うのなら、修正した方が良いと思った内容を提案してみては。
受け入れるかは組織なり人なりタイミングによると思うけど、
少なくともうちだったら、そういう提案してくれる人は歓迎するけどなあ。
その人の持つ技術力の評価や信頼にも繋がるし。
見切り発進と思うのなら、修正した方が良いと思った内容を提案してみては。
受け入れるかは組織なり人なりタイミングによると思うけど、
少なくともうちだったら、そういう提案してくれる人は歓迎するけどなあ。
その人の持つ技術力の評価や信頼にも繋がるし。
134デフォルトの名無しさん
2011/10/30(日) 11:55:22.16135デフォルトの名無しさん
2011/10/30(日) 12:08:51.05136デフォルトの名無しさん
2011/10/31(月) 03:11:52.86137デフォルトの名無しさん
2011/10/31(月) 12:33:30.90138デフォルトの名無しさん
2011/10/31(月) 21:45:02.67139デフォルトの名無しさん
2011/11/01(火) 00:54:41.88140デフォルトの名無しさん
2011/11/01(火) 00:57:56.17 この表現でわからないならデザパタ使うと出てくるゴミクラスなんか全部該当すると思う
141デフォルトの名無しさん
2011/11/01(火) 06:03:18.76 >>139
仕様と関係ない関数は不要なので、コードはすべてmainの中に書いてくださいね
仕様と関係ない関数は不要なので、コードはすべてmainの中に書いてくださいね
142デフォルトの名無しさん
2011/11/01(火) 07:41:02.59143デフォルトの名無しさん
2011/11/01(火) 08:04:06.10144デフォルトの名無しさん
2011/11/01(火) 20:58:54.49 >>143
リファクタリングは保守の一つなのだから、
コードを修正するならば言語に関係なく発生する問題。
リファクタリングとデザパタは
特定の言語固有とか言う以前に、全く関係ない話題。
ついでにデザパタで作るのはゴミクラスではなく必要なクラス。
リファクタリングは保守の一つなのだから、
コードを修正するならば言語に関係なく発生する問題。
リファクタリングとデザパタは
特定の言語固有とか言う以前に、全く関係ない話題。
ついでにデザパタで作るのはゴミクラスではなく必要なクラス。
145デフォルトの名無しさん
2011/11/01(火) 21:19:29.93 >>142
よう、レガシー
よう、レガシー
146デフォルトの名無しさん
2011/11/01(火) 21:21:02.73 Sir! FUTURE!!
147デフォルトの名無しさん
2011/11/01(火) 22:09:32.23 他の言語では作る必要の無いクラスを作らされたら
ゴミクラスと言いたくもなるわい
ゴミクラスと言いたくもなるわい
148デフォルトの名無しさん
2011/11/01(火) 22:12:41.23 >>147
たとえばどんなの?
たとえばどんなの?
149デフォルトの名無しさん
2011/11/01(火) 22:14:56.95 他の言語では、定義する必要がない型を
定義しても、ゴミ定義とは言わないだろ。
単に、エラーを見つけやすい方法で書くか、
短いコードだから省略して書くかの違いでしか無い。
定義しても、ゴミ定義とは言わないだろ。
単に、エラーを見つけやすい方法で書くか、
短いコードだから省略して書くかの違いでしか無い。
150デフォルトの名無しさん
2011/11/01(火) 22:26:33.69151デフォルトの名無しさん
2011/11/01(火) 22:28:50.74 うん。だからそれは、インターフェースを守った
きっちりとしたアプリを作るかどうかの違い。
きっちりとしたアプリを作るかどうかの違い。
152デフォルトの名無しさん
2011/11/01(火) 22:36:13.61 きっちりしてるというのはどういう意味だ?
静的型検査という意味なら勘違いも甚だしいぞ
静的型検査という意味なら勘違いも甚だしいぞ
153デフォルトの名無しさん
2011/11/01(火) 22:41:00.77154デフォルトの名無しさん
2011/11/01(火) 23:28:25.82 >>150
ファーストクラスの関数がなかったら?
ファーストクラスの関数がなかったら?
155デフォルトの名無しさん
2011/11/01(火) 23:53:30.12156デフォルトの名無しさん
2011/11/02(水) 00:43:25.84 このように、言語によって
クラスが必要かどうかは違ってくるというのに、
設計書と呼ばれるものに、そこまでちゃんとクラスを書いているのか?
普通は書かないだろ。
だから、設計書と呼ばれているものは、実は設計書ではない。
コードこそが設計書そのものなんだ。
クラスが必要かどうかは違ってくるというのに、
設計書と呼ばれるものに、そこまでちゃんとクラスを書いているのか?
普通は書かないだろ。
だから、設計書と呼ばれているものは、実は設計書ではない。
コードこそが設計書そのものなんだ。
157デフォルトの名無しさん
2011/11/02(水) 07:35:25.31158デフォルトの名無しさん
2011/11/02(水) 21:53:07.67 ただなぁ, 世に存在するうちの設計書で,
なぜこれが必要か
といった, 設計ポリシーとともに書かれているものは, ごく稀
で, 最後には
ソース読め
状態になると思ってるんだ
なぜこれが必要か
といった, 設計ポリシーとともに書かれているものは, ごく稀
で, 最後には
ソース読め
状態になると思ってるんだ
159デフォルトの名無しさん
2011/11/03(木) 01:04:35.79 仕様書は役に立たないがテストの手順書はとても役に立つな
なにをやるための機能なのか一発でわかる
対して仕様書は嘘、間違い、抜け、バージョン違い、勘違い
更新忘れ、認識間違いばっかりになってほとんど役に立たない
仕様書いらなくね?
っていうかテスト手順書でよくね?
ちなみにおそらくテスト手順書は仕様書を見て作られてはいないだろうな
やってみて「ふーん・・・これだろ?これが仕様だろ?な?」的な感じだと思う
なにをやるための機能なのか一発でわかる
対して仕様書は嘘、間違い、抜け、バージョン違い、勘違い
更新忘れ、認識間違いばっかりになってほとんど役に立たない
仕様書いらなくね?
っていうかテスト手順書でよくね?
ちなみにおそらくテスト手順書は仕様書を見て作られてはいないだろうな
やってみて「ふーん・・・これだろ?これが仕様だろ?な?」的な感じだと思う
160デフォルトの名無しさん
2011/11/03(木) 11:16:22.26 仕様書とソース・プログラムの挙動が不一致ならバグ認定、即修正
っていうレベルのもの以外は仕様書に書くな!!!!
っていうレベルのもの以外は仕様書に書くな!!!!
161デフォルトの名無しさん
2011/11/03(木) 19:08:42.55 >>160
ショートカットとか本当にどうでもいいもののリスト作ってるひまあったら他のことやれよな
ショートカットとか本当にどうでもいいもののリスト作ってるひまあったら他のことやれよな
162デフォルトの名無しさん
2011/11/04(金) 00:04:28.66163デフォルトの名無しさん
2011/11/04(金) 20:57:42.11 うちのプロジェクトjavaソースだけでついに1万個を超えた
リファクタとかいうレベルじゃねーだろ
リファクタとかいうレベルじゃねーだろ
164デフォルトの名無しさん
2011/11/04(金) 22:40:52.09165デフォルトの名無しさん
2011/11/06(日) 10:59:30.75 javaでもすでに10年物のソースコードとかあるからな
166uy
2011/11/06(日) 16:44:42.65 リファクタリングとか、
10万行のソースコードがあったとして、
その10万行のソースコードを、読んだってレベルじゃなくて、そうとう熟知した状態で
1人で行わなきゃならない
ていうか、それできるレベルなら、多分最初から書き直したほうが綺麗に書ける
まぁそれは理想で
SE共のいってるりファクタリングは機能ごとに、ちょこっとずつ最適化していく程度のものを言ってるよね
自分の能力でソースコード全体を見渡せる範囲で何とかするリファクタリング
なんていうか、それはね
まず木で作られた線路を、途中から鉄にして、さらに途中から銅にしたようなもので、本当に器用に継ぎ接ぎをしてるだけ
その継ぎ接ぎ部分はとてもシビアになるし、バグが出ても特定不可能で、
「よくわかんないけど、○○にすると落ちるから☆☆にしといてwwwwwwwwwwwwwっうぇwwwwなんで落ちてんのwwwっうぇwwww」みたいな状況にもなりかねない
ソース全体を見渡しているわけでもないリファクタリング作業なんてのは、あまりやりすぎると
ゼロから書き直す以上の労力をいつの間にか注いでいる事にもなりかねないので
最低限以上はやっちゃいけない
10万行のソースコードがあったとして、
その10万行のソースコードを、読んだってレベルじゃなくて、そうとう熟知した状態で
1人で行わなきゃならない
ていうか、それできるレベルなら、多分最初から書き直したほうが綺麗に書ける
まぁそれは理想で
SE共のいってるりファクタリングは機能ごとに、ちょこっとずつ最適化していく程度のものを言ってるよね
自分の能力でソースコード全体を見渡せる範囲で何とかするリファクタリング
なんていうか、それはね
まず木で作られた線路を、途中から鉄にして、さらに途中から銅にしたようなもので、本当に器用に継ぎ接ぎをしてるだけ
その継ぎ接ぎ部分はとてもシビアになるし、バグが出ても特定不可能で、
「よくわかんないけど、○○にすると落ちるから☆☆にしといてwwwwwwwwwwwwwっうぇwwwwなんで落ちてんのwwwっうぇwwww」みたいな状況にもなりかねない
ソース全体を見渡しているわけでもないリファクタリング作業なんてのは、あまりやりすぎると
ゼロから書き直す以上の労力をいつの間にか注いでいる事にもなりかねないので
最低限以上はやっちゃいけない
167デフォルトの名無しさん
2011/11/06(日) 16:52:16.13 >>166
お前は、ただのコード修正をリファクタリングと言ってるだけだね。
リファクタリングは単なる「コード修正」とは違うもの。
リファクタリングは「既存の動きに影響を与えない方法を使ってコードを修正すること」
既存の動きに影響を与えない方法ってのがあるんだよ。
これを使わないとリファクタリングにはならない。
行き当たりばったりの思いつき修正とはわけが違う。
論理的に考えぬかれた体系化されたテクニック。
それカタログ化して解説した本が、世の中にでてるリファクタリング本
お前は、ただのコード修正をリファクタリングと言ってるだけだね。
リファクタリングは単なる「コード修正」とは違うもの。
リファクタリングは「既存の動きに影響を与えない方法を使ってコードを修正すること」
既存の動きに影響を与えない方法ってのがあるんだよ。
これを使わないとリファクタリングにはならない。
行き当たりばったりの思いつき修正とはわけが違う。
論理的に考えぬかれた体系化されたテクニック。
それカタログ化して解説した本が、世の中にでてるリファクタリング本
168デフォルトの名無しさん
2011/11/06(日) 17:24:22.30 >リファクタリングとか、
>10万行のソースコードがあったとして、
>その10万行のソースコードを、読んだってレベルじゃなくて、そうとう熟知した状態で
>1人で行わなきゃならない
>ていうか、それできるレベルなら、多分最初から書き直したほうが綺麗に書ける
とてもじゃないが、まともに教育を受けた人間の書いた日本語には見えない。
>10万行のソースコードがあったとして、
>その10万行のソースコードを、読んだってレベルじゃなくて、そうとう熟知した状態で
>1人で行わなきゃならない
>ていうか、それできるレベルなら、多分最初から書き直したほうが綺麗に書ける
とてもじゃないが、まともに教育を受けた人間の書いた日本語には見えない。
169デフォルトの名無しさん
2011/11/06(日) 21:45:33.79 > 「既存の動きに影響を与えない方法を使ってコードを修正すること」
ここで仕様をリファクターする必要を考慮しないのがリファクタリング厨
ここで仕様をリファクターする必要を考慮しないのがリファクタリング厨
170デフォルトの名無しさん
2011/11/06(日) 22:13:45.01171デフォルトの名無しさん
2011/11/06(日) 22:17:40.89 ユーザーインターフェースかわんなきゃリファクタリングと言ってみるtest
172デフォルトの名無しさん
2011/11/06(日) 23:12:56.73 >>170
ちゃんと読め。
ちゃんと読め。
173デフォルトの名無しさん
2011/11/07(月) 02:11:07.98 > 仕様をリファクター
はぁ?
んなもんリファクタリングじゃあなーいと言ってやれ。ドキュメントをリファクタリングしちゃるとか言ってる奴、それもリファクタリングじゃねーぞコラ。そういうのは、リストラクチャリング(再構築)というのだッ。
はぁ?
んなもんリファクタリングじゃあなーいと言ってやれ。ドキュメントをリファクタリングしちゃるとか言ってる奴、それもリファクタリングじゃねーぞコラ。そういうのは、リストラクチャリング(再構築)というのだッ。
174デフォルトの名無しさん
2011/11/07(月) 06:29:39.93 仕様変更にまで手をいれない修正だったら俺はする意味ないと思うけどね
いいと思ってるのは自分だけっていう典型だと思う
いいと思ってるのは自分だけっていう典型だと思う
175デフォルトの名無しさん
2011/11/07(月) 22:24:06.07 試験とか全部やり直しになるけどそこまでコードに重心置けないです
しかも動作は変わらないとかね
しかも動作は変わらないとかね
176デフォルトの名無しさん
2011/11/07(月) 22:56:57.01177デフォルトの名無しさん
2011/11/08(火) 00:14:11.06 >>176
とかいって逃げたいから自分の言葉で説明しないで本に書いてあるとか言ってるんでしょ?
わかるよ
説明できない人ってみんなそうだもの
あんたもいっしょ
残念だけどここ本質なのよね
そもそもリファクタリングっていう行動自体意味がわからない
将来どう変わるか?の仕様もないのに汎用性?
何に対していってるの?あれほど仕様書に重点をおいてるのに
なんでコードレベルでソフトウェアの方向性がわかるの?
それと何度もいうけど全体の工数からいったら実装なんてすげー短い期間なのに
リファクタリングなんてしなくていいんだよ
馬鹿かよ
設計や仕様決めに時間割いたほうがいいの、わかった?御馬鹿ちゃん?
人件費みたって派遣PGと正社員様様と比べて比較になるわけねーだろ
そんな糞みたいな脳みそしかないんだったら技術者なんてやめちゃえばいいのに
とかいって逃げたいから自分の言葉で説明しないで本に書いてあるとか言ってるんでしょ?
わかるよ
説明できない人ってみんなそうだもの
あんたもいっしょ
残念だけどここ本質なのよね
そもそもリファクタリングっていう行動自体意味がわからない
将来どう変わるか?の仕様もないのに汎用性?
何に対していってるの?あれほど仕様書に重点をおいてるのに
なんでコードレベルでソフトウェアの方向性がわかるの?
それと何度もいうけど全体の工数からいったら実装なんてすげー短い期間なのに
リファクタリングなんてしなくていいんだよ
馬鹿かよ
設計や仕様決めに時間割いたほうがいいの、わかった?御馬鹿ちゃん?
人件費みたって派遣PGと正社員様様と比べて比較になるわけねーだろ
そんな糞みたいな脳みそしかないんだったら技術者なんてやめちゃえばいいのに
178デフォルトの名無しさん
2011/11/08(火) 01:14:10.32 >>177
コンプレックス刺激されすぎw
コンプレックス刺激されすぎw
179デフォルトの名無しさん
2011/11/08(火) 01:17:58.36 単純なシチュエーションだと、今動いているものがあって
それに仕様変更や機能追加をする"前"にリファクタリングしたり
えーちょっと何やってんのか分からなぁ〜いって時に、リファクタリングして今の動きを確認したりする鴨
さすがに何も用事が無いのにリファクタリングはしないぞw
それに仕様変更や機能追加をする"前"にリファクタリングしたり
えーちょっと何やってんのか分からなぁ〜いって時に、リファクタリングして今の動きを確認したりする鴨
さすがに何も用事が無いのにリファクタリングはしないぞw
180デフォルトの名無しさん
2011/11/08(火) 06:35:51.23 >>179
ローカルのHDDの中で勝手にやってろレベルだなw
ローカルのHDDの中で勝手にやってろレベルだなw
181デフォルトの名無しさん
2011/11/08(火) 08:17:23.29182デフォルトの名無しさん
2011/11/08(火) 12:07:50.87 仕様書を大雑把に
・機能仕様書:ユーザの観点からシステムがどのように動くか記述する
・技術仕様書:プログラムの内部実装について記述する
に分けたとき、機能仕様書を変更しないのがリファクタリング
技術仕様書は変更する必要がある
と、俺は解釈してるんだけど
・機能仕様書:ユーザの観点からシステムがどのように動くか記述する
・技術仕様書:プログラムの内部実装について記述する
に分けたとき、機能仕様書を変更しないのがリファクタリング
技術仕様書は変更する必要がある
と、俺は解釈してるんだけど
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 高市早苗政権「経済的威圧をしてくる国はリスク」 トランプぴょんぴょん政権さん…… [175344491]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 偏差値35大臣「すぐに経済的威圧するところへの依存はリスク」 [834922174]
- 【高市朗報】『劇場版「鬼滅の刃」無限城篇』、ギリのタイミングで中国上映公開し5日間で4億元(87億円)突破!!! [126042664]
- 【朗報】高市、中国からの日本行き空路49万件キャンセルを達成🤩オーバーツーリズム対策の手腕が光る [359965264]
