In a couple of days I'll start working on a new project. Actually it is an project that I worked one or two years ago. I think I did decent job last time. But there is always lots of room for improvement. So today I want to list a couple of things I want to do bettern than the last time.
More Tests - When working on that project I was the only person with real experience in automated testing. I am proud that we had a test suite and that this test suite still exists and put to good use and actually grew during the last months. Yet I consider the coverage of the tests not sufficient by far. So for every code I write, I will add an extensive set of test. I'll also add tests for existing code, when refactoring.
Earlier Tests - One reason we didn't produce as many tests as I would wish today is that we didn't do TDD. It probably was a correct decission the last time, since it would have been just to much. But this time I will practice TDD as good as I can.
Cleaner Code - One of the first tests I wrote back then was a test to ensure that we don't have circular dependencies. We succeeded in this, but still parts of the system a pretty tangled. We gonna improve that. Appart from the knowledge I took from Clean Code I'll plan to use the toxicity metric as an important tool for that.
Dependency Injection - We considered using Spring and decided against it, because we already had about 20 libraries we hardly knew in the project. Again at that time it was a reasonable decision. But in the meantime I learned what we could have gained by using Spring. I'll propose using it, but even when the team declines again, I'll be able to use the concept in order to improve the code base.
So these are the things I want to improve on in the next project. What are the things you want to improve on in your next project?
Wan't to meet me in person to tell me how stupid I am? You can find me at the following events:
- Softwaredevelopment in the 21st century.
- Domain Driven Design mit Relationalen Datenbanken und Spring Data JDBC.
- Kerbal Space Program, Glücksspiel und Psychologie und was das mit dem (Berufs)leben zu tun hat.
- Javaland Freeletics
- Domain Driven Design mit relationalen Datenbanken und Spring Data JDBC
- The New Kid on the Block: Spring Data JDBC