- 1 名前:デフォルトの名無しさん mailto:sage [2010/05/29(土) 17:25:56 .net]
- テストも書かないでリファクタリングとかうけるw
まずな、リファクタリングでは機能追加・修正は行わない。 動作はまったく同じでコードをきれいに書き換えること。 書き換えるといっても、これなら同じ動きだろ?って推測でやってはいけない。 まずテストを書く。ユニットテストをできるように、 単一のクラスでインスタンスを作る。 汚いコードなのだからたいていは依存関係のせいで単一ではクラスが生成できない それを生成するために、クラスの動作を書き換える。 といっても元のコードは修正しない。継承やプリプロセッサを使って 依存関係を断ち切るために既存のコードを上書きする。 どうしてもそれが不可能な場合には、決められた手順で最小のコード修正を行う そうやって既存のクラスのユニットテストを行う。 それでやっとリファクタリングが行える。 既存のクラスのユニットテストを通るように新たなコードに修正、 もしくは新規作成して置き換える。 この手順と考え方を守ってないのはリファクタリングではない。 で?
- 152 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 22:36:13.61 .net]
- きっちりしてるというのはどういう意味だ?
静的型検査という意味なら勘違いも甚だしいぞ
- 153 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 22:41:00.77 .net]
- >>152
コード上に、インターフェースがちゃんと表現されているという意味。 インターフェースを守らない、間違ったコードは組み込めないという意味でもある。
- 154 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 23:28:25.82 .net]
- >>150
ファーストクラスの関数がなかったら?
- 155 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 23:53:30.12 .net]
- >>153
だから、それは静的型検査という意味じゃないのか? >>154 無名クラスがあれば代用可能 無名クラスも無い?あきらめろ
- 156 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 00:43:25.84 .net]
- このように、言語によって
クラスが必要かどうかは違ってくるというのに、 設計書と呼ばれるものに、そこまでちゃんとクラスを書いているのか? 普通は書かないだろ。 だから、設計書と呼ばれているものは、実は設計書ではない。 コードこそが設計書そのものなんだ。
- 157 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 07:35:25.31 .net]
- >>156
>だから、設計書と呼ばれているものは、実は設計書ではない。 >コードこそが設計書そのものなんだ。 そりゃ違うだろ 設計書と呼ばれてるものも設計書 ただ、粒度が異なるだけ
- 158 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 21:53:07.67 .net]
- ただなぁ, 世に存在するうちの設計書で,
なぜこれが必要か といった, 設計ポリシーとともに書かれているものは, ごく稀 で, 最後には ソース読め 状態になると思ってるんだ
- 159 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 01:04:35.79 .net]
- 仕様書は役に立たないがテストの手順書はとても役に立つな
なにをやるための機能なのか一発でわかる 対して仕様書は嘘、間違い、抜け、バージョン違い、勘違い 更新忘れ、認識間違いばっかりになってほとんど役に立たない 仕様書いらなくね? っていうかテスト手順書でよくね? ちなみにおそらくテスト手順書は仕様書を見て作られてはいないだろうな やってみて「ふーん・・・これだろ?これが仕様だろ?な?」的な感じだと思う
- 160 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 11:16:22.26 .net]
- 仕様書とソース・プログラムの挙動が不一致ならバグ認定、即修正
っていうレベルのもの以外は仕様書に書くな!!!!
- 161 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 19:08:42.55 .net]
- >>160
ショートカットとか本当にどうでもいいもののリスト作ってるひまあったら他のことやれよな
- 162 名前:デフォルトの名無しさん mailto:sage [2011/11/04(金) 00:04:28.66 .net]
- >>134
> ゴミコード量産の現場でリファクタリングしようなんて、俺だって思わないな なんかすごくよくわかる。発注しまくりでゴミコード量産しまくりで身動きが取れないわ
- 163 名前:デフォルトの名無しさん mailto:sage [2011/11/04(金) 20:57:42.11 .net]
- うちのプロジェクトjavaソースだけでついに1万個を超えた
リファクタとかいうレベルじゃねーだろ
- 164 名前:デフォルトの名無しさん mailto:sage [2011/11/04(金) 22:40:52.09 .net]
- >>163
すごいな まんこの部分だけ強調して三回ぐらいは口にしたいよね
- 165 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 10:59:30.75 .net]
- javaでもすでに10年物のソースコードとかあるからな
- 166 名前:uy mailto:sage [2011/11/06(日) 16:44:42.65 .net]
- リファクタリングとか、
10万行のソースコードがあったとして、 その10万行のソースコードを、読んだってレベルじゃなくて、そうとう熟知した状態で 1人で行わなきゃならない ていうか、それできるレベルなら、多分最初から書き直したほうが綺麗に書ける まぁそれは理想で SE共のいってるりファクタリングは機能ごとに、ちょこっとずつ最適化していく程度のものを言ってるよね 自分の能力でソースコード全体を見渡せる範囲で何とかするリファクタリング なんていうか、それはね まず木で作られた線路を、途中から鉄にして、さらに途中から銅にしたようなもので、本当に器用に継ぎ接ぎをしてるだけ その継ぎ接ぎ部分はとてもシビアになるし、バグが出ても特定不可能で、 「よくわかんないけど、○○にすると落ちるから☆☆にしといてwwwwwwwwwwwwwっうぇwwwwなんで落ちてんのwwwっうぇwwww」みたいな状況にもなりかねない ソース全体を見渡しているわけでもないリファクタリング作業なんてのは、あまりやりすぎると ゼロから書き直す以上の労力をいつの間にか注いでいる事にもなりかねないので 最低限以上はやっちゃいけない
- 167 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 16:52:16.13 .net]
- >>166
お前は、ただのコード修正をリファクタリングと言ってるだけだね。 リファクタリングは単なる「コード修正」とは違うもの。 リファクタリングは「既存の動きに影響を与えない方法を使ってコードを修正すること」 既存の動きに影響を与えない方法ってのがあるんだよ。 これを使わないとリファクタリングにはならない。 行き当たりばったりの思いつき修正とはわけが違う。 論理的に考えぬかれた体系化されたテクニック。 それカタログ化して解説した本が、世の中にでてるリファクタリング本
- 168 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 17:24:22.30 .net]
- >リファクタリングとか、
>10万行のソースコードがあったとして、 >その10万行のソースコードを、読んだってレベルじゃなくて、そうとう熟知した状態で >1人で行わなきゃならない >ていうか、それできるレベルなら、多分最初から書き直したほうが綺麗に書ける とてもじゃないが、まともに教育を受けた人間の書いた日本語には見えない。
- 169 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 21:45:33.79 .net]
- > 「既存の動きに影響を与えない方法を使ってコードを修正すること」
ここで仕様をリファクターする必要を考慮しないのがリファクタリング厨
- 170 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 22:13:45.01 .net]
- >>169
リファクタリングは仕様を変えないのが原則です。 仕様を変えたほうがいいこともあるが、 それは修正であってリファクタリングではありません。 あたまがわるーい。
- 171 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 22:17:40.89 .net]
- ユーザーインターフェースかわんなきゃリファクタリングと言ってみるtest
- 172 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 23:12:56.73 .net]
- >>170
ちゃんと読め。
- 173 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 02:11:07.98 .net]
- > 仕様をリファクター
はぁ? んなもんリファクタリングじゃあなーいと言ってやれ。ドキュメントをリファクタリングしちゃるとか言ってる奴、それもリファクタリングじゃねーぞコラ。そういうのは、リストラクチャリング(再構築)というのだッ。
- 174 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 06:29:39.93 .net]
- 仕様変更にまで手をいれない修正だったら俺はする意味ないと思うけどね
いいと思ってるのは自分だけっていう典型だと思う
- 175 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 22:24:06.07 .net]
- 試験とか全部やり直しになるけどそこまでコードに重心置けないです
しかも動作は変わらないとかね
- 176 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 22:56:57.01 .net]
- >>174-175
あんたたちに言いたいことは、全て本の最初に、 それは違うよって書いてあります。 つまり、そのレスはFAQで答えがバッチリ出てるので、 今更議論するような話ではないです。
- 177 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 00:14:11.06 .net]
- >>176
とかいって逃げたいから自分の言葉で説明しないで本に書いてあるとか言ってるんでしょ? わかるよ 説明できない人ってみんなそうだもの あんたもいっしょ 残念だけどここ本質なのよね そもそもリファクタリングっていう行動自体意味がわからない 将来どう変わるか?の仕様もないのに汎用性? 何に対していってるの?あれほど仕様書に重点をおいてるのに なんでコードレベルでソフトウェアの方向性がわかるの? それと何度もいうけど全体の工数からいったら実装なんてすげー短い期間なのに リファクタリングなんてしなくていいんだよ 馬鹿かよ 設計や仕様決めに時間割いたほうがいいの、わかった?御馬鹿ちゃん? 人件費みたって派遣PGと正社員様様と比べて比較になるわけねーだろ そんな糞みたいな脳みそしかないんだったら技術者なんてやめちゃえばいいのに
- 178 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 01:14:10.32 .net]
- >>177
コンプレックス刺激されすぎw
- 179 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 01:17:58.36 .net]
- 単純なシチュエーションだと、今動いているものがあって
それに仕様変更や機能追加をする"前"にリファクタリングしたり えーちょっと何やってんのか分からなぁ〜いって時に、リファクタリングして今の動きを確認したりする鴨 さすがに何も用事が無いのにリファクタリングはしないぞw
- 180 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 06:35:51.23 .net]
- >>179
ローカルのHDDの中で勝手にやってろレベルだなw
- 181 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 08:17:23.29 .net]
- >>177
どうしたの? したくないならしなくていいんだよ? 別にお前のコードのことなんて知らないし
- 182 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 12:07:50.87 .net]
- 仕様書を大雑把に
・機能仕様書:ユーザの観点からシステムがどのように動くか記述する ・技術仕様書:プログラムの内部実装について記述する に分けたとき、機能仕様書を変更しないのがリファクタリング 技術仕様書は変更する必要がある と、俺は解釈してるんだけど
- 183 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 22:53:38.54 .net]
- >>182
そんな金になんない仕事やったらダメだよ 仕様どおりには動いているんだ よほど現実からかけ離れた組み方でない限りはそんなところにお金を入れてはダメだ
- 184 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 00:34:09.76 .net]
- リファクタリングの価値は
リファクタリングしたことによる将来のメンテナンスコストの低減分だと思うから、 純粋なリファクタリングをする意味ってあると思うけどね。 まあ、少なくとも、作ったコードを客に出すのが仕事の人は、 リファクタリングの価値を見出すのは難しいだろうね。 お客が腐ったコードをメンテナンスし続ける費用を負担してくれる限り、 工数がかかる方が、お金になるだろうから。
- 185 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 01:07:17.87 .net]
- 寧ろそうやって放置されたコードのメンテナンスの際にESP能力を発揮しながらリファクタリングして日銭稼いでますが何か。
- 186 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 22:25:08.24 .net]
- >>184
でもドングリの背比べじゃない? 仕様にまで踏み込めないレベルの修正でなんか変わるの? 同じ人、もしくは似たようなレベルの人がやんでしょ?
- 187 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 23:19:04.89 .net]
- >>186
同じようなレベルの人がやったら対して変わらんだろうね。 時間がなくて小手先で直したのを時間が取れる時にまともに直すとかかしら。 あほなプログラマが書いた動くけどわけわらんプログラムを レビューで突き返したりするのもリファクタリングになると思うけど、放置するの?
- 188 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 00:11:30.20 .net]
- >>187
でも設計レベルではなにも変わらないんしょ? アホだろうがどうだろうが違いがでるレベルにならんのとちゃうか?
- 189 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 02:48:37.98 .net]
- >>186
> 仕様にまで踏み込めないレベルの修正でなんか変わるの? お前コード書いたことないだろ?
- 190 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 02:49:24.36 .net]
- >>188
お前の言う「設計レベル」ってどういうことだ? コードには設計があるのは知ってるよな? それは機能のことじゃないぞ。
- 191 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 06:19:17.82 .net]
- >>189
あるけど そこでそんなに違いが出るとは思えないんだよね 大手もそう考えるから(いや実際そうなんだろう)PGは派遣ばかりなわけだしね
- 192 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 22:10:19.47 .net]
- 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のリファクタリングを目の当たりにする→ソフトウェアの生産性、品質に明らかな違いが…→筆者「!!」 上の経験からリファクタリングを重要視するようになった
- 193 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 23:19:30.99 .net]
- >>192
そのストーリーって重要な部分なの?w しかもそんな馬鹿みたいな長文書いて大事な要点がちっとも書いてないじゃん >ソフトウェアの生産性、品質に明らかな違いが… 明らかに大事なのってこの部分の詳細だろ 何がよくて品質がどうよくなったのか? だろ? お前の国語の能力低すぎてリファクタリングまで怪しくなるわw
- 194 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 21:19:14.97 .net]
- >>193
そういう文句はオリジナルを書いた奴に言え。
- 195 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 23:32:49.89 .net]
- 自分の言葉で語れない奴はカス
- 196 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 23:58:46.50 .net]
- お前のセリフに説得力はない
- 197 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 01:34:54.40 .net]
- >>191
違いを理解できない能力なだけじゃないの?
- 198 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 20:57:29.42 .net]
- 重複の除去が有効とか書いてあるじゃん
前にやった仕事で、ほんの一部を除いて同一の機能を持つモジュール2つが 別々の人によってそれぞれ実装されてて 目玉飛び出そうになったのを思い出した
- 199 名前:デフォルトの名無しさん mailto:sage [2011/11/16(水) 21:30:50.10 .net]
- 別にいいじゃん
その2つをくっつけることで後に呼び出し先Aの機能を修正したいだけなのに その機能がわざわざまとめられてるために もう一つの呼び出し先Bのソースまで洗わないといけなくなるかもしんないだろ まとめるのは必ずしも正解ではない
- 200 名前:デフォルトの名無しさん [2011/11/16(水) 22:33:28.29 .net]
- >>199
必ずしも正解ではないのは正しいけど 同じような修正が必要になったときに片方の修正が忘れられることの方が多いと思われ 共通で使われてるメソッドの参照元を調べることより クラスもメソッドも違うけど実は中身が同じでなければならなかったのを探すほうが大変な気が 分ける理由がないうちは一緒にしといて 必要になったら分ける方のが正しいと思う
- 201 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 01:17:42.75 .net]
- ちなみに >>198 は
その両方を移植する仕事だった 「工数儲けた」と思ってたら 両者をソース読んで同一機能であることを確認した上で 一つにすりあわせて、その承認もらう羽目になったとさ 当然まともな設計書なんてありゃしないし
- 202 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 22:48:38.78 .net]
- >>200
いや、お前の言ってることはGoogleやAppleでは正しいだろうな だが、日本の工業製品ではNG もちろんいいたいことはわかるけど それじゃ見積もりがとれないこの1点でNG 色々な大手でたくさんのプロジェクトが走っていて 共通ライブラリなんて生まれないっつか生まれても消滅してしまう理由はここにある 修正の影響範囲が巨大すぎて見積もれない また、修正時に全員が同じタイミングで対応できない これも大きな問題だ こっち動かなくなるのに「直したよ〜」とかメールくれられても困るだろ? そっちに手がまわらないのにリリース前に真ライブラリでバグってリリース失敗であぼんとか話にならない 修正した本人は「いいんですーこれが本来あるべき姿なんです〜」って主張しようと 修正するほうは「糞が・・・」って思うっしょ? まあ、MSの出荷するもんにみんなが愚痴をこぼす瞬間だと思うけど
- 203 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 22:50:23.01 .net]
- >>202
で、その壁を超えられる所が勝ち組で 超えられないところはどんどんブラック会社化するわけだ。 仕事、つまらないだろう?w
- 204 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 22:55:03.81 .net]
- >>203
でもいくらもないっしょ? 日本のITって進化に失敗してて紙業務を電子化したような仕事のほうが多いよね? 韓国にもすっかり抜かれちゃったみたいで国内全員でショボーンって感じじゃない? 研究開発分野と本当に極一部だけだろうね まあ、いまそういう開発してても日本じゃいつ紙業務の電子化ITにまわされるかわからないから 勝ち組って意味でいうと海外脱出組が勝ち組だろうね
- 205 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 22:58:57.20 .net]
- >>204
ごめんな。 うち自社で作ったウェブサービス提供する会社なんだわ HTML5系とかそっち系。 選ぶ会社の時点で勝ち負けが決まるよね。 仕事、つまらないだろう?w
- 206 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 23:01:51.10 .net]
- うちは少数精鋭なんで(使えない奴はやめさせられる)
同じコードをいくつも書くとかそんな無駄なことやってられないんだよね。 テストも人海戦術で同じことを何度もやるとか、時間的に無理だし、 もちろん手動テストは極力減らすので、変更したって 影響があるならすぐ分かる。
- 207 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 23:02:59.45 .net]
- >>205
ウェブ系なんて工業製品とかわんねーけどな あんなん汎用性見越して組む必要あるかね? 寿命が短いからどう組んでもどうとでも動くが正解だろ? 納期まで早い方が真 お前の世界こそプログラムを綺麗にまとめて褒める奴1人もいないと思うがな
- 208 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 23:38:17.66 .net]
- >>207
汎用性見越して組むとか言ってないんだが。 無駄にある重複コードをまとめると言ってるだけ。
- 209 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 23:39:39.61 .net]
- 重複コードを作ると、納期が延びます。
修正があると、重複コードの分 修正量が増えます。 少しの修正であっちこっち修正して、 あっちこっちテストして納期伸ばしてるのは誰ですか?w
- 210 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 00:57:17.23 .net]
- >>209
それって何箇所? 10箇所?20箇所?程度なら貼ったほうが速いよね? 思いっきりまとめあげられてて難しい仕組みに頭ひねってソース解読しなきゃいけないぐらいだったら 単純コピーで貼ってあってくれたほうがまだソース読みやすいよね っていうか件数が100件いかない程度のコピペならお前が便所に席を立った間にやっておいてやるよ この程度の件数だったらどう組んでも変わらない
- 211 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 01:28:11.79 .net]
- >>210
お前適性ないんじゃね? ぶっちゃけ、仕事楽しくないでしょ?
- 212 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 01:48:53.37 .net]
- 自分でやるんじゃなくて他人にやらせるんだろ
- 213 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 06:57:57.33 .net]
- >>211
いや、楽しいよ お前みたいな対象物のメリットとデメリットも判断できんようなの出し抜いて数字上げるのが何よりの快感だわ(笑) 結局、技術の上部だけしかすくえないひとって何も見えてないんだよね 新しいってだけである意味パニック状態になってる自分がなにより見えてない
- 214 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 07:32:36.75 .net]
- 数字を出しさえすればそれが全てだと思い込んでいることはよく判った。
さぞかし楽しい人生だろうねぇ。
- 215 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 11:48:05.79 .net]
- >>213
お前性格屈折してるな そうとういじめられたな
- 216 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 12:54:07.46 .net]
- >>210
> 思いっきりまとめあげられてて難しい仕組みに頭ひねってソース解読しなきゃいけないぐらいだったら > 単純コピーで貼ってあってくれたほうがまだソース読みやすいよね 申し訳ありません ifとforしか理解できない人もいるということを忘れていました リファクタリングの過程でデザインパターンを適用してしまったことをお許しください
- 217 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 12:59:02.53 .net]
- >>213
コピペもできるしリファクタリングもできる俺がそれを言うならまだわかるけど、 お前はコピペしかできないんだからさ、取捨選択の上でコピペを採用したみたいな言い方はやめてよ もっともらしい後付けをしたところで、お前のカードはコピペしかないわけで
- 218 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 12:59:57.09 .net]
- >>216
forすら理解してないかもよ 100回ループ廻すくらいならコピペするって言い出しかねん
- 219 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 15:50:01.61 .net]
- 正面から反論できないときは人格攻撃になるんですね
その時点で白旗あげてるっていうかなんていうか
- 220 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 19:16:21.49 .net]
- >>219
だってー 低レベルな人を教育してあげる気なんて毛頭ないですしー
- 221 名前:デフォルトの名無しさん mailto:sage [2011/11/18(金) 23:06:02.19 .net]
- >>220
でも自分のやってることの説明できないってのは問題じゃない? 結局トレードオフの問題であって やればやるほどとかどんな場面でもってわけじゃないってとこは否定できないわけでしょ じゃあ、君のやり方は正しいの?また、他の人と差がでるのは何が決め手なの? ってのは結局のところどこでも求められると思うんだけどね それが説明できないなら君に用のある人なんていないと思うんだよね みんな暇じゃないから(笑)
- 222 名前:デフォルトの名無しさん [2011/11/19(土) 16:25:48.92 .net]
- へえ
- 223 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 16:38:24.26 .net]
- トレードオフ考えてやるんだから
やっぱりリファクタリングは必要ってことね リファクタリング全否定って人はいるのかしら
- 224 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 17:14:49.53 .net]
- トレードオフはコードをまとめる話だろ?
リファクタリングはまったく必要ないよ そもそも意味わからないもん 次の仕様が決まってる中でのコード修正ならわかるけど 次になんの予定もないのに何に向けてどう修正してるのかまったく理解できない その修正はいいの?悪いの? オナニーで終わってない? これらを判断できる材料すらわからない 単に金をドブに捨ててるだけだと思う
- 225 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 17:30:26.36 .net]
- 汚いコード
ゴミ溜めが如くきったない部屋で過ごしてもなーんにも問題無い ↑ ↓ チリ一つも落ちていないようなクリーンルームじゃないと過ごせない 綺麗なコード って話だろ? 何事もほどほどにしとけって事だよ
- 226 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 17:33:20.81 .net]
- >>225
人の話を良く聞かないで進めちゃって失敗するほうじゃない?
- 227 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 18:59:16.42 .net]
- >>224
キミがそのコードをずっとメンテナンスする責任者だとして、 どこかのプログラマが明らかにまとめるべきところまとめてこなかったり、 分けるべきところをを無理やりまとめてきたりした場合、 正しく動くという理由でそのままにしておくのかい?
- 228 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 19:28:32.54 .net]
- >>227
作るときに設計書にあわせてもらいます ソースだけ弄るってことはしません
- 229 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 19:33:14.80 .net]
- ソース=設計書だろ?
- 230 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 19:47:12.13 .net]
- >>229
底辺乙
- 231 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 19:51:09.79 .net]
- >>228
要するに仕様は変えずに設計を変えるんだろ リファクタリングじゃないか
- 232 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:14:22.32 .net]
- 最高 綺麗で動く
↑ 汚いが動く ↓ 綺麗で動かない 最低 汚くて動かない 一番下のは捨ててよし [動く/動かない] と [綺麗/汚い] の相関関係だお 汚いけど動くのは、綺麗だが動かないものより価値がある。 でも綺麗で動かないのを 動く にしやすいし、 汚いけど動くものも、後で何か変更するにあたって、動くのを保ちつつ綺麗にしておくと直しやすい。 「綺麗にする」のがリファクタリング。動かないものを動くようにすることとはイコールではない。関係はあるけど。
- 233 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:27:15.16 .net]
- >>232 使用がバッチィからコードもバッチイって発想はないのか?
- 234 名前:232 mailto:sage [2011/11/19(土) 20:45:33.70 .net]
- 仕様が汚いと動かすのが難しい
↑ ↓ 綺麗な仕様は動かしやすい って関係はあると思うけど、コードと仕様は直接関係しないんじゃねの?
- 235 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 20:55:13.83 .net]
- >>234
汚い仕様を何とか動かすために、 汚い姑息なコードを大量に入れてる 例なら山ほどあるよ
- 236 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 21:31:39.15 .net]
- コードを綺麗/汚いで語るから話がおかしくなるんじゃないか。
リファクタリングって大なり小なり設計の問題の修正のことだと思うんだが。 オレがずれてるのか。
- 237 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 21:34:18.54 .net]
- >>236
おれもそう思うよ. 仕様も設計の内だとも思うけど...
- 238 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 21:49:35.63 .net]
- もちろん設計の問題とコードの綺麗/汚いは関係ありますが?
最初にきちんと設計をしたつもりでも、実装段階では想定したとおりに行かなかったり、抜けがあったりすることはよくあることです。 実際に書いているうちにいろいろ思いつくこともあります。ちょこっと例外的な処理を付け加えて、を繰り返し、コードは汚くなっていきます。 そうしてソースがスパゲッティ化し、メンテ不能のソースとなっていきます。 そうならないようにするためにリファクタリングがあります。 リファクタリングとは、仕様を変えることなく、ソースコードを改造することをいいます。 汚いソースコードでもプログラムは動きますが、メンテナンスするのは大変です。 汚いソースコードと綺麗なソースコードではメンテのしやすさが全く違います。 なのできるだけ綺麗なソースを書くように心がけ、汚くなったら速やかに書き直すことです。 後々のことを考えて、わかりやすいソースに直します。
- 239 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 22:15:38.43 .net]
- >>238
> そうならないようにするためにリファクタリングがあります。 そうならないように設計を見直す方が先じゃないか? 小手先でどれだけいじっても, 汚い設計は汚いソースを 再生産するだけじゃないのか? それだったら, 設計をリファクターすべきだ ぶっちゃけ, ユーザーインターフェースが変わらなきゃ 仕様の範囲内だ
- 240 名前:デフォルトの名無しさん mailto:sage [2011/11/19(土) 23:03:54.10 .net]
- >>238
コピペはいらんよ。 汚い綺麗で語るとコードの可読性ばかりを問題にしてるように感じるって話。 だからリファクタリングがいらないとか言う奴がいるんじゃないの。 コードが綺麗であっても設計上の問題が存在することは当然あるよね。 コードの綺麗/汚いは設計の一部しか示していないと思うし、 その修正はリファクタリングの一部でしかないと思う。
- 241 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 07:43:51.29 .net]
- >>240
したらただの仕様変更だよねそれって まあ、名称にこだわる必要もないけど
- 242 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 08:21:15.92 .net]
- 関数、クラスの仕様は変わっても
システム全体の仕様は変わりません。 なので仕様変更にはあたりません。
- 243 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 08:21:59.02 .net]
- 設計変更と仕様変更は別の話といえばよかったか。
- 244 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 12:07:12.15 .net]
- 設計を仕様と見なしたら
仕様変更を伴わないコード変更って存在するのか?
- 245 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 12:08:20.66 .net]
- aとかbとかわけのわからん変数名を
意味がある変数名に変更するとか。
- 246 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 13:09:50.85 .net]
- I/F変更を伴うかどうかっていう観点じゃないの
ユーザに見える部分とか 担当者の異なるモジュール間とか
- 247 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 17:10:54.61 .net]
- オリンパスコーディング
- 248 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 17:46:34.19 .net]
- 結局、
外から見た目の振る舞いが変わるか/変わらないかがポイントで、 外から見た目の振る舞い=仕様であって 内部構造≒設計は、リファクタリングの対象 って事でおk?
- 249 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 18:02:36.08 .net]
- >>248
個人的にはソレが正しいと思うけど そう思ってない人がいる予感。 241とか
- 250 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 18:50:26.97 .net]
- >>249
じゃあ、リファクタリングってのは設計変更までを指すってことでいい? 何やんだかさっぱりわからないけど
- 251 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 18:53:49.64 .net]
- >>250
設計の範囲を定義しろ。 話はそれからだ。
- 252 名前:デフォルトの名無しさん mailto:sage [2011/11/20(日) 21:17:25.23 .net]
- >>251
そっちにまかせる >>248がえらそうに宣言してるから>>248に決めてもらうか
|

|