brarcher / budget-watch

Application for personal budget management
GNU General Public License v3.0
83 stars 44 forks source link

Refactor Member Ignoring Method smell in DatabaseCleanupTask class #206

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.

brarcher commented 4 years ago

Thanks for your interest in the project.

I don't have an account to read the paper you referenced. It sounds interesting, though.

Is aDoctor similar in what it can find compared to ErrorProne? Although I did not use that tool on this project, it has a check (MethodCanBeStatic) which would have flagged this as well. Perhaps ErrorProne either has more patterns that might be useful for aDoctor, or aDoctor has come up with other patterns that tools such as ErrorProne could benefit from. Just a thought.

Since this change was posted the intra for building and testing has been migrated to GitHub. I'm rebasing this branch to pick up those changes. The change looks straight forward. When it passes the tests it can be merged in.

brarcher commented 4 years ago

Thanks for the contribution!