テストも書かないでリファクタリングとかうけるw
まずな、リファクタリングでは機能追加・修正は行わない。
動作はまったく同じでコードをきれいに書き換えること。
書き換えるといっても、これなら同じ動きだろ?って推測でやってはいけない。
まずテストを書く。ユニットテストをできるように、
単一のクラスでインスタンスを作る。
汚いコードなのだからたいていは依存関係のせいで単一ではクラスが生成できない
それを生成するために、クラスの動作を書き換える。
といっても元のコードは修正しない。継承やプリプロセッサを使って
依存関係を断ち切るために既存のコードを上書きする。
どうしてもそれが不可能な場合には、決められた手順で最小のコード修正を行う
そうやって既存のクラスのユニットテストを行う。
それでやっとリファクタリングが行える。
既存のクラスのユニットテストを通るように新たなコードに修正、
もしくは新規作成して置き換える。
この手順と考え方を守ってないのはリファクタリングではない。
で?
リファクタリングをただのコード修正と思ってる人へ
■ このスレッドは過去ログ倉庫に格納されています
2010/05/29(土) 17:25:56
2011/06/04(土) 06:49:03.11
>うっとおしいからやめろよ
日本語でOK。
日本語でOK。
2011/06/04(土) 20:32:27.75
>>49はリファクタリングの前にオブジェクト指向を勉強したほうがよい
2011/06/04(土) 21:55:36.94
よくわかってないプログラマとか
プログラム中で使用する文字列をすべてヘッダで#define切っちゃうのとかよくいる
使うその場に直接書いたほうがいいことに気がつくのはいつのことだろうか?
プログラム中で使用する文字列をすべてヘッダで#define切っちゃうのとかよくいる
使うその場に直接書いたほうがいいことに気がつくのはいつのことだろうか?
2011/06/04(土) 22:44:23.36
文字列は切り分けたほうがいいよ
聞きかじりで行儀の良いとされる作りにしようとして
多重定義したり実際の文字列探すまでが長かったりする
くそみたいな所が多すぎるからそう感じるんだろ
聞きかじりで行儀の良いとされる作りにしようとして
多重定義したり実際の文字列探すまでが長かったりする
くそみたいな所が多すぎるからそう感じるんだろ
2011/06/04(土) 22:51:42.66
>>75
根拠は?
根拠は?
2011/06/04(土) 23:04:54.02
>>77
意味がねぇからさ
ソースをみた瞬間に文字列が直接書いてあればその時点で意味がわかる
それを#defineきったら今度は命名した奴のセンスに丸投げすることになる
それが必ずしもわかりいい名前をつけてくれるとは限らない
また、複数個所でこの文字列を使うことがあったとして・・・いや・・・ないだろ?w
あるならなにかおかしいんだw
文字列の場合、数値とはちょっと違う事情があってこういう定数を#defineを切るのはあまり意味ない
意味がねぇからさ
ソースをみた瞬間に文字列が直接書いてあればその時点で意味がわかる
それを#defineきったら今度は命名した奴のセンスに丸投げすることになる
それが必ずしもわかりいい名前をつけてくれるとは限らない
また、複数個所でこの文字列を使うことがあったとして・・・いや・・・ないだろ?w
あるならなにかおかしいんだw
文字列の場合、数値とはちょっと違う事情があってこういう定数を#defineを切るのはあまり意味ない
2011/06/04(土) 23:07:46.71
また、数値の場合も俺は#defineを切る意味がないと思ってる
こんなこというとすぐに頭に血を上らせてソースでいきなり出てきた数値の意味が〜云々で怒るやつがいるが
俺はそうじゃなくてソースを読んで出てきた数値がわかるようなソースを書くべきだと思ってる
ちゃんとインスタンスの生成箇所をしっかり制御すればそもそもプログラム全域に一つの値が
複数使いまわされることなどほとんどない(はず)
数値計算(3.1415・・・)ですら特定のファイルにまとまる
しかし、プロジェクトにグローバルインスタンスホルダー(大域変数セット)などあると俺の言ってることは全く理解不能だと思う
2011/06/05(日) 00:50:06.75
こりゃまた、もの凄い珍説が飛び出したもんだ。
責務やカプセル化の話と、可読性とはイコールではないだろーに。
自分の説の論理的な飛躍に気づけないのか?
責務やカプセル化の話と、可読性とはイコールではないだろーに。
自分の説の論理的な飛躍に気づけないのか?
2011/06/05(日) 07:21:48.46
「必ずしも分かり易い名前を付けてくれるとは限らない」
「ちゃんとインスタンスの制御をしっかりすれば複数箇所に出てくることはほとんどない」
まともな名前すら付けられん人間が「しっかりとしたインスタンスの制御」なんてやると思うかい?
「ちゃんとインスタンスの制御をしっかりすれば複数箇所に出てくることはほとんどない」
まともな名前すら付けられん人間が「しっかりとしたインスタンスの制御」なんてやると思うかい?
2011/06/05(日) 07:49:17.22
>>81
インスタンスの管理なんてやる必要があるのはグローバル変数使ってるからだろ?
インスタンスの管理なんてやる必要があるのはグローバル変数使ってるからだろ?
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 > 仕様をリファクター
はぁ?
んなもんリファクタリングじゃあなーいと言ってやれ。ドキュメントをリファクタリングしちゃるとか言ってる奴、それもリファクタリングじゃねーぞコラ。そういうのは、リストラクチャリング(再構築)というのだッ。
はぁ?
んなもんリファクタリングじゃあなーいと言ってやれ。ドキュメントをリファクタリングしちゃるとか言ってる奴、それもリファクタリングじゃねーぞコラ。そういうのは、リストラクチャリング(再構築)というのだッ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 [お断り★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★5 [ぐれ★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★4 [BFU★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 ★2 [おっさん友の会★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 [ぐれ★]
- 【外交】前台湾総統・馬英九氏、高市首相発言に「台湾を危険にさらす」台湾海峡の問題は「両岸の中国人が自ら話し合うべき」 [1ゲットロボ★]
- 【ござる専🏡】風間🥷配信実況スレ🏯【風間いろは】
- 【愛国者速報】フィフィ、中国の“日本産水産物輸入停止”措置に私見「中国依存しないとやっていけない企業は考えを改めて」 [856698234]
- 【速報】中国政府、ゲームを禁輸。原神やブルアカ、荒野行動が日本で影響 [347751896]
- 【悲報】韓国、領土問題担当大臣の発言にソウルの日本大使を召喚して抗議… 高市首相の親韓外交実らず、中国包囲網崩壊へ [452836546]
- 中国「私達が怒ってるのは日本の政治家に対してで、日本の観光客や日本企業はこれまで通り歓迎する。これこそが大国としての余裕」 [377482965]
- 細川バレンタイン、高岡蒼佑(元祖ネトウヨの親玉)にブチギレ。 [242521385]
