(or: how do you practice at being an architect?)
Figuring out a different way of running a software project is kinda hard. Usually, you come into a project when everything is already set up and running, and you either go along with it, try to tweak it a little bit, or get the hell out. Starting from scratch isn't really one of the options.
Whilst I have opinions on some of the options, I don't really have a lot of experience at the way the different systems interact. I think that the best way of trying to sort this out is probably experience, but a problem with that is that building a large system with many interacting components is a hell of a lot of work.
So what I'm trying out is a small test project, with as many interacting components as I can, as well as a series of hoops to jump through that would usually only be present on a much larger project.
Project Sandcastle:
Going back to my absolute standard project, I'm going to build a dice roller. This time it's going to be a simple web based application, but I'm going to try and compartmentalise it as well.In terms of infrastructure, I'm aiming for:
- an SCM system (git repository hosted on GitHub)
- a CI system (TeamCity, running locally)
- an artifact storage system (haven't decided yet, probably Nexus)
In terms of projects:
- a dice rolling engine (packaged as a jar file)
- a web application to interface with the engine (packaged as a war file, possibly with a built in server)
No comments:
Post a Comment