R1- Introduce Local Extension R2- Duplicate Observed Data R3- Replace Type Code with Subclasses R4- Replace Type Code with State/Strategy R5- Replace Conditional with Polymorphism R6- Introduce Null Object R7- Extract Subclass R8- Extract Interface R9- Form Template Method R10- Push Down Method
保守性≒解析性だと思ってた (スコア:0)
タイトルどおりなんだけど、3段落目の
リファクタリングされたコードの方が解析性が劣り
と
リファクタリングすることの利点として保守性指数が僅かに高かった
が、矛盾してない?
俺の思っている保守性とは、また違うものなのかしらん?
Re:保守性≒解析性だと思ってた (スコア:0)
元の論文を読めばわかることだけど、適用したリファクタリングは以下のようなもの。特にR3~R6を無分別に適用したせいで、コーディングのミスや漏れを防げるようになった代わりに、処理の具体的内容が読みづらくなったということだと思う。
Re:保守性≒解析性だと思ってた (スコア:1)
その操作を個々の状況、条件から適切なものを選んで適用するのがリファクタリングなんだから、無分別に適用したらリファクタリングじゃない。
Re: (スコア:0)
あなたの分別はある人からしたら無分別かも知れないし、ある人の分別はあなたにとっては無分別かも知れない。したがって、彼らがリファクタリングと言っているものは、あなたにとってリファクタリングではないのだろう。
ただ、この論文の中では"Refactoring Techniques"を適用することがリファクタリングなんだ。そして、リファクタリングをしたのは学生さん。ある意味、予想通りの結果。
Re: (スコア:0)
びっくりするくらい大規模なリファクタリングしてますね。
クラス階層変えるような変更は、慎重にやらないと読みづらくなることは十分あり得ると思います。
て考えると、特に意外な結果ではなくて、「無分別なリファクタリングは返ってコードが読みづらくなる」という当たり前の結論のような。