Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

What are the things that you think other devs would label over engineering but was instrumental in your project not becoming an unmaintainable mess?


An example I often see is database normalization. Why use 5NF when we can simply do with 3NF? Fast forward this a few months later and you end up doing pattern matching on blocks of text instead of querying indexed columns.


Ahh, it's far more uncommon for me to feel like a database is over engineered. It's much more common to find a codebase has 7 levels of indirection but the database fails to accurately and completely represent their business domain.

When I do feel a database is over engineered it is almost exclusively adding complexities to the database to handle a contrived or rare examples. With the most common being "splitting one table into 2 because a one to one relationship is actually a one to many once every 5 years", or "adding a join table because in Joe's 30 year career there was that one time multiple companies jointly sold us a single product"




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: