Fix multi-project, Scala code generation, thoughts

I started SackFix from the QuickFix xml definition files, and parse them to produce the huge number of classes to represent strongly typed message and field classes. I did google Scala code generation and, yes, Scala has libraries for everything.

This is a problem with Scala – the libraries for little slices of functionality are often complex, hard to understand, and if you are in a hurry you can find deadlines (even self imposed) slipping as you try to get your mind into someone else’s head. This is unlike Java – after 20 years the libraries have competed, and the bad ones have dropped away.

The structure of multi project projects is also interesting. When to have separate projects with independent lifecycle and maven repositories, when to have large multi-module projects. You can slice it up later but it becomes another time sump. I’ll admit SBT, Maven, Ant, Make, etc. all have the same issue. I found I did slice into totally separate projects with their own versioning and within these I also have multiple projects to separate concern. I wasn’t expecting that, but it was pragmatic.

As ever, its about coupling, or context. If things release together then put them into their own multi-project project. If things can be released independently them probably put them into separate projects.