Quite a few of the multitude of tiny problems one faces creating a CRUD come from the fact that the software is divided in layers. The modern implementations are universally composed of 3 layers, all run by different software, usually on different computers.
Let's call those that "data" layer, that runs in a RDBMS, "transformation" layer that runs in a web server, and "presentation" layer that runs in a web browser.
The separation of those 3 layers creates all sorts of integration problems, that forces people into writing the same code for each one of them. Worse yet, while the data layer affords a lot of requirement analysis (done before the fact), and the transformation layer affords a lot of code analysis (done after the fact), no software quality methodology is equally afforded by all 3, and most of that analysis is not extended to any other layer.
So, not only people have to write their code multiple times, there are very little know-how on ensuring that those copies are correct or even coherent with each other.
Continue