テストも書かないでリファクタリングとかうけるw
まずな、リファクタリングでは機能追加・修正は行わない。
動作はまったく同じでコードをきれいに書き換えること。
書き換えるといっても、これなら同じ動きだろ?って推測でやってはいけない。
まずテストを書く。ユニットテストをできるように、
単一のクラスでインスタンスを作る。
汚いコードなのだからたいていは依存関係のせいで単一ではクラスが生成できない
それを生成するために、クラスの動作を書き換える。
といっても元のコードは修正しない。継承やプリプロセッサを使って
依存関係を断ち切るために既存のコードを上書きする。
どうしてもそれが不可能な場合には、決められた手順で最小のコード修正を行う
そうやって既存のクラスのユニットテストを行う。
それでやっとリファクタリングが行える。
既存のクラスのユニットテストを通るように新たなコードに修正、
もしくは新規作成して置き換える。
この手順と考え方を守ってないのはリファクタリングではない。
で?
探検
リファクタリングをただのコード修正と思ってる人へ
■ このスレッドは過去ログ倉庫に格納されています
2010/05/29(土) 17:25:56
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 仕様書を大雑把に
・機能仕様書:ユーザの観点からシステムがどのように動くか記述する
・技術仕様書:プログラムの内部実装について記述する
に分けたとき、機能仕様書を変更しないのがリファクタリング
技術仕様書は変更する必要がある
と、俺は解釈してるんだけど
・機能仕様書:ユーザの観点からシステムがどのように動くか記述する
・技術仕様書:プログラムの内部実装について記述する
に分けたとき、機能仕様書を変更しないのがリファクタリング
技術仕様書は変更する必要がある
と、俺は解釈してるんだけど
183デフォルトの名無しさん
2011/11/08(火) 22:53:38.54184デフォルトの名無しさん
2011/11/09(水) 00:34:09.76 リファクタリングの価値は
リファクタリングしたことによる将来のメンテナンスコストの低減分だと思うから、
純粋なリファクタリングをする意味ってあると思うけどね。
まあ、少なくとも、作ったコードを客に出すのが仕事の人は、
リファクタリングの価値を見出すのは難しいだろうね。
お客が腐ったコードをメンテナンスし続ける費用を負担してくれる限り、
工数がかかる方が、お金になるだろうから。
リファクタリングしたことによる将来のメンテナンスコストの低減分だと思うから、
純粋なリファクタリングをする意味ってあると思うけどね。
まあ、少なくとも、作ったコードを客に出すのが仕事の人は、
リファクタリングの価値を見出すのは難しいだろうね。
お客が腐ったコードをメンテナンスし続ける費用を負担してくれる限り、
工数がかかる方が、お金になるだろうから。
185デフォルトの名無しさん
2011/11/09(水) 01:07:17.87 寧ろそうやって放置されたコードのメンテナンスの際にESP能力を発揮しながらリファクタリングして日銭稼いでますが何か。
186デフォルトの名無しさん
2011/11/09(水) 22:25:08.24187デフォルトの名無しさん
2011/11/09(水) 23:19:04.89 >>186
同じようなレベルの人がやったら対して変わらんだろうね。
時間がなくて小手先で直したのを時間が取れる時にまともに直すとかかしら。
あほなプログラマが書いた動くけどわけわらんプログラムを
レビューで突き返したりするのもリファクタリングになると思うけど、放置するの?
同じようなレベルの人がやったら対して変わらんだろうね。
時間がなくて小手先で直したのを時間が取れる時にまともに直すとかかしら。
あほなプログラマが書いた動くけどわけわらんプログラムを
レビューで突き返したりするのもリファクタリングになると思うけど、放置するの?
188デフォルトの名無しさん
2011/11/10(木) 00:11:30.20189デフォルトの名無しさん
2011/11/10(木) 02:48:37.98190デフォルトの名無しさん
2011/11/10(木) 02:49:24.36191デフォルトの名無しさん
2011/11/10(木) 06:19:17.82192デフォルトの名無しさん
2011/11/10(木) 22:10:19.47 http://www.os.cis.iwate-u.ac.jp/wikky/wikky.cgi?%E7%AC%AC2%E7%AB%A0%EF%BC%9A%E3%83%AA%E3%83%95%E3%82%A1%E3%82%AF%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0%E3%81%AE%E5%8E%9F%E5%89%87
2.1 リファクタリングの歴史
リファクタリングの先駆け:1980年代以降Smalltalkの仕事をしていたWard CunninghamとKent Beckの2人
Smalltalkはリファクタリングに特に向いている環境
コンパイル、リンク、実行のサイクルが短く、コードを気軽に書き換えることができる
彼ら2人の考えはSmalltalk文化にリファクタリングの概念を定着させた
筆者「リファクタリング?そこまで重要ではないよ」→Kentと同じプロジェクトに携わり、
Kentのリファクタリングを目の当たりにする→ソフトウェアの生産性、品質に明らかな違いが…→筆者「!!」
上の経験からリファクタリングを重要視するようになった
2.1 リファクタリングの歴史
リファクタリングの先駆け:1980年代以降Smalltalkの仕事をしていたWard CunninghamとKent Beckの2人
Smalltalkはリファクタリングに特に向いている環境
コンパイル、リンク、実行のサイクルが短く、コードを気軽に書き換えることができる
彼ら2人の考えはSmalltalk文化にリファクタリングの概念を定着させた
筆者「リファクタリング?そこまで重要ではないよ」→Kentと同じプロジェクトに携わり、
Kentのリファクタリングを目の当たりにする→ソフトウェアの生産性、品質に明らかな違いが…→筆者「!!」
上の経験からリファクタリングを重要視するようになった
193デフォルトの名無しさん
2011/11/10(木) 23:19:30.99 >>192
そのストーリーって重要な部分なの?w
しかもそんな馬鹿みたいな長文書いて大事な要点がちっとも書いてないじゃん
>ソフトウェアの生産性、品質に明らかな違いが…
明らかに大事なのってこの部分の詳細だろ
何がよくて品質がどうよくなったのか?
だろ?
お前の国語の能力低すぎてリファクタリングまで怪しくなるわw
そのストーリーって重要な部分なの?w
しかもそんな馬鹿みたいな長文書いて大事な要点がちっとも書いてないじゃん
>ソフトウェアの生産性、品質に明らかな違いが…
明らかに大事なのってこの部分の詳細だろ
何がよくて品質がどうよくなったのか?
だろ?
お前の国語の能力低すぎてリファクタリングまで怪しくなるわw
194デフォルトの名無しさん
2011/11/11(金) 21:19:14.97 >>193
そういう文句はオリジナルを書いた奴に言え。
そういう文句はオリジナルを書いた奴に言え。
195デフォルトの名無しさん
2011/11/11(金) 23:32:49.89 自分の言葉で語れない奴はカス
196デフォルトの名無しさん
2011/11/11(金) 23:58:46.50 お前のセリフに説得力はない
197デフォルトの名無しさん
2011/11/12(土) 01:34:54.40 >>191
違いを理解できない能力なだけじゃないの?
違いを理解できない能力なだけじゃないの?
198デフォルトの名無しさん
2011/11/16(水) 20:57:29.42 重複の除去が有効とか書いてあるじゃん
前にやった仕事で、ほんの一部を除いて同一の機能を持つモジュール2つが
別々の人によってそれぞれ実装されてて
目玉飛び出そうになったのを思い出した
前にやった仕事で、ほんの一部を除いて同一の機能を持つモジュール2つが
別々の人によってそれぞれ実装されてて
目玉飛び出そうになったのを思い出した
199デフォルトの名無しさん
2011/11/16(水) 21:30:50.10 別にいいじゃん
その2つをくっつけることで後に呼び出し先Aの機能を修正したいだけなのに
その機能がわざわざまとめられてるために
もう一つの呼び出し先Bのソースまで洗わないといけなくなるかもしんないだろ
まとめるのは必ずしも正解ではない
その2つをくっつけることで後に呼び出し先Aの機能を修正したいだけなのに
その機能がわざわざまとめられてるために
もう一つの呼び出し先Bのソースまで洗わないといけなくなるかもしんないだろ
まとめるのは必ずしも正解ではない
200デフォルトの名無しさん
2011/11/16(水) 22:33:28.29 >>199
必ずしも正解ではないのは正しいけど
同じような修正が必要になったときに片方の修正が忘れられることの方が多いと思われ
共通で使われてるメソッドの参照元を調べることより
クラスもメソッドも違うけど実は中身が同じでなければならなかったのを探すほうが大変な気が
分ける理由がないうちは一緒にしといて
必要になったら分ける方のが正しいと思う
必ずしも正解ではないのは正しいけど
同じような修正が必要になったときに片方の修正が忘れられることの方が多いと思われ
共通で使われてるメソッドの参照元を調べることより
クラスもメソッドも違うけど実は中身が同じでなければならなかったのを探すほうが大変な気が
分ける理由がないうちは一緒にしといて
必要になったら分ける方のが正しいと思う
201デフォルトの名無しさん
2011/11/17(木) 01:17:42.75 ちなみに >>198 は
その両方を移植する仕事だった
「工数儲けた」と思ってたら
両者をソース読んで同一機能であることを確認した上で
一つにすりあわせて、その承認もらう羽目になったとさ
当然まともな設計書なんてありゃしないし
その両方を移植する仕事だった
「工数儲けた」と思ってたら
両者をソース読んで同一機能であることを確認した上で
一つにすりあわせて、その承認もらう羽目になったとさ
当然まともな設計書なんてありゃしないし
202デフォルトの名無しさん
2011/11/17(木) 22:48:38.78 >>200
いや、お前の言ってることはGoogleやAppleでは正しいだろうな
だが、日本の工業製品ではNG
もちろんいいたいことはわかるけど
それじゃ見積もりがとれないこの1点でNG
色々な大手でたくさんのプロジェクトが走っていて
共通ライブラリなんて生まれないっつか生まれても消滅してしまう理由はここにある
修正の影響範囲が巨大すぎて見積もれない
また、修正時に全員が同じタイミングで対応できない
これも大きな問題だ
こっち動かなくなるのに「直したよ〜」とかメールくれられても困るだろ?
そっちに手がまわらないのにリリース前に真ライブラリでバグってリリース失敗であぼんとか話にならない
修正した本人は「いいんですーこれが本来あるべき姿なんです〜」って主張しようと
修正するほうは「糞が・・・」って思うっしょ?
まあ、MSの出荷するもんにみんなが愚痴をこぼす瞬間だと思うけど
いや、お前の言ってることはGoogleやAppleでは正しいだろうな
だが、日本の工業製品ではNG
もちろんいいたいことはわかるけど
それじゃ見積もりがとれないこの1点でNG
色々な大手でたくさんのプロジェクトが走っていて
共通ライブラリなんて生まれないっつか生まれても消滅してしまう理由はここにある
修正の影響範囲が巨大すぎて見積もれない
また、修正時に全員が同じタイミングで対応できない
これも大きな問題だ
こっち動かなくなるのに「直したよ〜」とかメールくれられても困るだろ?
そっちに手がまわらないのにリリース前に真ライブラリでバグってリリース失敗であぼんとか話にならない
修正した本人は「いいんですーこれが本来あるべき姿なんです〜」って主張しようと
修正するほうは「糞が・・・」って思うっしょ?
まあ、MSの出荷するもんにみんなが愚痴をこぼす瞬間だと思うけど
203デフォルトの名無しさん
2011/11/17(木) 22:50:23.01204デフォルトの名無しさん
2011/11/17(木) 22:55:03.81 >>203
でもいくらもないっしょ?
日本のITって進化に失敗してて紙業務を電子化したような仕事のほうが多いよね?
韓国にもすっかり抜かれちゃったみたいで国内全員でショボーンって感じじゃない?
研究開発分野と本当に極一部だけだろうね
まあ、いまそういう開発してても日本じゃいつ紙業務の電子化ITにまわされるかわからないから
勝ち組って意味でいうと海外脱出組が勝ち組だろうね
でもいくらもないっしょ?
日本のITって進化に失敗してて紙業務を電子化したような仕事のほうが多いよね?
韓国にもすっかり抜かれちゃったみたいで国内全員でショボーンって感じじゃない?
研究開発分野と本当に極一部だけだろうね
まあ、いまそういう開発してても日本じゃいつ紙業務の電子化ITにまわされるかわからないから
勝ち組って意味でいうと海外脱出組が勝ち組だろうね
205デフォルトの名無しさん
2011/11/17(木) 22:58:57.20206デフォルトの名無しさん
2011/11/17(木) 23:01:51.10 うちは少数精鋭なんで(使えない奴はやめさせられる)
同じコードをいくつも書くとかそんな無駄なことやってられないんだよね。
テストも人海戦術で同じことを何度もやるとか、時間的に無理だし、
もちろん手動テストは極力減らすので、変更したって
影響があるならすぐ分かる。
同じコードをいくつも書くとかそんな無駄なことやってられないんだよね。
テストも人海戦術で同じことを何度もやるとか、時間的に無理だし、
もちろん手動テストは極力減らすので、変更したって
影響があるならすぐ分かる。
207デフォルトの名無しさん
2011/11/17(木) 23:02:59.45 >>205
ウェブ系なんて工業製品とかわんねーけどな
あんなん汎用性見越して組む必要あるかね?
寿命が短いからどう組んでもどうとでも動くが正解だろ?
納期まで早い方が真
お前の世界こそプログラムを綺麗にまとめて褒める奴1人もいないと思うがな
ウェブ系なんて工業製品とかわんねーけどな
あんなん汎用性見越して組む必要あるかね?
寿命が短いからどう組んでもどうとでも動くが正解だろ?
納期まで早い方が真
お前の世界こそプログラムを綺麗にまとめて褒める奴1人もいないと思うがな
208デフォルトの名無しさん
2011/11/17(木) 23:38:17.66209デフォルトの名無しさん
2011/11/17(木) 23:39:39.61 重複コードを作ると、納期が延びます。
修正があると、重複コードの分
修正量が増えます。
少しの修正であっちこっち修正して、
あっちこっちテストして納期伸ばしてるのは誰ですか?w
修正があると、重複コードの分
修正量が増えます。
少しの修正であっちこっち修正して、
あっちこっちテストして納期伸ばしてるのは誰ですか?w
210デフォルトの名無しさん
2011/11/18(金) 00:57:17.23 >>209
それって何箇所?
10箇所?20箇所?程度なら貼ったほうが速いよね?
思いっきりまとめあげられてて難しい仕組みに頭ひねってソース解読しなきゃいけないぐらいだったら
単純コピーで貼ってあってくれたほうがまだソース読みやすいよね
っていうか件数が100件いかない程度のコピペならお前が便所に席を立った間にやっておいてやるよ
この程度の件数だったらどう組んでも変わらない
それって何箇所?
10箇所?20箇所?程度なら貼ったほうが速いよね?
思いっきりまとめあげられてて難しい仕組みに頭ひねってソース解読しなきゃいけないぐらいだったら
単純コピーで貼ってあってくれたほうがまだソース読みやすいよね
っていうか件数が100件いかない程度のコピペならお前が便所に席を立った間にやっておいてやるよ
この程度の件数だったらどう組んでも変わらない
211デフォルトの名無しさん
2011/11/18(金) 01:28:11.79212デフォルトの名無しさん
2011/11/18(金) 01:48:53.37 自分でやるんじゃなくて他人にやらせるんだろ
213デフォルトの名無しさん
2011/11/18(金) 06:57:57.33 >>211
いや、楽しいよ
お前みたいな対象物のメリットとデメリットも判断できんようなの出し抜いて数字上げるのが何よりの快感だわ(笑)
結局、技術の上部だけしかすくえないひとって何も見えてないんだよね
新しいってだけである意味パニック状態になってる自分がなにより見えてない
いや、楽しいよ
お前みたいな対象物のメリットとデメリットも判断できんようなの出し抜いて数字上げるのが何よりの快感だわ(笑)
結局、技術の上部だけしかすくえないひとって何も見えてないんだよね
新しいってだけである意味パニック状態になってる自分がなにより見えてない
214デフォルトの名無しさん
2011/11/18(金) 07:32:36.75 数字を出しさえすればそれが全てだと思い込んでいることはよく判った。
さぞかし楽しい人生だろうねぇ。
さぞかし楽しい人生だろうねぇ。
215デフォルトの名無しさん
2011/11/18(金) 11:48:05.79216デフォルトの名無しさん
2011/11/18(金) 12:54:07.46 >>210
> 思いっきりまとめあげられてて難しい仕組みに頭ひねってソース解読しなきゃいけないぐらいだったら
> 単純コピーで貼ってあってくれたほうがまだソース読みやすいよね
申し訳ありません
ifとforしか理解できない人もいるということを忘れていました
リファクタリングの過程でデザインパターンを適用してしまったことをお許しください
> 思いっきりまとめあげられてて難しい仕組みに頭ひねってソース解読しなきゃいけないぐらいだったら
> 単純コピーで貼ってあってくれたほうがまだソース読みやすいよね
申し訳ありません
ifとforしか理解できない人もいるということを忘れていました
リファクタリングの過程でデザインパターンを適用してしまったことをお許しください
217デフォルトの名無しさん
2011/11/18(金) 12:59:02.53 >>213
コピペもできるしリファクタリングもできる俺がそれを言うならまだわかるけど、
お前はコピペしかできないんだからさ、取捨選択の上でコピペを採用したみたいな言い方はやめてよ
もっともらしい後付けをしたところで、お前のカードはコピペしかないわけで
コピペもできるしリファクタリングもできる俺がそれを言うならまだわかるけど、
お前はコピペしかできないんだからさ、取捨選択の上でコピペを採用したみたいな言い方はやめてよ
もっともらしい後付けをしたところで、お前のカードはコピペしかないわけで
218デフォルトの名無しさん
2011/11/18(金) 12:59:57.09219デフォルトの名無しさん
2011/11/18(金) 15:50:01.61 正面から反論できないときは人格攻撃になるんですね
その時点で白旗あげてるっていうかなんていうか
その時点で白旗あげてるっていうかなんていうか
220デフォルトの名無しさん
2011/11/18(金) 19:16:21.49221デフォルトの名無しさん
2011/11/18(金) 23:06:02.19 >>220
でも自分のやってることの説明できないってのは問題じゃない?
結局トレードオフの問題であって
やればやるほどとかどんな場面でもってわけじゃないってとこは否定できないわけでしょ
じゃあ、君のやり方は正しいの?また、他の人と差がでるのは何が決め手なの?
ってのは結局のところどこでも求められると思うんだけどね
それが説明できないなら君に用のある人なんていないと思うんだよね
みんな暇じゃないから(笑)
でも自分のやってることの説明できないってのは問題じゃない?
結局トレードオフの問題であって
やればやるほどとかどんな場面でもってわけじゃないってとこは否定できないわけでしょ
じゃあ、君のやり方は正しいの?また、他の人と差がでるのは何が決め手なの?
ってのは結局のところどこでも求められると思うんだけどね
それが説明できないなら君に用のある人なんていないと思うんだよね
みんな暇じゃないから(笑)
222デフォルトの名無しさん
2011/11/19(土) 16:25:48.92 へえ
223デフォルトの名無しさん
2011/11/19(土) 16:38:24.26 トレードオフ考えてやるんだから
やっぱりリファクタリングは必要ってことね
リファクタリング全否定って人はいるのかしら
やっぱりリファクタリングは必要ってことね
リファクタリング全否定って人はいるのかしら
224デフォルトの名無しさん
2011/11/19(土) 17:14:49.53 トレードオフはコードをまとめる話だろ?
リファクタリングはまったく必要ないよ
そもそも意味わからないもん
次の仕様が決まってる中でのコード修正ならわかるけど
次になんの予定もないのに何に向けてどう修正してるのかまったく理解できない
その修正はいいの?悪いの?
オナニーで終わってない?
これらを判断できる材料すらわからない
単に金をドブに捨ててるだけだと思う
リファクタリングはまったく必要ないよ
そもそも意味わからないもん
次の仕様が決まってる中でのコード修正ならわかるけど
次になんの予定もないのに何に向けてどう修正してるのかまったく理解できない
その修正はいいの?悪いの?
オナニーで終わってない?
これらを判断できる材料すらわからない
単に金をドブに捨ててるだけだと思う
225デフォルトの名無しさん
2011/11/19(土) 17:30:26.36 汚いコード
ゴミ溜めが如くきったない部屋で過ごしてもなーんにも問題無い
↑
↓
チリ一つも落ちていないようなクリーンルームじゃないと過ごせない
綺麗なコード
って話だろ? 何事もほどほどにしとけって事だよ
ゴミ溜めが如くきったない部屋で過ごしてもなーんにも問題無い
↑
↓
チリ一つも落ちていないようなクリーンルームじゃないと過ごせない
綺麗なコード
って話だろ? 何事もほどほどにしとけって事だよ
226デフォルトの名無しさん
2011/11/19(土) 17:33:20.81 >>225
人の話を良く聞かないで進めちゃって失敗するほうじゃない?
人の話を良く聞かないで進めちゃって失敗するほうじゃない?
227デフォルトの名無しさん
2011/11/19(土) 18:59:16.42 >>224
キミがそのコードをずっとメンテナンスする責任者だとして、
どこかのプログラマが明らかにまとめるべきところまとめてこなかったり、
分けるべきところをを無理やりまとめてきたりした場合、
正しく動くという理由でそのままにしておくのかい?
キミがそのコードをずっとメンテナンスする責任者だとして、
どこかのプログラマが明らかにまとめるべきところまとめてこなかったり、
分けるべきところをを無理やりまとめてきたりした場合、
正しく動くという理由でそのままにしておくのかい?
228デフォルトの名無しさん
2011/11/19(土) 19:28:32.54229デフォルトの名無しさん
2011/11/19(土) 19:33:14.80 ソース=設計書だろ?
230デフォルトの名無しさん
2011/11/19(土) 19:47:12.13 >>229
底辺乙
底辺乙
231デフォルトの名無しさん
2011/11/19(土) 19:51:09.79232デフォルトの名無しさん
2011/11/19(土) 20:14:22.32 最高 綺麗で動く
↑ 汚いが動く
↓ 綺麗で動かない
最低 汚くて動かない
一番下のは捨ててよし
[動く/動かない] と [綺麗/汚い] の相関関係だお
汚いけど動くのは、綺麗だが動かないものより価値がある。
でも綺麗で動かないのを 動く にしやすいし、
汚いけど動くものも、後で何か変更するにあたって、動くのを保ちつつ綺麗にしておくと直しやすい。
「綺麗にする」のがリファクタリング。動かないものを動くようにすることとはイコールではない。関係はあるけど。
↑ 汚いが動く
↓ 綺麗で動かない
最低 汚くて動かない
一番下のは捨ててよし
[動く/動かない] と [綺麗/汚い] の相関関係だお
汚いけど動くのは、綺麗だが動かないものより価値がある。
でも綺麗で動かないのを 動く にしやすいし、
汚いけど動くものも、後で何か変更するにあたって、動くのを保ちつつ綺麗にしておくと直しやすい。
「綺麗にする」のがリファクタリング。動かないものを動くようにすることとはイコールではない。関係はあるけど。
233デフォルトの名無しさん
2011/11/19(土) 20:27:15.16 >>232 使用がバッチィからコードもバッチイって発想はないのか?
234232
2011/11/19(土) 20:45:33.70 仕様が汚いと動かすのが難しい
↑
↓
綺麗な仕様は動かしやすい
って関係はあると思うけど、コードと仕様は直接関係しないんじゃねの?
↑
↓
綺麗な仕様は動かしやすい
って関係はあると思うけど、コードと仕様は直接関係しないんじゃねの?
235デフォルトの名無しさん
2011/11/19(土) 20:55:13.83236デフォルトの名無しさん
2011/11/19(土) 21:31:39.15 コードを綺麗/汚いで語るから話がおかしくなるんじゃないか。
リファクタリングって大なり小なり設計の問題の修正のことだと思うんだが。
オレがずれてるのか。
リファクタリングって大なり小なり設計の問題の修正のことだと思うんだが。
オレがずれてるのか。
237デフォルトの名無しさん
2011/11/19(土) 21:34:18.54238デフォルトの名無しさん
2011/11/19(土) 21:49:35.63 もちろん設計の問題とコードの綺麗/汚いは関係ありますが?
最初にきちんと設計をしたつもりでも、実装段階では想定したとおりに行かなかったり、抜けがあったりすることはよくあることです。
実際に書いているうちにいろいろ思いつくこともあります。ちょこっと例外的な処理を付け加えて、を繰り返し、コードは汚くなっていきます。
そうしてソースがスパゲッティ化し、メンテ不能のソースとなっていきます。
そうならないようにするためにリファクタリングがあります。
リファクタリングとは、仕様を変えることなく、ソースコードを改造することをいいます。
汚いソースコードでもプログラムは動きますが、メンテナンスするのは大変です。
汚いソースコードと綺麗なソースコードではメンテのしやすさが全く違います。
なのできるだけ綺麗なソースを書くように心がけ、汚くなったら速やかに書き直すことです。
後々のことを考えて、わかりやすいソースに直します。
最初にきちんと設計をしたつもりでも、実装段階では想定したとおりに行かなかったり、抜けがあったりすることはよくあることです。
実際に書いているうちにいろいろ思いつくこともあります。ちょこっと例外的な処理を付け加えて、を繰り返し、コードは汚くなっていきます。
そうしてソースがスパゲッティ化し、メンテ不能のソースとなっていきます。
そうならないようにするためにリファクタリングがあります。
リファクタリングとは、仕様を変えることなく、ソースコードを改造することをいいます。
汚いソースコードでもプログラムは動きますが、メンテナンスするのは大変です。
汚いソースコードと綺麗なソースコードではメンテのしやすさが全く違います。
なのできるだけ綺麗なソースを書くように心がけ、汚くなったら速やかに書き直すことです。
後々のことを考えて、わかりやすいソースに直します。
239デフォルトの名無しさん
2011/11/19(土) 22:15:38.43 >>238
> そうならないようにするためにリファクタリングがあります。
そうならないように設計を見直す方が先じゃないか?
小手先でどれだけいじっても, 汚い設計は汚いソースを
再生産するだけじゃないのか?
それだったら, 設計をリファクターすべきだ
ぶっちゃけ, ユーザーインターフェースが変わらなきゃ
仕様の範囲内だ
> そうならないようにするためにリファクタリングがあります。
そうならないように設計を見直す方が先じゃないか?
小手先でどれだけいじっても, 汚い設計は汚いソースを
再生産するだけじゃないのか?
それだったら, 設計をリファクターすべきだ
ぶっちゃけ, ユーザーインターフェースが変わらなきゃ
仕様の範囲内だ
240デフォルトの名無しさん
2011/11/19(土) 23:03:54.10 >>238
コピペはいらんよ。
汚い綺麗で語るとコードの可読性ばかりを問題にしてるように感じるって話。
だからリファクタリングがいらないとか言う奴がいるんじゃないの。
コードが綺麗であっても設計上の問題が存在することは当然あるよね。
コードの綺麗/汚いは設計の一部しか示していないと思うし、
その修正はリファクタリングの一部でしかないと思う。
コピペはいらんよ。
汚い綺麗で語るとコードの可読性ばかりを問題にしてるように感じるって話。
だからリファクタリングがいらないとか言う奴がいるんじゃないの。
コードが綺麗であっても設計上の問題が存在することは当然あるよね。
コードの綺麗/汚いは設計の一部しか示していないと思うし、
その修正はリファクタリングの一部でしかないと思う。
241デフォルトの名無しさん
2011/11/20(日) 07:43:51.29242デフォルトの名無しさん
2011/11/20(日) 08:21:15.92 関数、クラスの仕様は変わっても
システム全体の仕様は変わりません。
なので仕様変更にはあたりません。
システム全体の仕様は変わりません。
なので仕様変更にはあたりません。
243デフォルトの名無しさん
2011/11/20(日) 08:21:59.02 設計変更と仕様変更は別の話といえばよかったか。
244デフォルトの名無しさん
2011/11/20(日) 12:07:12.15 設計を仕様と見なしたら
仕様変更を伴わないコード変更って存在するのか?
仕様変更を伴わないコード変更って存在するのか?
245デフォルトの名無しさん
2011/11/20(日) 12:08:20.66 aとかbとかわけのわからん変数名を
意味がある変数名に変更するとか。
意味がある変数名に変更するとか。
246デフォルトの名無しさん
2011/11/20(日) 13:09:50.85 I/F変更を伴うかどうかっていう観点じゃないの
ユーザに見える部分とか
担当者の異なるモジュール間とか
ユーザに見える部分とか
担当者の異なるモジュール間とか
247デフォルトの名無しさん
2011/11/20(日) 17:10:54.61 オリンパスコーディング
248デフォルトの名無しさん
2011/11/20(日) 17:46:34.19 結局、
外から見た目の振る舞いが変わるか/変わらないかがポイントで、
外から見た目の振る舞い=仕様であって
内部構造≒設計は、リファクタリングの対象
って事でおk?
外から見た目の振る舞いが変わるか/変わらないかがポイントで、
外から見た目の振る舞い=仕様であって
内部構造≒設計は、リファクタリングの対象
って事でおk?
249デフォルトの名無しさん
2011/11/20(日) 18:02:36.08250デフォルトの名無しさん
2011/11/20(日) 18:50:26.97251デフォルトの名無しさん
2011/11/20(日) 18:53:49.64252デフォルトの名無しさん
2011/11/20(日) 21:17:25.23253デフォルトの名無しさん
2011/11/21(月) 09:59:01.46 (この人たち、なんで今さらこんな議論をしてるんだろう)
254デフォルトの名無しさん
2011/11/21(月) 22:35:10.04 最初からずっとこのスレにいるのは
お前だけだよw
お前だけだよw
255デフォルトの名無しさん
2011/11/22(火) 10:39:05.00 そうか、リファクタリング本を読んでるのは俺だけだったか
256デフォルトの名無しさん
2011/11/23(水) 00:32:21.88 >>255
本の受け売りじゃなくて中身をちゃんと理解しろよ
本の受け売りじゃなくて中身をちゃんと理解しろよ
257デフォルトの名無しさん
2011/11/23(水) 01:19:14.75 そういう手合いはおそらくよんですらいない
買っただけ
買っただけ
258デフォルトの名無しさん
2012/02/07(火) 13:45:03.37 改修が必要になったときに初めて
その場で interface をでっちあげて、その後、クラスお取替え
これでいい気がしてきた
その場で interface をでっちあげて、その後、クラスお取替え
これでいい気がしてきた
259デフォルトの名無しさん
2012/02/07(火) 20:02:48.59 それでいい
260デフォルトの名無しさん
2012/03/24(土) 14:35:39.62 リファクタリングを身に付けるとコードレベルでの設計力が上がりますか?
261デフォルトの名無しさん
2012/03/24(土) 16:05:22.68 設計力は下がります
でも組んだ後の問題に対する対応力は上がります
でも組んだ後の問題に対する対応力は上がります
262デフォルトの名無しさん
2012/03/24(土) 17:35:34.20 >>261
何故、設計力は下がるのですか?
何故、設計力は下がるのですか?
263デフォルトの名無しさん
2012/03/24(土) 21:11:33.51 設計力あがるだろ
正しい設計のコードに
変化させるのがリファクタリングだ。
正しい設計のコードに
変化させるのがリファクタリングだ。
264デフォルトの名無しさん
2012/03/24(土) 21:36:47.86265デフォルトの名無しさん
2012/03/24(土) 21:51:30.52 オナニー? 自己満足と言いたいのかもしれないが。
仕事でやるのなら自己満足じゃないぞ。
みんなの満足。
仕事でやるのなら自己満足じゃないぞ。
みんなの満足。
266デフォルトの名無しさん
2012/03/24(土) 22:21:58.07 みんなでオナニー
267デフォルトの名無しさん
2012/03/25(日) 12:10:02.63 分散マスタベーション
268デフォルトの名無しさん
2012/04/22(日) 22:43:46.10 密に結合した処理を処理を疎になるようにするとか
処理が対象になるようにシーケンス直すとか
って意味があるリファクタリングだと思うけど
こういうのはリファクタリングっていわんの?
処理が対象になるようにシーケンス直すとか
って意味があるリファクタリングだと思うけど
こういうのはリファクタリングっていわんの?
269デフォルトの名無しさん
2012/08/05(日) 00:31:39.26 >クラス内部で別のクラスを生成しない
>>4のこの話って完全にはDIでも使わなきゃ無理だけど、
FactoryMethodで解決できるよね。
>publicメソッドの引数には、なるべくクラスを使わない。
完全抽象化クラスに類するもの限定ってなら正しいけど、
intや文字列型だけってのは無いよね。スタブ渡せば済む話だし。
>>4のこの話って完全にはDIでも使わなきゃ無理だけど、
FactoryMethodで解決できるよね。
>publicメソッドの引数には、なるべくクラスを使わない。
完全抽象化クラスに類するもの限定ってなら正しいけど、
intや文字列型だけってのは無いよね。スタブ渡せば済む話だし。
270デフォルトの名無しさん
2012/08/05(日) 01:11:40.91 言葉の揚げ足取りに終始しててウザいだけのスレになっちゃってるなw
271デフォルトの名無しさん
2012/10/14(日) 16:17:10.72 大規模アプリには
必ずリファクタリングが必要。
開発工程の一つに加えていいレベル。
必ずリファクタリングが必要。
開発工程の一つに加えていいレベル。
272デフォルトの名無しさん
2012/10/15(月) 15:52:21.57 VB6で幾度となく機能追加が行われたコードをぼんやり眺めてると
リファクタリング?何それおいしいの?
という気分になってくる。
リファクタリング?何それおいしいの?
という気分になってくる。
273デフォルトの名無しさん
2012/10/16(火) 18:14:20.05 >>272
そういうコードこそ、リファクタリングが楽しいんじゃないの?
そういうコードこそ、リファクタリングが楽しいんじゃないの?
274272
2012/10/16(火) 18:35:14.51 趣味でやるならすごく楽しい。一人でやるのなら絶対リファクタリングしてる。
けど仕事となると時間が取れない。
さらなる機能追加と他言語への移植作業用のドキュメントが優先になってまつorz
移植作業前にリファクタリングできたら解読も楽だろうになあ。
そんなことより成果物(ドキュメント)が優先だってさ。しゃーねーや。
けど仕事となると時間が取れない。
さらなる機能追加と他言語への移植作業用のドキュメントが優先になってまつorz
移植作業前にリファクタリングできたら解読も楽だろうになあ。
そんなことより成果物(ドキュメント)が優先だってさ。しゃーねーや。
276デフォルトの名無しさん
2013/07/11(木) NY:AN:NY.AN リファク太
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【朗報】日銀植田総裁「高市さんからの要望は特になかった」 [519511584]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 高市早苗政権「経済的威圧をしてくる国はリスク」 トランプぴょんぴょん政権さん…… [175344491]
