Code Smell & Logger Messages - UQdeco2800/2021-ext-studio-2 GitHub Wiki

Fix some code smells

Process

One of Team9's task it to solve some code smells according to the sonar cloud. There are five levels of severity:

  1. Blocker: We resolved 7 of this.
  2. Critical: We resolved approximately 30 of this.
  3. Major: We resolved approximately 50 of this.
  4. Minor: We resolved approximately 100 of this.
  5. Info: We did not change any of these. During the process of fixing these code smells. We found the the major causes of code smells are:
  6. Duplicate code: hard to solve, may cause merge conflicts. (We spent 1/3 of the time solving merge conflicts)
  7. Bad variable names: Very hard to fix. Need to change the whole contexts and unnecessary.
  8. Varibales may be "final": Easy to change, based on the suggestions of IDE.
  9. Lots of commented lines of code: This is easy to solve. Just delete them and no need to worry other teams will uncomment in the future cause this is the last sprint.
  10. Varibales should be static: Hard to solve, need to change other parts of the class and also need to change classes in other packages.
  11. Unused Methods & Variabales: Easy to solve, but need some considerations.
  12. Unused import: This is the easiest code smells to fix.
  13. Remove some local variables because they can be local variables: Easy to fix. ...there are many more

Result

This image is the proof of our work. Since we have limited time, we couldn't fix all of them. There are about 850 code smells before and now it has only 680 (10/19/2021 1pm.)

Logger Messages

With the help from Therese and Week 8 Tutorial. We figured out how to change the level of the logger messages sent to the console in the properties files. However, we did not commit any changes of that file because each memeber in this studio can change them locally. Instead, we deleted some useless logger messages (each logger has its purpose but some of them are unnecessary in sprint4). For example, the logger.info(Users' operations) including click quit button or click play button and go to main game screen.... These logger messages are unnecessary at this stage. They could be used in some user tests to track how do users play this game. What we kept are:

  1. Some important class must at least have one logger messages --- according to Week 8 tutorial slides last page.
  2. The loadAssets: % ..... Date is kept because it works like a loading page which tells user the loading status.
  3. Most of the debug level logger messages were kept.