テストも書かないでリファクタリングとかうけるw
まずな、リファクタリングでは機能追加・修正は行わない。
動作はまったく同じでコードをきれいに書き換えること。
書き換えるといっても、これなら同じ動きだろ?って推測でやってはいけない。
まずテストを書く。ユニットテストをできるように、
単一のクラスでインスタンスを作る。
汚いコードなのだからたいていは依存関係のせいで単一ではクラスが生成できない
それを生成するために、クラスの動作を書き換える。
といっても元のコードは修正しない。継承やプリプロセッサを使って
依存関係を断ち切るために既存のコードを上書きする。
どうしてもそれが不可能な場合には、決められた手順で最小のコード修正を行う
そうやって既存のクラスのユニットテストを行う。
それでやっとリファクタリングが行える。
既存のクラスのユニットテストを通るように新たなコードに修正、
もしくは新規作成して置き換える。
この手順と考え方を守ってないのはリファクタリングではない。
で?
探検
リファクタリングをただのコード修正と思ってる人へ
■ このスレッドは過去ログ倉庫に格納されています
2010/05/29(土) 17:25:56
567デフォルトの名無しさん
2014/09/21(日) 01:26:54.31ID:UIOIQYIj 一度客に納入してさあ、次に改修の仕事がきたときにリファクタリングしていたから工数が減っていたとしてもなんのメリットもないんだよな。むしろ工数が少なきゃ金が取れない。リファクタリングした分取ったら水増し請求だ。
機能やバグについて同等で、メンテしやすさだけ向上させる工程なんて日本の一般的な開発ではインセンティブゼロだよ。趣味ならともかくプロの仕事なら。
最初からリファクタリングの作業も込みで工数見積もりなり、費用請求しろ、ってそんな見積もり見て納得する客いるわけないじゃん。最初から手直しいらない納品物にして下さい、と言われてオチ。
出来上がってテスト済みのソースをあれこれいじるなんてお遊びが入り込む余地はない。
機能やバグについて同等で、メンテしやすさだけ向上させる工程なんて日本の一般的な開発ではインセンティブゼロだよ。趣味ならともかくプロの仕事なら。
最初からリファクタリングの作業も込みで工数見積もりなり、費用請求しろ、ってそんな見積もり見て納得する客いるわけないじゃん。最初から手直しいらない納品物にして下さい、と言われてオチ。
出来上がってテスト済みのソースをあれこれいじるなんてお遊びが入り込む余地はない。
568デフォルトの名無しさん
2014/09/21(日) 01:42:02.59ID:H7xT3+nz それと、テストという概念は個人がスクリプトやツール類を書く場合には絶対に生まれてこない発想で、
多人数で、複数の技能レベルの人が、仕様書をガイドに組織的に開発に関わる条件下で必然的に生じる仕事上の手続き。
個人がコード書く場合は、ソースコード全体、アルゴリズム、関数やクラスを全て把握しているので
テストコードをいちいち書く必要がない。だからデバックという手順はあっても、関数やクラスのテストコードを
いちいち書くという発想にはならない。コード修正も容易、エラーが発生してもその場で即対応できる個人レベルの作業としては正しい。
組織で開発する部門では他人が必要なコードを仕様化した関数やクラスの動作条件を定めているから、
それを大前提としてモジュール動作をテストする必要がある。一見して馬鹿げている行為に思えるのは、
アルゴリズムを提示せずトップダウン的に関数のIN/OUTのみで仕様を提示するためにモジュールのテストが必須になる。
チェックデータの側面についていえば情報管理上テストデータが必ず必須になる。それは本物と試験用のデータが違うということ。
テストコードは本人が書くと、世界は如何にばかげた行為に時間を費やしているのかと思うだけだが、
本来は書く側は最終コードが動作すると確認した上で、2重チェックとして仕様を作成した側がテストするためのコードなり手段を作るべきだな。
人が居ないというなら、テストコード書くのでなく、統合テスト的に動作チェックすべき。
多人数で、複数の技能レベルの人が、仕様書をガイドに組織的に開発に関わる条件下で必然的に生じる仕事上の手続き。
個人がコード書く場合は、ソースコード全体、アルゴリズム、関数やクラスを全て把握しているので
テストコードをいちいち書く必要がない。だからデバックという手順はあっても、関数やクラスのテストコードを
いちいち書くという発想にはならない。コード修正も容易、エラーが発生してもその場で即対応できる個人レベルの作業としては正しい。
組織で開発する部門では他人が必要なコードを仕様化した関数やクラスの動作条件を定めているから、
それを大前提としてモジュール動作をテストする必要がある。一見して馬鹿げている行為に思えるのは、
アルゴリズムを提示せずトップダウン的に関数のIN/OUTのみで仕様を提示するためにモジュールのテストが必須になる。
チェックデータの側面についていえば情報管理上テストデータが必ず必須になる。それは本物と試験用のデータが違うということ。
テストコードは本人が書くと、世界は如何にばかげた行為に時間を費やしているのかと思うだけだが、
本来は書く側は最終コードが動作すると確認した上で、2重チェックとして仕様を作成した側がテストするためのコードなり手段を作るべきだな。
人が居ないというなら、テストコード書くのでなく、統合テスト的に動作チェックすべき。
569デフォルトの名無しさん
2014/09/21(日) 01:52:41.82ID:H7xT3+nz リファクタリングは工数水増しの手段ではない。
保守とは違うので、日本の開発やってる業界のインセンティブなど関係がない。
リファクタリングとは関係がないな。
見積もりの段階でリファクタリングなどの話は出てこない。
手直しが要るといって費用請求している段階で、それはリファクタリングの問題ではなく
失敗したプロジェクトや案件だということだろう。それを誤魔化す為に誰かが嘘として
リファクタリングと言ってるだけだろう。
保守とは違うので、日本の開発やってる業界のインセンティブなど関係がない。
リファクタリングとは関係がないな。
見積もりの段階でリファクタリングなどの話は出てこない。
手直しが要るといって費用請求している段階で、それはリファクタリングの問題ではなく
失敗したプロジェクトや案件だということだろう。それを誤魔化す為に誰かが嘘として
リファクタリングと言ってるだけだろう。
570デフォルトの名無しさん
2014/09/21(日) 02:21:17.93ID:H7xT3+nz もし>>567が客側の意見であれば、失敗したプロジェクトや案件とは縁を切って
再出発したほうが開発側も、客側も気持ち的にはしあわせになれますよ。
再出発したほうが開発側も、客側も気持ち的にはしあわせになれますよ。
571デフォルトの名無しさん
2014/09/21(日) 06:26:59.02ID:4aXz2u5s >>563
>http://ja.wikipedia.org/wiki/%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%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)
>リファクタリング登場の経緯と目的[編集]
>リファクタリングが登場する以前は、一度正常な動作をしたプログラムは二度と手を触れるべきではないと言われていた。
>下手に手を加えて動作が変わってしまうと、それに伴って関連する部分にも修正が加えられ、やがて修正はプロジェクト
>全体に波及し対処しきれなくなるかも知れない。またソフトウェアテストを十分に行い正常な動作が確認されたとしても、
>そのプログラムをわずかでも改変すれば、バグ (欠陥) が見つかったときに改変があったプログラムを疑わなければならない。
>http://ja.wikipedia.org/wiki/%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%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)
>リファクタリング登場の経緯と目的[編集]
>リファクタリングが登場する以前は、一度正常な動作をしたプログラムは二度と手を触れるべきではないと言われていた。
>下手に手を加えて動作が変わってしまうと、それに伴って関連する部分にも修正が加えられ、やがて修正はプロジェクト
>全体に波及し対処しきれなくなるかも知れない。またソフトウェアテストを十分に行い正常な動作が確認されたとしても、
>そのプログラムをわずかでも改変すれば、バグ (欠陥) が見つかったときに改変があったプログラムを疑わなければならない。
572デフォルトの名無しさん
2014/09/21(日) 06:35:53.53ID:4aXz2u5s >>566
>りファクタリングって言うのは、オブジェクト指向の言語(これが大前提)
は?wwwwwwwwwwwwwwwwwwww
オブジェクト指向とそうではない言語での違いを説明しろよ
オブジェクト指向という言葉になんか宗教的妄信でもしてるのか?
>りファクタリングって言うのは、オブジェクト指向の言語(これが大前提)
は?wwwwwwwwwwwwwwwwwwww
オブジェクト指向とそうではない言語での違いを説明しろよ
オブジェクト指向という言葉になんか宗教的妄信でもしてるのか?
573デフォルトの名無しさん
2014/09/21(日) 09:08:44.80ID:aP8Aq0OA 必要なのはコードのリファクタリングではなく
チームメンバのリファクタリングである
チームメンバのリファクタリングである
574デフォルトの名無しさん
2014/09/21(日) 09:29:51.06ID:48QWsy10 言い換えると、ソースコードをリファクタリング出来るように
チームメンバーの技術力を高めることである。
チームメンバーの技術力を高めることである。
575デフォルトの名無しさん
2014/09/21(日) 09:47:59.75ID:dzDyx0VV > チームメンバのリファクタリングである
リファクタリングて振舞いを変えてはいかんのでは?
リファクタリングて振舞いを変えてはいかんのでは?
576デフォルトの名無しさん
2014/09/21(日) 12:25:58.75ID:MCI/5nTd 例えばバグが多く、しかも非常にメンテしにくい糞コードがあったとする
この場合
1. バグを含んだままリファクタリングして、その後バグを直す
2. 先にバグを直して正しいテストを通る様にしてから、リファクタリングに着手する
どっち?
この場合
1. バグを含んだままリファクタリングして、その後バグを直す
2. 先にバグを直して正しいテストを通る様にしてから、リファクタリングに着手する
どっち?
577デフォルトの名無しさん
2014/09/21(日) 12:33:35.65ID:48QWsy10 >>576
原則としては2番
ただし、今既に十分なテストがあるのなら、
リファクタリングしてもよい。
ようするに「バグが有ることに気づいていなかった」と考える。
バグが有るといえども、その状態で使われていたのであれば、
問題ない範囲(把握している範囲)で使われていたわけで、
使われていた部分の動きが変わっていなければ何も問題ない。
適切に動いていないバグの部分の動きが変わった所で
誰も困らない。そもそもバグは仕様ではないのだから。
原則としては2番
ただし、今既に十分なテストがあるのなら、
リファクタリングしてもよい。
ようするに「バグが有ることに気づいていなかった」と考える。
バグが有るといえども、その状態で使われていたのであれば、
問題ない範囲(把握している範囲)で使われていたわけで、
使われていた部分の動きが変わっていなければ何も問題ない。
適切に動いていないバグの部分の動きが変わった所で
誰も困らない。そもそもバグは仕様ではないのだから。
578デフォルトの名無しさん
2014/09/21(日) 13:51:42.60ID:C0Gh49Ld579デフォルトの名無しさん
2014/09/21(日) 15:34:48.90ID:4aXz2u5s ホント現実をみてないな
クソコードの影にクソ仕様書あり
仕様が網羅されていないクソ仕様書、そしてあってるのかあってないのかもわからんクソソース
そして、仕様を完全把握しているものは不在(いない)
コードを読みやすくする?直す?どーやってなおすんだよ正しい仕様不明なのに
手を入れなければ責任問題は自分にはかからない
正式に仕事として認可されるまでは、さわらずほっとく。こんなのが大量なんだ現実は
まともな仕様書を作るやつは、まともなプログラムも書いている。でもそれは修正等々なんて必要のないソース
リファクタリングの対象となるソースは、前者のクソコード、クソ仕様書のほうだ。正解が不明なのにどうやって直すんだ
クソコードの影にクソ仕様書あり
仕様が網羅されていないクソ仕様書、そしてあってるのかあってないのかもわからんクソソース
そして、仕様を完全把握しているものは不在(いない)
コードを読みやすくする?直す?どーやってなおすんだよ正しい仕様不明なのに
手を入れなければ責任問題は自分にはかからない
正式に仕事として認可されるまでは、さわらずほっとく。こんなのが大量なんだ現実は
まともな仕様書を作るやつは、まともなプログラムも書いている。でもそれは修正等々なんて必要のないソース
リファクタリングの対象となるソースは、前者のクソコード、クソ仕様書のほうだ。正解が不明なのにどうやって直すんだ
580デフォルトの名無しさん
2014/09/21(日) 16:39:44.45ID:48QWsy10581デフォルトの名無しさん
2014/09/21(日) 16:40:37.43ID:48QWsy10 > コードを読みやすくする?直す?どーやってなおすんだよ正しい仕様不明なのに
それは、正しい仕様がなければ、
現在のコードの動きを仕様と考えればいいだけ。
それは、正しい仕様がなければ、
現在のコードの動きを仕様と考えればいいだけ。
582デフォルトの名無しさん
2014/09/21(日) 16:53:43.27ID:4aXz2u5s583デフォルトの名無しさん
2014/09/21(日) 16:54:11.17ID:Ep6XnQTS 開発手法が根本からおかしい
リファクタリング以前の問題
リファクタリング以前の問題
584デフォルトの名無しさん
2014/09/21(日) 16:55:08.58ID:4aXz2u5s585デフォルトの名無しさん
2014/09/21(日) 17:12:48.09ID:48QWsy10586デフォルトの名無しさん
2014/09/21(日) 17:14:26.03ID:48QWsy10 >>582
> 句読点のない文章みたいに処理の区切りがまったくないような文体で書かれたソースなんぞ誰が手をつけるか
でも、バグがあったら直さないといけないし、
仕様変更、機能追加があったら、手を付けないといけないよね?
> 句読点のない文章みたいに処理の区切りがまったくないような文体で書かれたソースなんぞ誰が手をつけるか
でも、バグがあったら直さないといけないし、
仕様変更、機能追加があったら、手を付けないといけないよね?
587デフォルトの名無しさん
2014/09/21(日) 17:24:56.25ID:SqCSMf85 うちのソースコードはほとんどが綺麗だから
句読点のない文章みたいに処理の区切りがまったくないような文体で書かれたソース
なんてほとんど無いよ。
そんな汚いソースがたくさんある所は、
手をつける箇所=リファクタリングするべき場所でしょう。
句読点のない文章みたいに処理の区切りがまったくないような文体で書かれたソース
なんてほとんど無いよ。
そんな汚いソースがたくさんある所は、
手をつける箇所=リファクタリングするべき場所でしょう。
588デフォルトの名無しさん
2014/09/21(日) 17:25:48.01ID:J4CuFh4O この板はガセネタをもとにした煽り合いのスレしかないみたいだな
・××と言われているが本当は○○
・こんなことも知らないの?
これが2ちゃんクヲリチーだな
・××と言われているが本当は○○
・こんなことも知らないの?
これが2ちゃんクヲリチーだな
589デフォルトの名無しさん
2014/09/21(日) 19:17:45.62ID:4aXz2u5s >>585
作ってあげるよ、クソ仕様書
機能:
俺の心の中にあるいい塩梅で、業務を遂行する処理
以上
これは極端に書いたが、冗談抜きで口頭で仕様をやりとりしたのか
いっさい、仕様書に、当該機能部分の記載がない。
作ってあげるよ、クソ仕様書
機能:
俺の心の中にあるいい塩梅で、業務を遂行する処理
以上
これは極端に書いたが、冗談抜きで口頭で仕様をやりとりしたのか
いっさい、仕様書に、当該機能部分の記載がない。
590デフォルトの名無しさん
2014/09/21(日) 20:05:10.80ID:6N1L/uhm 嫌なら辞めれば良いのに
って思う
って思う
591デフォルトの名無しさん
2014/09/21(日) 20:10:42.85ID:qWzZkk5b >>590
どっちにたいして言ってるのかわからんよ、その文では
クソシステムが嫌と言ってる人に言ってるのか、
リファクタリングwをしないやつはだめだって言ってるやつに言ってるのか
どっちにも解釈できる
どっちにたいして言ってるのかわからんよ、その文では
クソシステムが嫌と言ってる人に言ってるのか、
リファクタリングwをしないやつはだめだって言ってるやつに言ってるのか
どっちにも解釈できる
592デフォルトの名無しさん
2014/09/21(日) 21:44:29.99ID:5OzBoJXn クソソース1万ステップ読まなくていいようにするためにリファクタリングするんじゃないか
593デフォルトの名無しさん
2014/09/21(日) 21:45:48.38ID:9ZybMmhl マーチン・フラウアーのリファクタリング本てruby版とjava版て言語が違うだけで内容は重複してるの?
それとも別の内容が多いから両方買った方がいい?
それとも別の内容が多いから両方買った方がいい?
594デフォルトの名無しさん
2014/09/21(日) 22:48:11.16ID:SqCSMf85595デフォルトの名無しさん
2014/09/21(日) 23:01:02.38ID:SqCSMf85596デフォルトの名無しさん
2014/09/22(月) 01:14:38.68ID:8ME10ieO リファクタリング真理教か原理主義かしらんがウゼエ
597デフォルトの名無しさん
2014/09/22(月) 06:10:50.31ID:mZl8n2a+598デフォルトの名無しさん
2014/09/22(月) 06:22:02.06ID:VFEp2OOw Aさんがリファクタリングしました。
Bさんが読みましたAさんのリファクタリングがクソです。Bさん直しました。
Cさん見ましたBさんのソースコードクソです。Cさん直しました。
永遠と、、、、、
個人の力量、感性によって結果が大きく作用してしまうものは、学術的工学的な基本がないからどうにもならない。
Bさんが読みましたAさんのリファクタリングがクソです。Bさん直しました。
Cさん見ましたBさんのソースコードクソです。Cさん直しました。
永遠と、、、、、
個人の力量、感性によって結果が大きく作用してしまうものは、学術的工学的な基本がないからどうにもならない。
599デフォルトの名無しさん
2014/09/22(月) 08:09:32.93ID:mZl8n2a+ 普通は、
Aさんがリファクタリングしました。
Bさんが読みましたAさんのリファクタリングがクソです。Bさん直しました。
Cさん見ましたBさんのソースコードクソです。Cさん直しました。
Cさんリファクタリング大勝利!!! ・・・でしょ?
Aさんがリファクタリングしました。
Bさんが読みましたAさんのリファクタリングがクソです。Bさん直しました。
Cさん見ましたBさんのソースコードクソです。Cさん直しました。
Cさんリファクタリング大勝利!!! ・・・でしょ?
600デフォルトの名無しさん
2014/09/22(月) 08:34:50.21ID:mZl8n2a+ Class レイザラモンFoo Extends Object
Public サルinit(void);
Public クエリFoo(String SQL文はクソ);
Protect ないですFoo(void);
Destractor システム緊急停止オペ呼んでくさいFoo(void);
End Class
こんな仕様のクラスを業務システムのスーパークラスにしてあとは全て継承
という仕様は誰だって疑問を持つと思うんだが、そこを直すのがリファクタリング。
リファクタリング大勝利!!!
Public サルinit(void);
Public クエリFoo(String SQL文はクソ);
Protect ないですFoo(void);
Destractor システム緊急停止オペ呼んでくさいFoo(void);
End Class
こんな仕様のクラスを業務システムのスーパークラスにしてあとは全て継承
という仕様は誰だって疑問を持つと思うんだが、そこを直すのがリファクタリング。
リファクタリング大勝利!!!
601デフォルトの名無しさん
2014/09/22(月) 11:41:29.79ID:y9q7ZqSb602デフォルトの名無しさん
2014/09/22(月) 12:15:28.88ID:4rgv3mOC603デフォルトの名無しさん
2014/09/22(月) 13:03:42.75ID:BRLO2XpR 優れたの方コードを採用すればいいだけだろ。
604デフォルトの名無しさん
2014/09/22(月) 13:12:39.94ID:8Zrs8f+9 個人の知識の違いによってソースの見え方が違うからな
アホが天才のコードを見ると何じゃこりゃってなるし、逆もまた然り
アホが天才のコードを見ると何じゃこりゃってなるし、逆もまた然り
605デフォルトの名無しさん
2014/09/22(月) 13:51:20.75ID:BRLO2XpR 知識って・・・そんなの一機能5分もあれば
知らない状態から理解できるだろ。
どんだけ素人なんだ?
つーか知らない時点で、判断できないわけで
議論からはお役御免なわけだが
知らない状態から理解できるだろ。
どんだけ素人なんだ?
つーか知らない時点で、判断できないわけで
議論からはお役御免なわけだが
606デフォルトの名無しさん
2014/09/22(月) 13:53:03.85ID:BRLO2XpR それに、知らないなら何をやっているか
理解できないわけで、リファクタリング出来るわけがないな。
理解できないわけで、リファクタリング出来るわけがないな。
607デフォルトの名無しさん
2014/09/22(月) 17:49:10.78ID:8HtrhTyn おれはやらな〜いw
これでリファクタリングは崩壊するwww
これでリファクタリングは崩壊するwww
608デフォルトの名無しさん
2014/09/22(月) 19:42:14.76ID:OvpzlkOF アホみたいな話だが結局>>598が真理だよな。
リファクタリングする人は、自分のコードもいずれリファクタリングされる事を受けいれねばならん。
リファクタリングする人は、自分のコードもいずれリファクタリングされる事を受けいれねばならん。
609デフォルトの名無しさん
2014/09/22(月) 20:32:19.28ID:0yRqeFm6 リファクタリングはただのコード修正と思ってもらってかまわない
610デフォルトの名無しさん
2014/09/22(月) 20:44:04.47ID:jEzIKioA リファクタリングするよ派はここでなにしてんの?しないよ派とじゃれあってるのが楽しいの?
やり合ってる本人は議論してるつもりかもしれないけど、外から見てるとしょうもなさすぎてww
やり合ってる本人は議論してるつもりかもしれないけど、外から見てるとしょうもなさすぎてww
611デフォルトの名無しさん
2014/09/22(月) 21:11:07.07ID:BRLO2XpR612デフォルトの名無しさん
2014/09/22(月) 22:45:37.55ID:rMqlGcxC >>1が考えるようなことは誰もが考えてる。
その結果、新しい開発言語が生まれているということを理解できないのか?
過去、多くの開発手法・開発スタイルが提唱されたが、
社会に受け入れられたものは、「理論」と「それを強制する新しい開発言語」が常にワンセットになっていた
「超絶スパゲッティコード」を少しでもまともにするために
原因の「goto」を取り除く方法として、「gotoレス」という理論とともに「3つの基本構造を使うようにした、構造化プログラミング言語」が生まれ
「グローバル変数の多用がデバッグを困難にする問題」を少しでもまともにするために
原因の「不必要にメモリをどこからでもアクセスできる状態」を取り除くため「カプセル化」が提唱され、オブジェクト指向言語に組み込まれ
等々・・・・。
何を持ってリファクタリングといいたいのかわからないが、汚いコードを綺麗なコードになおすというなら。
リファクタリングが成功したといえる、最終のコードはどのようなものなのか。具体的に示す必要がある。
プログラムとして存在するあらゆるコードパターンに対応した、綺麗なコードを示してくれ。
それを明示できないうちは>>598の意見が正しい。
個人の感性次第なら、汚いコードと周りは言うが書いているプログラマにとってはリファクタリング不要な綺麗なコードと判断するだろう。
先人達は、その時代のプログラムコードの問題を考えた。
その答えが、理論を具現化した新プログラミング言語の開発だ。
>>1はしのごのいうなら、リファクタリング後の形になるプログラミング言語を生み出せ。
どんな馬鹿でも、その綺麗なプログラミングになるプログラミング言語を。
その結果、新しい開発言語が生まれているということを理解できないのか?
過去、多くの開発手法・開発スタイルが提唱されたが、
社会に受け入れられたものは、「理論」と「それを強制する新しい開発言語」が常にワンセットになっていた
「超絶スパゲッティコード」を少しでもまともにするために
原因の「goto」を取り除く方法として、「gotoレス」という理論とともに「3つの基本構造を使うようにした、構造化プログラミング言語」が生まれ
「グローバル変数の多用がデバッグを困難にする問題」を少しでもまともにするために
原因の「不必要にメモリをどこからでもアクセスできる状態」を取り除くため「カプセル化」が提唱され、オブジェクト指向言語に組み込まれ
等々・・・・。
何を持ってリファクタリングといいたいのかわからないが、汚いコードを綺麗なコードになおすというなら。
リファクタリングが成功したといえる、最終のコードはどのようなものなのか。具体的に示す必要がある。
プログラムとして存在するあらゆるコードパターンに対応した、綺麗なコードを示してくれ。
それを明示できないうちは>>598の意見が正しい。
個人の感性次第なら、汚いコードと周りは言うが書いているプログラマにとってはリファクタリング不要な綺麗なコードと判断するだろう。
先人達は、その時代のプログラムコードの問題を考えた。
その答えが、理論を具現化した新プログラミング言語の開発だ。
>>1はしのごのいうなら、リファクタリング後の形になるプログラミング言語を生み出せ。
どんな馬鹿でも、その綺麗なプログラミングになるプログラミング言語を。
613デフォルトの名無しさん
2014/09/22(月) 22:52:50.40ID:BRLO2XpR >612
新しい言語というから何かと思えば
gotoレスとかカプセル化とか
全然新しくないじゃないか。
30年ぐらい前の話だろ。
新しい言語というから何かと思えば
gotoレスとかカプセル化とか
全然新しくないじゃないか。
30年ぐらい前の話だろ。
614デフォルトの名無しさん
2014/09/22(月) 22:55:02.43ID:BRLO2XpR > 何を持ってリファクタリングといいたいのかわからないが
無知は勉強すればいいだけ。恥ずかしいことなんて無いよ!
>>423, >>426あたりを読むといいよ。
リファクタリングの誤用
ttp://capsctrl.que.jp/kdmsnr/wiki/bliki/?RefactoringMalapropism
リファクタリングの境界線
ttp://capsctrl.que.jp/kdmsnr/wiki/bliki/?RefactoringBoundary
インタフェースの変更はリファクタリングか
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?IsChangingInterfacesRefactoring
> 答えは簡単――インタフェースの変更はリファクタリングだ。
未知のバグフィックスはリファクタリングか?
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?IsFixingAnUnknownBugRefactoring
> 私はリファクタリングと呼べると思う。 バグを含んだ振る舞いを知らなかった(あるいは気にしなかった)わけだから、
> これは「外部から見たときの振る舞い」ではないのだ。 たとえバグに気付いていたとしても、
> それが気にするようなバグでなければ、 リファクタリングと呼んでもよいと思う。
最適化はリファクタリングか?
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?IsOptimizationRefactoring
> 最適化とリファクタリングはどちらも変化を伴うものだが(なかには最適化かつリファクタリングとなる変化もあるが)、
> 両者は別物だと私は考えている。なぜなら、両者の目的が異なるからである。リファクタリングは、
> コードを理解しやすくするためである。最適化は、プログラムを速くするためである。
宣言の順序変更はリファクタリングか?
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?IsDeclarationOrderingRefactoring
> 宣言(Javaで言うメソッドやフィールド)の順序を変更することは、リファクタリングと呼べるのか?
> リファクタリングの定義で、 「理解や修正が簡単になるように」というフレーズを使った。
> 宣言部分を変更すると、理解や修正が簡単になるのだろうか? 私は、そういう場合もあると思う。
> ソフトウェアの内部構造を変更しないという点が紛らわしいかもしれない。 リネームしても実行内容は変化しない。
無知は勉強すればいいだけ。恥ずかしいことなんて無いよ!
>>423, >>426あたりを読むといいよ。
リファクタリングの誤用
ttp://capsctrl.que.jp/kdmsnr/wiki/bliki/?RefactoringMalapropism
リファクタリングの境界線
ttp://capsctrl.que.jp/kdmsnr/wiki/bliki/?RefactoringBoundary
インタフェースの変更はリファクタリングか
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?IsChangingInterfacesRefactoring
> 答えは簡単――インタフェースの変更はリファクタリングだ。
未知のバグフィックスはリファクタリングか?
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?IsFixingAnUnknownBugRefactoring
> 私はリファクタリングと呼べると思う。 バグを含んだ振る舞いを知らなかった(あるいは気にしなかった)わけだから、
> これは「外部から見たときの振る舞い」ではないのだ。 たとえバグに気付いていたとしても、
> それが気にするようなバグでなければ、 リファクタリングと呼んでもよいと思う。
最適化はリファクタリングか?
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?IsOptimizationRefactoring
> 最適化とリファクタリングはどちらも変化を伴うものだが(なかには最適化かつリファクタリングとなる変化もあるが)、
> 両者は別物だと私は考えている。なぜなら、両者の目的が異なるからである。リファクタリングは、
> コードを理解しやすくするためである。最適化は、プログラムを速くするためである。
宣言の順序変更はリファクタリングか?
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?IsDeclarationOrderingRefactoring
> 宣言(Javaで言うメソッドやフィールド)の順序を変更することは、リファクタリングと呼べるのか?
> リファクタリングの定義で、 「理解や修正が簡単になるように」というフレーズを使った。
> 宣言部分を変更すると、理解や修正が簡単になるのだろうか? 私は、そういう場合もあると思う。
> ソフトウェアの内部構造を変更しないという点が紛らわしいかもしれない。 リネームしても実行内容は変化しない。
615デフォルトの名無しさん
2014/09/22(月) 22:58:10.11ID:BRLO2XpR >>614を見ればわかるけど、
リファクタリングを
汚いコードを綺麗なコードに直すこと
とは書いてないんだよね。
なんでこんなふうに間違って解釈してるのかな?
それって、汚いコードが(あなたの所に)多いってだけで、
リファクタリング以前の解決するべき問題だよね?
リファクタリングとはソフトウェアの変化とともに、
あるべき設計に安全に変化させる方法のこと。
リファクタリングを
汚いコードを綺麗なコードに直すこと
とは書いてないんだよね。
なんでこんなふうに間違って解釈してるのかな?
それって、汚いコードが(あなたの所に)多いってだけで、
リファクタリング以前の解決するべき問題だよね?
リファクタリングとはソフトウェアの変化とともに、
あるべき設計に安全に変化させる方法のこと。
616デフォルトの名無しさん
2014/09/22(月) 23:03:19.25ID:rMqlGcxC617デフォルトの名無しさん
2014/09/22(月) 23:04:10.78ID:rMqlGcxC618デフォルトの名無しさん
2014/09/22(月) 23:24:14.03ID:OvpzlkOF >>615
(お前にとっての)あるべき設計だな
(お前にとっての)あるべき設計だな
619デフォルトの名無しさん
2014/09/23(火) 07:26:06.78ID:0ZBouPvA このスレも
↓のスレも
ソースコード品質検定試験が世の中には必要だ
http://kanae.2ch.net/test/read.cgi/prog/1411354584/
同一人物が立てたスレだと自白しました。
そして、人物の正体も自白しました。
>5 名前:仕様書無しさん[sage] 投稿日:2014/09/22(月) 17:48:09.54
>無職Windowsしか使えないリファクタリング馬鹿がまたスレたてやがった
>
>6 名前:仕様書無しさん[sage] 投稿日:2014/09/22(月) 21:31:27.59
>>>5
>たてたね。それで?
>
>なにか言い返したいことがあるのなら
>いっていいだぜ?w
>
>7 自分:仕様書無しさん[sage] 投稿日:2014/09/23(火) 07:22:55.61
>>>5
>自然と、「無職」「Windowsしか使えない」「ム板でリファクタリングスレ」を立てたことを認めているww
さすが、無職でWindowsしか使えないだけはあるw
だれも同調してくれないww 説得力もカリスマ性も感じないからなw
↓のスレも
ソースコード品質検定試験が世の中には必要だ
http://kanae.2ch.net/test/read.cgi/prog/1411354584/
同一人物が立てたスレだと自白しました。
そして、人物の正体も自白しました。
>5 名前:仕様書無しさん[sage] 投稿日:2014/09/22(月) 17:48:09.54
>無職Windowsしか使えないリファクタリング馬鹿がまたスレたてやがった
>
>6 名前:仕様書無しさん[sage] 投稿日:2014/09/22(月) 21:31:27.59
>>>5
>たてたね。それで?
>
>なにか言い返したいことがあるのなら
>いっていいだぜ?w
>
>7 自分:仕様書無しさん[sage] 投稿日:2014/09/23(火) 07:22:55.61
>>>5
>自然と、「無職」「Windowsしか使えない」「ム板でリファクタリングスレ」を立てたことを認めているww
さすが、無職でWindowsしか使えないだけはあるw
だれも同調してくれないww 説得力もカリスマ性も感じないからなw
620デフォルトの名無しさん
2014/09/23(火) 12:26:15.85ID:aBTcR7ac621デフォルトの名無しさん
2014/09/23(火) 16:29:00.40ID:wrw0I4Vi まだ無職が語るの?
恥ずかしいからお前の社会的立場を恥ずかしくない位置にリファクタリングしてからプログラムのリファクタリングを語れよw
恥ずかしいからお前の社会的立場を恥ずかしくない位置にリファクタリングしてからプログラムのリファクタリングを語れよw
622デフォルトの名無しさん
2014/09/23(火) 16:45:57.11ID:wrw0I4Vi しかし、この超売り手市場なのに就職出来ないって、相当無能なんだな
623デフォルトの名無しさん
2014/09/24(水) 17:32:35.84ID:iVFJW3Cg いやぁ馬鹿スレを止めてくれてありがたい
完全に自爆だけどな(笑
完全に自爆だけどな(笑
624デフォルトの名無しさん
2014/09/25(木) 08:00:06.24ID:2gwTj0ip え?
マジで!?いろいろ見て回ってきたけど
ゲーム作りたくてプログラマになったけど、就職できず、Windowsしか扱えないので、派遣でコボルやるもクビになって無職
なの?!( ;´Д`)
そんな身分で、現役のプロのプログラマにプログラム、プログラミングにたついて講釈たれてたの?
ε-(´∀`; )
どんだけ、恥知らずというか、身の程知らずというか、小保方というか。
空いた口が塞がらないわ(^◇^;)
マジでお前自信をリファクタしろよ(・Д・)ノ
マジで!?いろいろ見て回ってきたけど
ゲーム作りたくてプログラマになったけど、就職できず、Windowsしか扱えないので、派遣でコボルやるもクビになって無職
なの?!( ;´Д`)
そんな身分で、現役のプロのプログラマにプログラム、プログラミングにたついて講釈たれてたの?
ε-(´∀`; )
どんだけ、恥知らずというか、身の程知らずというか、小保方というか。
空いた口が塞がらないわ(^◇^;)
マジでお前自信をリファクタしろよ(・Д・)ノ
625デフォルトの名無しさん
2014/09/25(木) 12:50:36.36ID:fB0UYRRr という妄想を書く人って、
実社会では自分が落ちこぼれなのかな。
実社会では自分が落ちこぼれなのかな。
626デフォルトの名無しさん
2014/09/25(木) 17:28:15.70ID:oxMb9EZk 不用意に自供しといて妄想とかw
627デフォルトの名無しさん
2014/10/05(日) 23:35:12.83ID:gYmu4Dn/ リファクタリング良さそうなんだけど、いろいろ疑問点があります
上で内部的インターフェイスの変更もリファクタリングに含まれるという話がありましたが
インターフェイスを作り変えたら対応するテストケースも作り変える必要がありますよね?
その場合、リファクタリング内でテストケースに手を付けて
インターフェイスとテストケースを同時に作ってしまっていいものでしょうか?
外部的インターフェイスに指定したテストケースのみパスすれば
問題ないと考えるのでしょうか?
上で内部的インターフェイスの変更もリファクタリングに含まれるという話がありましたが
インターフェイスを作り変えたら対応するテストケースも作り変える必要がありますよね?
その場合、リファクタリング内でテストケースに手を付けて
インターフェイスとテストケースを同時に作ってしまっていいものでしょうか?
外部的インターフェイスに指定したテストケースのみパスすれば
問題ないと考えるのでしょうか?
628デフォルトの名無しさん
2014/10/07(火) 01:36:41.20ID:0pCKu6Fp テストケースは全部通さないと駄目だよ
人間の書くテストが全部網羅してるとも限らないから
テストの穴を突いた部分が他所で影響してるかもしれない
原則としてよほどの事でもない限り一度リリースしたら手をつけないがベスト
リファクタリングなんて幻想だからやめなさい
人間の書くテストが全部網羅してるとも限らないから
テストの穴を突いた部分が他所で影響してるかもしれない
原則としてよほどの事でもない限り一度リリースしたら手をつけないがベスト
リファクタリングなんて幻想だからやめなさい
629デフォルトの名無しさん
2014/10/07(火) 09:53:16.20ID:pP8u07NL インタフェースを作り替えたらテストも必要
というかテストできない・しづらいインタフェースを作ったらあかん
というかテストできない・しづらいインタフェースを作ったらあかん
630627
2014/10/07(火) 20:19:23.95ID:J1sG3mPW >>628
> テストケースは全部通さないと駄目だよ
内部動作をリファクタリングする場合はそうだと思います。
> 人間の書くテストが全部網羅してるとも限らないから
> テストの穴を突いた部分が他所で影響してるかもしれない
100%のテストはないけど、十分捕捉率の高いテストと
十分機能変更の余地が低いリファクタリング手法の組み合わせで
実用になるというのがリファクタリングの主張ですよね。
内部動作のリファクタリグだけならそれでいいんですけど、
ただやっぱりインターフェイスの拡張・取捨選択も
やりたくて、そういう場合どうすればいいのかなと。
> 原則としてよほどの事でもない限り一度リリースしたら手をつけないがベスト
一度リリースしたっきりでソースのことを忘れ去っても
大丈夫なプロジェクトならそうかもしれませんが、
リファクタリングがターゲットにするプロジェクトは
リリースした後に(リファクタリングするしないに関わらず)
何度も手を付けてメンテナンスすることが要求されるような
継続性のあるプロジェクトではないでしょうか?
> リファクタリングなんて幻想だからやめなさい
上手くいくと言っている人も多いので、
安易に幻想だと断定もできないように思います。
幻想だとはっきり納得出来たらやめます。
> テストケースは全部通さないと駄目だよ
内部動作をリファクタリングする場合はそうだと思います。
> 人間の書くテストが全部網羅してるとも限らないから
> テストの穴を突いた部分が他所で影響してるかもしれない
100%のテストはないけど、十分捕捉率の高いテストと
十分機能変更の余地が低いリファクタリング手法の組み合わせで
実用になるというのがリファクタリングの主張ですよね。
内部動作のリファクタリグだけならそれでいいんですけど、
ただやっぱりインターフェイスの拡張・取捨選択も
やりたくて、そういう場合どうすればいいのかなと。
> 原則としてよほどの事でもない限り一度リリースしたら手をつけないがベスト
一度リリースしたっきりでソースのことを忘れ去っても
大丈夫なプロジェクトならそうかもしれませんが、
リファクタリングがターゲットにするプロジェクトは
リリースした後に(リファクタリングするしないに関わらず)
何度も手を付けてメンテナンスすることが要求されるような
継続性のあるプロジェクトではないでしょうか?
> リファクタリングなんて幻想だからやめなさい
上手くいくと言っている人も多いので、
安易に幻想だと断定もできないように思います。
幻想だとはっきり納得出来たらやめます。
631627
2014/10/07(火) 20:20:02.46ID:J1sG3mPW >>629
> インタフェースを作り替えたらテストも必要
> というかテストできない・しづらいインタフェースを作ったらあかん
テストしづらくはないのですが、
例えば1つ1つの public メソッドにテストを書いていたら
とても作業が時間内に終わらないというような、
時間がかかってしまう的な問題です。
でも public メソッドはクラスの持つインターフェイスだから
テストは必要ってことですか?
> インタフェースを作り替えたらテストも必要
> というかテストできない・しづらいインタフェースを作ったらあかん
テストしづらくはないのですが、
例えば1つ1つの public メソッドにテストを書いていたら
とても作業が時間内に終わらないというような、
時間がかかってしまう的な問題です。
でも public メソッドはクラスの持つインターフェイスだから
テストは必要ってことですか?
632デフォルトの名無しさん
2014/10/08(水) 15:43:43.04ID:AP5j0Y8f ただ、そのテストのメンテナンス、テストを減らしたり、改善したり、
そういう話はまだ多くないんですね。(例えば)テストが増えてくると、
全部のテスト通すのに 3 時間かかったりとか、 テストの量自体が問題になってくる。
またテストが実装に深く依存してて、リファクタリングしたらテストが
ばーっと真っ赤*49になっちゃうからやめようみたいな話とか。
テストをたくさん書けば良いってものじゃないんですよ。
設計の改善を前後で担保するためのテストだったはずなのに、
設計改善の邪魔をしてるんじゃないか? と。
テストが変更のコストを一定にするという夢を俺たちは見てやってきたのに、
テストが増えると変更コストが上がっていないかい? という問題に対してどう戦うか、
それが今の TDD の主戦場だと思っています。
http://www.ogis-ri.co.jp/otc/hiroba/others/OORing/interview43.html
そういう話はまだ多くないんですね。(例えば)テストが増えてくると、
全部のテスト通すのに 3 時間かかったりとか、 テストの量自体が問題になってくる。
またテストが実装に深く依存してて、リファクタリングしたらテストが
ばーっと真っ赤*49になっちゃうからやめようみたいな話とか。
テストをたくさん書けば良いってものじゃないんですよ。
設計の改善を前後で担保するためのテストだったはずなのに、
設計改善の邪魔をしてるんじゃないか? と。
テストが変更のコストを一定にするという夢を俺たちは見てやってきたのに、
テストが増えると変更コストが上がっていないかい? という問題に対してどう戦うか、
それが今の TDD の主戦場だと思っています。
http://www.ogis-ri.co.jp/otc/hiroba/others/OORing/interview43.html
633デフォルトの名無しさん
2014/10/08(水) 17:47:03.08ID:No3WRPQd >>632
下手なテストを書くとそうなるって話ですね。
下手なテストを書くとそうなるって話ですね。
634デフォルトの名無しさん
2014/10/08(水) 23:56:17.82ID:UFd7lKdk よくわからんが何かの言い訳に使えそうな
635デフォルトの名無しさん
2014/10/09(木) 10:21:37.01ID:IFg54I5e テストできない・しづらいインタフェースを作ったらあかん
636デフォルトの名無しさん
2014/10/09(木) 20:44:29.80ID:zf/NUEdS ボタン一個一発こそ至高
637デフォルトの名無しさん
2014/10/12(日) 07:13:20.02ID:jwvcB2bY >>627
有能な人材だけで構成されているなら可能
でも有能な人材はそもそもそんなコードを書かない
つまり、現実では実現不能ということ。
よく考えてよ。
ゲーム会社への就職も面接すらいけずに終わり、他の会社も全滅、登録派遣しかなく
ようやく派遣されたCOBOLでクビになり、
自分は有能だと思い込んでいるケドWindowsしか使えない
無職の人の立てたスレだよ?
有能な人材だけで構成されているなら可能
でも有能な人材はそもそもそんなコードを書かない
つまり、現実では実現不能ということ。
よく考えてよ。
ゲーム会社への就職も面接すらいけずに終わり、他の会社も全滅、登録派遣しかなく
ようやく派遣されたCOBOLでクビになり、
自分は有能だと思い込んでいるケドWindowsしか使えない
無職の人の立てたスレだよ?
638デフォルトの名無しさん
2014/10/12(日) 13:23:31.01ID:08qsWg0a >>637
返信ありがとうございます
> よく考えてよ。
誰が立てたかでなく、何を言っているかで判断しています
> 有能な人材だけで構成されているなら可能
627 では可能かどうかという聞き方はしていないのですが、
627 のどの部分を指して可能と言われているのでしょうか?
> でも有能な人材はそもそもそんなコードを書かない
これも、627 ではどんなコードかに関して言及していないと
思うのですが、そんなコードというのは何を指しているのでしょうか?
返信ありがとうございます
> よく考えてよ。
誰が立てたかでなく、何を言っているかで判断しています
> 有能な人材だけで構成されているなら可能
627 では可能かどうかという聞き方はしていないのですが、
627 のどの部分を指して可能と言われているのでしょうか?
> でも有能な人材はそもそもそんなコードを書かない
これも、627 ではどんなコードかに関して言及していないと
思うのですが、そんなコードというのは何を指しているのでしょうか?
639デフォルトの名無しさん
2014/10/12(日) 14:51:47.69ID:jjrAIsW+ 世の中に汚いコードが溢れてるってことだなw
リファクタリングは汚いコードを直すことじゃないよ。
コードは修正するたびに(≒機能追加)
どんどんコードが増えていく。
素人集団は、コードの既存部分を直さずに追加するだけで終わらせる。
有能な人材はそもそも汚いコードを書かないというが、
それは、有能な人材は、リファクタリングをしながら機能追加していくから
汚いコードに"成長しない" ということを意味する。
リファクタリングは汚いコードを直すことじゃないよ。
コードは修正するたびに(≒機能追加)
どんどんコードが増えていく。
素人集団は、コードの既存部分を直さずに追加するだけで終わらせる。
有能な人材はそもそも汚いコードを書かないというが、
それは、有能な人材は、リファクタリングをしながら機能追加していくから
汚いコードに"成長しない" ということを意味する。
640デフォルトの名無しさん
2014/10/12(日) 15:32:46.02ID:08qsWg0a 設計がまずかったり場当たり的に組んでしまったりして
いったん汚いコードになってしまったらもう手遅れですか?
汚いコードをインターフェイスを変えつつ
改善していきたいと思っているのですが
いったん汚いコードになってしまったらもう手遅れですか?
汚いコードをインターフェイスを変えつつ
改善していきたいと思っているのですが
641デフォルトの名無しさん
2014/10/12(日) 16:01:06.81ID:jjrAIsW+642デフォルトの名無しさん
2014/10/13(月) 12:31:48.66ID:dRUWRUgv コードが汚いとか騒ぐやつは総じて低スキル
643デフォルトの名無しさん
2014/10/13(月) 17:48:27.91ID:qVWnI3+v644デフォルトの名無しさん
2014/10/13(月) 21:27:10.38ID:mV3fqIh9 >>643
ではリファクタリグしたとしても汚いコードは汚いままなのですね
ではリファクタリグしたとしても汚いコードは汚いままなのですね
645デフォルトの名無しさん
2014/10/13(月) 22:25:07.42ID:0J6BIdC+646デフォルトの名無しさん
2014/10/13(月) 22:41:00.86ID:mV3fqIh9647デフォルトの名無しさん
2014/10/13(月) 22:43:13.35ID:zulUt3IX >>646
まず何が綺麗で何が汚いかを勉強することだね。
それを知らないことにはどうしようもない。
逆に知ってしまえば、具体的な質問ができるようになるよ
汚い××というコードを、綺麗な○○に変化させるには
どうしたらいいでしょうか?って
そういう質問なら答えがちゃんと言える。
君の今のレベルの質問は曖昧すぎて答えがない。
まず何が綺麗で何が汚いかを勉強することだね。
それを知らないことにはどうしようもない。
逆に知ってしまえば、具体的な質問ができるようになるよ
汚い××というコードを、綺麗な○○に変化させるには
どうしたらいいでしょうか?って
そういう質問なら答えがちゃんと言える。
君の今のレベルの質問は曖昧すぎて答えがない。
648デフォルトの名無しさん
2014/11/22(土) 11:07:28.63ID:jhiCG8Ku649デフォルトの名無しさん
2014/11/22(土) 16:04:31.14ID:6qlI/h48650デフォルトの名無しさん
2014/11/25(火) 12:34:50.30ID:aVHf4ing 世の中なんでも使い捨てで楽な方に向かってるのに
プログラミングの世界は古いものを大事に使いたがる不思議
怠惰なフログラマこそ率先してコードを使い捨てにすべきじゃね?
プログラミングの世界は古いものを大事に使いたがる不思議
怠惰なフログラマこそ率先してコードを使い捨てにすべきじゃね?
651デフォルトの名無しさん
2014/11/25(火) 23:55:42.35ID:n1duvf0w >>650
使い捨てる理由の大半はどんなにうまく保存しようとしても劣化し続けるから。
ソフトウェアはそういう物理的制約から書いたものはずっと同じまま残り続ける。
うまくバックアップや環境が残りさえすれば半永久的に使い続けることが出来る
わけだから、怠惰であればあるほどそういう資産を積み上げていくんだよ。
使い捨てる理由の大半はどんなにうまく保存しようとしても劣化し続けるから。
ソフトウェアはそういう物理的制約から書いたものはずっと同じまま残り続ける。
うまくバックアップや環境が残りさえすれば半永久的に使い続けることが出来る
わけだから、怠惰であればあるほどそういう資産を積み上げていくんだよ。
652デフォルトの名無しさん
2014/11/26(水) 12:34:55.88ID:1UftDcOY >>651
バカだな劣化するからリファクタリングとかいう下らない事が流行るんだぞ
バカだな劣化するからリファクタリングとかいう下らない事が流行るんだぞ
653デフォルトの名無しさん
2014/11/26(水) 19:48:43.25ID:0BkZoqqN 再利用って考え方がそもそもコストが高いんだよ
もんじゅとか例に挙げなくてもリサイクルって金掛かるだけで
利権で儲けるしかない仕組みだって判るよね
もんじゅとか例に挙げなくてもリサイクルって金掛かるだけで
利権で儲けるしかない仕組みだって判るよね
654デフォルトの名無しさん
2014/11/27(木) 00:55:26.29ID:dibuY+0s 再利用のコストに関しては単純に何回再利用するかで変わってくるから、
コストの高い再利用をしているお前が悪いんじゃないのとしか言えない。
リファクタリングも同じで、2度と手を入れないような部分や新規プロジェクトを
渡り歩くような人には不要なもの。 ただ昨今のアジャイル開発とか呼ばれている
ものだと、ある程度の期間は修正や追加が必要になってくる。 無計画に接ぎ木を
してわけの分からないキメラを作るより、ある程度剪定して理解できる範疇に
修める必要があるよねっていうのがリファクタリング。
コストの高い再利用をしているお前が悪いんじゃないのとしか言えない。
リファクタリングも同じで、2度と手を入れないような部分や新規プロジェクトを
渡り歩くような人には不要なもの。 ただ昨今のアジャイル開発とか呼ばれている
ものだと、ある程度の期間は修正や追加が必要になってくる。 無計画に接ぎ木を
してわけの分からないキメラを作るより、ある程度剪定して理解できる範疇に
修める必要があるよねっていうのがリファクタリング。
655デフォルトの名無しさん
2014/11/27(木) 12:34:12.35ID:jH/Xs+Kz656デフォルトの名無しさん
2014/11/27(木) 12:41:38.96ID:r+bsdp9/ >>655
> ソフトウェアの再利用もその都度コストがかかるんだが?
> 普通は回数に比例してコストが増加するぞ
再利用するために何らかの変更が必要なら、そのときだけコストがかかるが、
以降はコストかからんだろ。
> ソフトウェアの再利用もその都度コストがかかるんだが?
> 普通は回数に比例してコストが増加するぞ
再利用するために何らかの変更が必要なら、そのときだけコストがかかるが、
以降はコストかからんだろ。
657デフォルトの名無しさん
2014/11/27(木) 23:29:56.27ID:kUiumU8R 再利用前提で作ろうとしてる時点で余計なコトスがかかっとるわい
658デフォルトの名無しさん
2014/11/28(金) 02:38:41.57ID:LrjKc3Ws 古くなった原発の再利用
659デフォルトの名無しさん
2014/11/28(金) 04:18:59.87ID:MN0ISYZx 再利用性や拡張性というのは、将来のことだから仕様外。
仕様外だからプログラミングの対象外。
おわり。
仕様外だからプログラミングの対象外。
おわり。
660デフォルトの名無しさん
2014/11/28(金) 07:48:17.97ID:IEXuWLi+ 再利用と考えるからいけない。
モジュール化。
適切なモジュール化は、再利用出来るだけじゃなく、
複雑度も減ってバグも少なくなる。
適切なモジュール化が出来ない奴が
再利用にコストがかかるとか
コードが再利用できないとか言う。
モジュール化。
適切なモジュール化は、再利用出来るだけじゃなく、
複雑度も減ってバグも少なくなる。
適切なモジュール化が出来ない奴が
再利用にコストがかかるとか
コードが再利用できないとか言う。
661デフォルトの名無しさん
2014/11/28(金) 12:44:59.78ID:X4M4SbHd >>660
それは再利用じゃないよ
機能を小さく保つ事で、本来の目的である一次利用出来る範囲が広がるだけだ
それを便宜的に「再利用しやすい」などと表現してる訳だ
ソフトウェア本来の目的とは異なる本当の意味での再利用にはコストがかかるんだよ
それは再利用じゃないよ
機能を小さく保つ事で、本来の目的である一次利用出来る範囲が広がるだけだ
それを便宜的に「再利用しやすい」などと表現してる訳だ
ソフトウェア本来の目的とは異なる本当の意味での再利用にはコストがかかるんだよ
662デフォルトの名無しさん
2014/11/28(金) 17:41:36.95ID:03S1h8mH663デフォルトの名無しさん
2014/11/29(土) 01:59:23.82ID:TbFyYdBX664デフォルトの名無しさん
2014/11/29(土) 13:13:20.77ID:U5ivpV2C 再利用じゃなくて流用と言えばいいのに
665デフォルトの名無しさん
2014/11/29(土) 14:17:24.97ID:v2v5Wnkr 全く修正しないで使うのが再利用。
コピーして修正して使うのが流用
流用をすると、AとA'というコードが生まれなんで二つに分かれてるの?
違いはなんんあの?と結局両方を読まないといけなくなる。
流用するたびに読むべきコードがどんどん増えていく。
はてに一つを修正するともう片方の修正を忘れるとか。
なので全く修正しないで使う「再利用」でないと意味が無い。
全く修正しないで使えるのだからコピーする必要はなくなる
コピーして修正して使うのが流用
流用をすると、AとA'というコードが生まれなんで二つに分かれてるの?
違いはなんんあの?と結局両方を読まないといけなくなる。
流用するたびに読むべきコードがどんどん増えていく。
はてに一つを修正するともう片方の修正を忘れるとか。
なので全く修正しないで使う「再利用」でないと意味が無い。
全く修正しないで使えるのだからコピーする必要はなくなる
666デフォルトの名無しさん
2014/11/29(土) 14:46:23.56ID:A4nuaoXO 流用元から流用先がどこにどれだけあるかは基本的に分からない。
流用元に何かバグがあって修正する必要があった場合に論理的に考えると
流用先も直しておいた方がいいor直す必要がある。 ただ流用先を全て特定
することは難しく、特に流用先で動くように変数名とか変えてあると確実に
漏れる。バグじゃなくても何か修正追加したいと思った時の事を考えると
コピペをばらまくより関数で再利用するほうがいいよねってなる。
ただ人間は欲深いもので1つの関数にあれもこれも詰め込んで破綻させる
奴が出てきたりする。こういうのを見て、関数なんて作らなくてコピペでいい
だろって奴が出てきて無限ループする。
流用元に何かバグがあって修正する必要があった場合に論理的に考えると
流用先も直しておいた方がいいor直す必要がある。 ただ流用先を全て特定
することは難しく、特に流用先で動くように変数名とか変えてあると確実に
漏れる。バグじゃなくても何か修正追加したいと思った時の事を考えると
コピペをばらまくより関数で再利用するほうがいいよねってなる。
ただ人間は欲深いもので1つの関数にあれもこれも詰め込んで破綻させる
奴が出てきたりする。こういうのを見て、関数なんて作らなくてコピペでいい
だろって奴が出てきて無限ループする。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 偏差値35大臣「すぐに経済的威圧するところへの依存はリスク」 [834922174]
- 【朗報】高市、中国からの日本行き空路49万件キャンセルを達成🤩オーバーツーリズム対策の手腕が光る [359965264]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 【スパイト行動】俺のコ,ードを入れれば1500円貰えるのに、俺に1500円をやりたくないからやらない ⇐これが日本人ってやつか… [201193242]
- 小野田経済安保相「すぐに経済的威圧するところへの依存はリスク」😲 [861717324]
