3 ms·
Business logic / rules are vertically integrated. You need your frontend, middleware, and databases to all align on how to store, transform and present informat
by adra 3y ago
Business logic / rules are vertically integrated. You need your frontend, middleware, and databases to all align on how to store, transform and present information to meet business goals. Vertically developed software are the least efficient because you miss out on the core similarities of each vertical, so we use horizontally oriented frameworks that can reuse a lot of the boiler plate. Do you.nerd to add a cache layer later? With horizontally developed code, you can do that application wide with some annotations, properties, and library imports. If you wanted to do the same on a purely vertically developed code, you'd be changing N features with a bunch of duplication in each insertion point.
One one winner with splitting tech on horizontal boundaries is that changing a feature is a largely high cohesion change. All the code bung updated in that commit are related to one another, and despite the fact that there are "many" places that the code needs updates, at least they all relate to one another.
There was some effort in the java community to meet the problem half way with something called point cuts. This allowed some level of contracts which you could "insert behaviour into all instances of X" which had some success, but I haven't see it in the wild for a while, so I'm not entirely sure it survived.