Planning Tuskfish 2

Just a short note to say Tuskfish 2 is in the works. It's going to be a partial re-write of the back end, but there will be minimal changes on the front end or from a user experience point of view. The database schema will also remain unchanged to allow seamless upgrade. I spent months migrating my data from a legacy system to Tuskfish, I'm not going through all of that again!

The curse of programming is that, no matter how cool your code seems at the time, six months later you'll be looking back at it and wishing you'd done things a bit differently.

So what will be different this time around? Tuskfish 2 will be designed as a strict MVC architecture to improved separation of concerns, rather than the loose MVC that it (and nearly every other CMS) has. Why? After some investigation I found that a strict MVC greatly improves both flexibility and component re-use. That means I can make Tuskfish even smaller and more efficient.

Secondly, I will be completely abandoning the use of inheritance and designing components by composition, only. This requires a bit of a change in mindset (it's something I picked up from Golang), but done right it allows some intermediate objects to be dispensed with and allows for a simpler structure in the end.

Lastly, I will be building out a formal test suite for the revised components with an aim for 100% test coverage.

I have no idea about the timing at this stage, but I would imagine it will be towards the end of 2019, maybe mid year if things go well.