[ art / civ / cult / cyb / diy / drg / feels / layer / lit / λ / q / r / sci / sec / tech / w / zzz ] archive provided by lainchan.jp

lainchan archive - /λ/ - 21165

File: 1482976784640.png (62.35 KB, 128x128, vicinity.gif)


> Have a proper data model of your system in [insert your programming language here]
> Have a properly normalized relational database schema
> Implement ORM
> Kiss your beautiful data model goodbye


>be the only human in a troop of enterprise code monkeys
>read Codd, understand the relational model, try to convince the monkeys that the integrity of the business's data is more important than the soykafty ORM they want to use
>get vetoed by the soykaf-flinging horde
>watch in horror as the monkeys rip apart a perfectly fine relational design and replace it with a horrible hierarchical soykafheap glued together with integer IDs and poo that's difficult to understand, change, or use outside of the equally horrible enterprise application
>monkeys proceed to complain about relational databases every time their changes have to go through approval from the poor DBA

If real engineers were held to the same standards as software "engineers" we would still be living in the stone age.


In what bizzaro enterprise do your DBAs bow to the developers?
Our group puts the integrity of the data and performance of the db first. We have a plethora of composite keys as a result but whateves. The DBAs should be able to do whatever they want and our model should be whatever we want and we should have a well defined communication layer to translate that shouldn't be one to one as ORM dictates.


>orms suck because the people using this one are retarded
>eating food is like kicking dead whales down the beach because my mom is a soykaf cook

You can't blame tools for people using them improperly. I'm pretty sure i could find an obtuse way to fuarrrk up a for loop but that doesn't mean i should write a paper called "for loops considered harmful"


I>'m pretty sure i could find an obtuse way to fuarrrk up a for loop but that doesn't mean i should write a paper called "for loops considered harmful"

Why not? That's pretty much what "GOTO Considered Harmful" did.


One that was built by monkeys. The databases was originally designed by excel monkeys and then inherited by code monkeys. Obviously it's a mess. The DBA's full-time job is to keep it from falling apart and to protect it from the monkeys. No time to actually participate in the design; that's a job for the programmers. There used to be more DBAs, but the others left for some mysterious reason. Be glad that you don't work with monkeys.

I will sure as soykaf blame the tool when it not only facilitates, but encourages bad design. This is because ORMs themselves are often designed by monkeys who think that composite keys are unnecessary and treat joins as if they are some complicated, arcane feature to be avoided. The worst is when they generate DDL so the monkeys don't even need to think about their data model. The entire idea of mapping individual tables to classes is retarded to begin with and doomed to fail (which is how most ORMs are used in practice).


What ORM do you use?
I have never had this kind of problems with hibernate.


>do your own SQL soykaf


>monkeys monkeys monkeys
jesus christ shut up, glitterboy


That's why really smart people warned us about the traps of object oriented programming.

In its current form OOP has nothing to do with actual data oriented programming. It's more a form of Cargo cult that people use to avoid the engineering in software engineering.

I feel sorry for you OP that have to endure such retardation and I hope you find some inner peace to deal with it.


squeryl. My problem is I will have data A that is also a composite of B and an aggregate of C. But because of ORM these relationships are not represented in the code base in any way. It also means I have an extra class D which is just the join table between A and C.

The result is ridiculous case classes that compose A and B and another that composes A and a list of C. And if C is related to class E. Then i must have class CwithE and AwithCwithE.


Like i get why we don't just return a class that's fully populated because it leads to inefficient queries but I think lazy evaluation should be able to handle that.


How retarded do you have to be to write SQL injection vulnerabilities in your code in 2017?

fite me