New side project on the road!<p>I'm the kind of guy who always looking to the future of my project and tries to well-think (maybe over-think) the project architecture.<p>In my company, I'm obsessed with microservices and I'd to keep the same granularity on my side project architecture (code reuse for each service for a completely decoupled service...).<p>What's your POV about thinking a new structure on a side project?
The thing about side projects is that you're free to go wherever you want, no one is watching over your shoulder any more. It's a damned shame when they get lost in tar pits trying to live up to someone else's standards. Side projects should be about passion, about solving interesting problems; and cutting corners is the fastest way to get there. And in the end, knowing which corners to cut and when is what separates the pros from the not yets, that's where 10x comes from.
Currently, I'm trying to organize all of my game development code (such as it is) as sub-projects in Visual Studio, with a single location for external libraries (SDL2, Lua, etc.) and a single repo pushed to Bitbucket. Visual Studio doesn't seem designed for that, so it's awkward, but it works.<p>And for web development, Just a separate folder for each project and XAMPP. I'm a dinosaur and never even started working with a VM until recently, so I've got one Hack project running in Vagrant, but I still prefer XAMPP.<p>Other than that, I don't impose a lot of structure on my projects because my side projects are more about education and exploration than trying to come up with a MVP or resume filler (although I'd probably be in a better position if I thought more about the latter than the former.) Just enough structure to make it easy to start and archive, then as much anarchy as I want.
Make architecture as below:
1. Use common code where even possible like for crud operation a single class that handle operation based on entity provided(Dapper.Exention library for .net ORM).
2. Try to create code generator using templates.
3. Use common and well known libraries to manage common operation like logging, mail sending etc put those in sub project - in case need to change library just a sub project require changes.