NicholasFreitas / RPS_Proto

Rock, Paper, Scissors game prototype
0 stars 0 forks source link

Code Clean Up #2

Closed NicholasFreitas closed 3 years ago

NicholasFreitas commented 3 years ago

Some really basic east refactoring. I'm a big fan of tackling low hanging fruit.

So here, we're going to add some styling and add a style guide. This will mostly be inspired by the Microsoft convention guide. https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions

I'll likely use the Github wiki to explain the conventions.

It feels like MASSIVE overkill for this small project. BUT... I want to make the most of the opportunity to learn more about github and managing a project and this is part of that process. I'll likely even do PRs because I want to get more comfortable with the work flow.

NicholasFreitas commented 3 years ago

I made the style guide. Nothing special but it's definitely a good place to start. https://github.com/NicholasFreitas/RPS_Proto/wiki

NicholasFreitas commented 3 years ago

So I got really busy on this one. Interesting stuff. So I had to restructure the Folder names. I know they're mostly for the devs, but auto namespacing is generated from them and I like consistency.

So I renamed them because the compiler wasn't liking namespaces sharing the same name as objects. I had a couple annoying conflict. So I renamed the folders to something that wouldn't conflict with the objects. Once I fixed that and put everything in it's namespace(s) all the usings lined up beautifully and I didn't need to provide the FQN.

I also applied the standards. I may have missed some but in some places the code looks and reads better.

I also extracted some class that we paired with their functionalities (I pair an enum with a factor that used it, for example). I decoupled these objects. It created a tiny Class Explosion...

Sometimes there's a risk extracting the classes like that... because sometimes it's useful to have them together. (Like a service class paired with its config) but I find the gains of putting them together don't outweigh the explicitness of the class getting its own file.