mboost-dp1
Python ORM
- Forside
- ⟨
- Forum
- ⟨
- Tagwall
Jeg er ikke imponeret af hvad jeg har set med hensyn til Python ORM's.
Og strengt taget er et dynamisk type sprog or ORM vel også en sær kombination.
Men:
https://github.com/tiangolo/sqlmodel
virker altså ret overbevisende.
Kræver Python 3.6.
Og er stadig kun version 0.0.4 så der er nok et par bugs.
Og strengt taget er et dynamisk type sprog or ORM vel også en sær kombination.
Men:
https://github.com/tiangolo/sqlmodel
virker altså ret overbevisende.
Kræver Python 3.6.
Og er stadig kun version 0.0.4 så der er nok et par bugs.
Hele: "Klasse hierarki med data <-> ORM interfacing kode <-> ORM <-> Relationel database" idéen har altid forekommet mig at gå over åen efter vand i de use cases jeg har haft.
Jeg er typisk endt med: "Klasse hierarki med data <- custom save/load kode -> json" og man eliminerer en hel masse dependencies og bloat.
Jeg er typisk endt med: "Klasse hierarki med data <- custom save/load kode -> json" og man eliminerer en hel masse dependencies og bloat.
#2
I de fleste tilfælde sparer man kode ved at bruge ORM fremfor SQL.
For noget super simpelt kode (5 metoder i Java/C#, 4 i PHP/Python):
Java JDBC (SQL) : 92 linier
Java JPA (ORM) : 50 linier
C# ADO.NET (SQL) generic : 171 linier
C# ADO.NET (SQL) specific : 129 linier
C# EF (ORM) : 53 linier
PHP PDO (SQL) : 51 linier
PHP Doctrine (ORM) : 30 linier
Python DB API 2.0 (SQL) : 21 linier
Pyton SQLModel (ORM) : 26 linier
Tilgå database og tilgå serialiseret fil er ikke helt sammenligneligt.
I de fleste tilfælde sparer man kode ved at bruge ORM fremfor SQL.
For noget super simpelt kode (5 metoder i Java/C#, 4 i PHP/Python):
Java JDBC (SQL) : 92 linier
Java JPA (ORM) : 50 linier
C# ADO.NET (SQL) generic : 171 linier
C# ADO.NET (SQL) specific : 129 linier
C# EF (ORM) : 53 linier
PHP PDO (SQL) : 51 linier
PHP Doctrine (ORM) : 30 linier
Python DB API 2.0 (SQL) : 21 linier
Pyton SQLModel (ORM) : 26 linier
Tilgå database og tilgå serialiseret fil er ikke helt sammenligneligt.
arne_v (5) skrev:#2
Mindre kode => mindre vedligehold.
Og i visse tilfælde mindre database afhængighed => mindre porteringsarbejde.
Med undtagelse af python
Men en oversætter burde også kunne tage sql i eksisterende kode og lave det til orm... lidt som med aspekt orienteret kode til fx java hvor der er et ekstra led i kæden
CBM (6) skrev:arne_v (5) skrev:#2
Mindre kode => mindre vedligehold.
Og i visse tilfælde mindre database afhængighed => mindre porteringsarbejde.
Med undtagelse af python
Python kode er normalt meget kompakt og derfor er gevindsten generelt mindre.
I mit konkrete tilfælde krævede ORM endda flere linier, men i andre tilfælde vil der nok være en lille besparelse.
Men slet ikke som i Java/C#.
CBM (6) skrev:Men en oversætter burde også kunne tage sql i eksisterende kode og lave det til orm... lidt som med aspekt orienteret kode til fx java hvor der er et ekstra led i kæden
ORM bliver lavet om til SQL runtime.
Jeg tror at det vil være svært at konvertere SQL til ORM.
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.