This repository is part of a set of 3 training repositories (simple, medium and advanced) that are used in the QSD training program: https://github.com/BetterCodeHubTraining/training-assignments-simple, https://github.com/BetterCodeHubTraining/training-assignments-medium, https://github.com/BetterCodeHubTraining/training-assignments-advanced. If you want to use this code in a training yourself please contact us at bettercodehub@sig.eu.
There is a pom.xml
file in the root of this repository. This allows compiling the Java source files and running the unit tests using Maven by executing mvn test
.
- Sign in to GitHub (create an account if neccesary)
- Fork this repository to your own account.
- Clone the project on your development machine (git clone https://github.com/YourAccountNameHere/training-assignments-simple.git)
- Open the project in your favorite Java IDE.
- Go to BetterCodeHub.com and log in [FREE] with your GitHub account.
- Run and analyze the training-assignments-simple repository with BetterCodeHub.
- Refactor the code to comply with the first four guidelines.
- Commit your local changes (git add *, git commit -m "your comment here").
- Push the changes to your Github repository (git push).
- Run the analysis in BetterCodeHub.com to check the results.
- Send a pull request with your version of the refactoring.
- Add the BCH badge to the README.md to show your compliance
This assigment code is based (we pruned the original) on the example code that accompanies Building Maintainable Software: Ten Guidelines for Future-Proof Code by Joost Visser.
There are currently two editions of Building Maintainable Software:
- The Java edition (ISBN print: 978-1-4919-5352-5, ISBN eBook: 978-1-4919-5348-8), available at the O'Reilly webshop and at Amazon.
- The C# edition (ISBN print: 978-1-4919-5452-2, ISBN eBook: 978-1-4919-5448-5), available at the O'Reilly webshop and at Amazon.
Training videos are also available via O'Reilly Media.
Both editions are the same except for the language of the code snippets and a bit of language-specific terminology (e.g., 'Eclipse' in the Java edition is 'Visual Studio' in the C# edition).