Hey guys,
Recently I got my 1 year evaluation at the company I am working at and got some feedback from colleagues about my performance and such as a programmer. The main thing that could be concluded from this (which to me, wasn't that big of a surprise) was that the architecture/design of my code could be improved.
From the feedback provided it was more of a general thing. Odd choices on proper ownership and when/where to execute closely relevant code (for example initiating a death sequence from a separate health class instead of a dedicated class). Anticipating the general architecture/design of project so I don't need to refactor (certain parts of) systems already in place.
I've already had some short talks with others about this subject and it boils down to a couple of things: proper communication in general about the project on where everyone is heading. Discussing made choices with others to see if they have valuable (better) suggestions on design choices and time. With time I mean that most others also said that learning architecture will improve over time when you get more insight of different projects and face certain problems.
Now I really want to get better at this and not just for the companies sake, but also because I simply want to be the best I can be. Some of the lacking parts I mentioned above are being worked on, but I would like to broaden my horizon a bit more and for that I come to ask help of others! I did a little bit of research and it mostly boils down to: Write code and learn from it! This is something I am doing in my everyday job. I would love to know how others improved their design/architecture of their projects. Any literature/websites or general suggestions/pointers are very welcome!
TL;DR
I'm trying to improve my code design/architecture where several persons are involved in the project and would love any suggestions.
Doing this so far:
- Discuss with colleagues
- Write code
- Review code (Both looking at others as getting my own reviewed)
Thanks in advance! :)
P.S.
We're working with Unity3D and C# if that helps.