gateship-one / odyssey

Odyssey music player
GNU General Public License v3.0
232 stars 39 forks source link

Refactor Member Ignoring Method smell in MediaScannerService class #193

Closed emaiannone closed 4 years ago

emaiannone commented 4 years ago

Hi, I'm Emanuele Iannone, a master student at University of Salerno. Since my bachelor's thesis I have been working on a code smell refactoring plugin called aDoctor, which is able to identify and fix energy-related problems in Android apps. I launched it on your project, finding different instances of code smells. I chose one of them and let the plugin automatically fix it. In this case I chose Member Ignoring Method, that is present when a non static method does not use at all instance variables and other non static methods. These kind of smell may have a non trivial impact on energy consumption, as shown in this paper: https://www.sciencedirect.com/science/article/pii/S0950584918301678. Besides, this kind of refactoring does not impact on the functionalities of your app, so it is totally safe. Let me know if you are interested in this refactoring proposal.

djselbeck commented 4 years ago

Although I accept that this method is not very nice I don't have any interest in taking part in any academic research anymore.

The paper you provided is behind a paywall and therefore without use.

The paper even states that the energy consumption (mean value of MIN vs. R-MIN - Table 3) is not that significant. In this specific case this is a method, that is triggering a recursive directory crawling following function. Imagine what the energy savings of this static conversion would do. I hope you guessed it - nothing!

Besides all this, your PR is technically wrong. If you change the function to static the project is not compilable any more. The task that is created in this function needs modification as well. It seems that your tool needs some more work ;)