"We ran out of columns" - The best, worst codebase - [Jimmy Miller] (jimmyhmiller.github.io)
from mac@programming.dev to programming@programming.dev on 04 Aug 2024 03:09
https://programming.dev/post/17697991

#programming

threaded - newest

leisesprecher@feddit.org on 04 Aug 2024 05:18 next collapse

I worked on a system whose database setup looked kind of like this. Interesting to see, that they weren’t the only ones using that approach.

We had an online database for online transactions, all tables used a sequence generator table (basically a key/value with the key being table name and the value being the last id) l, every few minutes all the new transactions where dumped into a second instance for research and monitoring. Every night a job started, that first dropped all the transactions older than a few weeks from the online db and then exploded every single transaction into a bunch of id, key, value tuples. These were then push/pulled (very weird construct) into the datawarehouse. Since each new value was its own table, we had something like 20 tables, mostly being nulls. You might had columns like serviceA_call1_customer3_adress_streetname. Absolutely bonkers and only one man understood that thing.

sukhmel@programming.dev on 04 Aug 2024 08:16 next collapse

only one man understood that thing

that one man

<img alt="coloured picture of Albert Einstein with an unlit smoking pipe" src="https://i.pinimg.com/originals/3f/83/f9/3f83f937307a4db84ac8fabc07cb529b.jpg">

lemmyvore@feddit.nl on 05 Aug 2024 20:32 collapse

But denormalized databases are not a new thing. There are engines that build on it on purpose in order to be more efficient, like Cassandra. Most data warehousing engines use this “trick”. And of course you can do it with a regular RDBMS too.

Ephera@lemmy.ml on 04 Aug 2024 06:11 next collapse

Or perhaps it was because there was no layer between those developers and the users, no translations, no requirements gathering, no cards. Just you standing at the desk of the customer service rep, asking them how you could make their life better.

I do miss that often, too. We have so many applications and services in use with shitty bugs, which could probably be fixed in a few days. Of course, all those are proprietary shovelware that I’m not allowed to fix anyways, but the thought remains.

Instead, we just repeatedly spend years building up intricate systems only for them to get cancelled for no good reason, right when they’re about to become useful.

lemmyvore@feddit.nl on 05 Aug 2024 20:26 collapse

To some extent all software is disposable. Some places take it to a more ridiculous level than others. If they have money to burn just make sure as much of it as possible ends up in your pocket.

hazelnoot@beehaw.org on 05 Aug 2024 05:28 next collapse

This may sound like a mess to you. But it was remarkably enjoyable to work in. Gone were the concerns of code duplication. Gone were the concerns of consistency. Gone were the concerns of extensibility. Code was written to serve a use, to touch as little of the area around it as possible, and to be easily replaceable. Our code was decoupled, because coupling it was simply harder.

Incredible

JakenVeina@lemm.ee on 05 Aug 2024 06:36 next collapse

My god, this speaks to me.

gerdesj@lemmy.ml on 05 Aug 2024 09:17 collapse

“Gilfoyle” is an anagram of Cthulu.