There's a pattern that crops up a lot in computing - indirection. It's sometimes a little bit disguised, but it's used to solve many kinds of problem. To introduce it I'll first use an example from outside computing, that I like for many reasons. Five freedoms for animal welfare It might be a bit odd … Continue reading Solving computer problems with indirection
Category: Modelling
Comparing and aligning data models
Sometimes you are trying to bring two worlds together - two bits of code, each with its own data model. The two worlds could be a computer system you work on and the system from a partner you're trying to integrate with. The data models can be the most prominent bits of this integration, but … Continue reading Comparing and aligning data models
The cost of flexibility
Flexibility in software design is often seen as a good thing, but it can come at a cost. This isn’t surprising, because software engineering is a kind of engineering, and engineering involves making trade-offs among several good things. For instance, there is no “best” car, just the best car for a given situation, with a … Continue reading The cost of flexibility
Data modelling for programmers
This article is for anyone, but is mostly aimed at people who have done some programming and now want to tackle data modelling - things like designing tables in a database. When you start data modelling, you eventually hit the unavoidable problem that real life is big and messy. I have found two tactics to … Continue reading Data modelling for programmers