Finální vize filosofie Nette\Database?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Ot@s
Backer | 476
+
0
-

Poslední dobou se poměrně často vyskytují dotazy jak který SQL dotaz přepsat do fluent syntaxe ND. Na těchto dotazech mě začínají vadit 2 věci:

  • lidi se ptají aniž by se pořádně sami zasnažili pochopit svůj vlastní výtvor, příp. podle stávajících norem návrhu upravili návrh databáze (nerad bych někomu křivdil)
  • lidi se snaží za každou cenu mít SQL v „cool“ objektové syntaxi (hlavně složitější SQL)

Nebudu skrývat, že nejsem moc velký obdivovatel objektového přístupu nad RDBMS (od určité složitosti a výše), nicméně oba výše zmíněné body souvisí s tím, že programátoři přestávají rozumnět co je a co není databázový server, co jim nabízí a co je kdy výhodné použít. Často to pak vede k tomu, že mají tendence optimalizovat na špatných místech a z toho pramení další problémy. Proč to ale píšu. Už jedenkráte jsem nadhodil, že by to chtělo nějaký definovatelný „stop stav“. Ten by měl pokrýt určitou složitost návrhu db struktury a dál si to dělej po svém (pohledy, subdotazy, kurzorové tabulky, atd…). Já osobně bych „hloubku“ použití ND vyměnil spíše za „šířku“, tj. multiplatformnost ve vztahu k různým databázím. Používám Nette na tvorbu CRM/ERP a v tomto má ND velký handicap (do toho všeho léta nedotažené PDO v PHP).

PS: Není to nic proti Hrachovi, tomu patří dík, že se s tím tak statečně popasovává. Nicméně chtěl bych v tom mít do budoucna jasno (jednoduchost/komplexnost ND). Nebo je ND ještě tak mladé, že se k tomu nedá zaujmout konkrátní stanovisko?

hrach
Člen | 1838
+
0
-
  • vetsina dotazu je tu na foru z nepochopeni nette database. Filozifie je totiz zasadne odlisna od toho, co tu bylo
  • hlavni feature ndb je navic „zbytecne“ zadratovana to aktualniho api, to se chystam zmenit. To bude vest k tomu, ze prave budes moci napsat hardcode dotaz, ale budes porad moci volat related atp.
  • ndb je zabugovane – to stezuje celou tu vec
  • je treba vyhybat se bc breakum – opet zdruzuje refactoring a opravy.

Tak nejak nevim, co presne chces resit. :D

David Ďurika
Člen | 328
+
0
-

hrach napsal(a):

  • ndb je zabugovane – to stezuje celou tu vec
  • je treba vyhybat se bc breakum – opet zdruzuje refactoring a opravy.

ja by som bol za to keby sa to cele prekopalo aj ked tam vznikne BC break, ale uz aspon konecne bude ndb fungovat a robit veci tak ako sa ocakava…
neviem ako ostatny ale som ochotny obetovat nejaky BC break namiesto toho aby v ndb boli kadejake zaplaty, antipaterny atd… a tie zaplaty potom musime robit aj vsade v projekte…
napr. nevies spravit vlastny activeRow atd…

Editoval achtan (1. 10. 2012 14:21)

hrach
Člen | 1838
+
0
-

Vlastni active row muzes uz celkem pekne udelat. To, ze to neni primocare si myslim ze je dobre. Mrkni kdyztak na ndab, jak je to tam udelane. Je to jen par radku a nejake pekne api k tomu.

jansfabik
Člen | 193
+
0
-

@achtan Já používám vlastní velmi jednoduchou nadstavbu nad Nette\Database a používá se mi to příjemněji než ndab.

https://github.com/fabik/database

Nadefinuješ si rowFactory, která říká pro každou tabulku, jakou třídou má reprezentovat řádky. Viz readme.

David Ďurika
Člen | 328
+
0
-

ndab poznam
@jansfabik zaujimave skusim…

len nechapem ze naco zas robite jednu vec 2… sak dajte hlavy dohromady a spravte jednu vec a poriadne… toto sa deje stale napr.: kazdy si robi vlastny DataGrid… ako keby ich nebolo dost..

jansfabik
Člen | 193
+
0
-

Když jsem to začínal psát, tak jsem ještě nevěděl, že ndab existuje.

Hodil by se nějaký centrální repozitář. Ten nápad s nextras vypadá docela rozumně.

paranoiq
Člen | 392
+
0
-

@achtan: není přirozeného výběru bez rozmanitosti

David Ďurika
Člen | 328
+
0
-

paranoiq napsal(a):

@achtan: není přirozeného výběru bez rozmanitosti

racej budem mat jednu moznost na vyber, ako mat na vyber 10 a s toho ani jedna nefunguje poriadne…

stale je to tak ze pouzivas len jednu vec… tak napr preco pouzivas Nette ked je este kopa dalsich FW… lebo ti vyhovuje aj ked nieje dokonali ale vseci sa snazime aby bol… tak preco nesravit jeden DataGrid… ?

Editoval achtan (2. 10. 2012 7:04)

Caine
Člen | 216
+
0
-

Ono to bude asi hlavne tim, ze kazdej ma trosku jinou predstavu*, jak by to melo vypadat a co by to melo umet, tak nez se snazit nekoho presvedcovat, ze tohle by bylo mozna fajn tam mit taky, radsi si to clovek udela sam..

* napr u NDB obcas problemy s joinama, ale i kdyz by to kazdou chvili nekdo potreboval, proste to tam dat nechtej..

Editoval Caine (2. 10. 2012 10:06)

hrach
Člen | 1838
+
0
-

Caine: dulezite je pochopil filozofii. Pak problem s joiny mit nebudes.

Caine
Člen | 216
+
0
-

Otazka je, kolik lidi tuhle filozofii skutecne sdili (viz vsemozny varianty NBD)?

Osobne se mi NDB libi hodne a chtel bych to pouzivat. Jednoduchy dotazy se skladaj jedna basen, automaticky vytvareni joinu je vetsinou taky super, ale pak se objevi nejakej specifickej dotaz, kde uz je potreba rict, jakej join by se mel pouzit nebo ze ze subselectu se nemaj vytvaret join v hlavnim dotazu, ze je potreba SqlLiteral v order by, atp. A pak uz NBD tak pekny neni, clovek musi hledat vsemozny klicky, jak to nejakym zpusobem obejit a hlavne vyresit.

Pri soucasnym stavu mi ale fakt prijde, ze se to da pouzit jen na nejaky jednoduchy webiky typu „blog“ a „tasks“ a nebo s tim, ze si to pozdejs clovek bude stejne muset nejak nehezky prizpusobovat a to mi pripada, ze taky neni dobre a hlavne je to skoda.

Krom toho si myslim, ze to i spoustu lidi nakonec od pouzivani Nette i odradi, protoze uz budou muset hledat zpusob, jak jinak pracovat s DB. A proc hledat zpusob, jak napasovat napr doctrine do Nette, kdyz jiny frameworky uz to umej od zakladu nebo pouzivaj system, kterej neni tak upjatej na jednu filozofii, ktera ne uplne vsem prave sedi..

paranoiq
Člen | 392
+
0
-

@achtan:
pokud je tvé vidění světa takové, že všem stačí jeden nástroj a to zrovna ten, který vyhovuje tobě, tak je mi líto, ale to je tvůj problém

tak napr preco pouzivas Nette ked je este kopa dalsich FW

právě proto, že jsem měl možnost volby vybrat si z desítek frameworků ten jeden, který vyhovuje . pokud by se David místo psaní Nette připojil např. k vývojářům Zend Frameworku, Nette by nikdy nevzniklo a pochybuji o tom, že by jako jeden z mnoha měl možnost vytáhnout ZF na takovou úroveň jako Nette

ale není to jen o kvalitě. prostě různí lidé a různé projekty mají různé požadavky, které často jedna knihovna univerzální splnit nemůže (musel by to být obří moloch, který umí vše). proto je nutné znovu a znovu vynalézat kola. samozřejmě je dobré předtím vynaložit rozumné úsilí hledání/úpravu již existujícího řešení. a co je rozumné, to ponechme na vkusu každého soudruha…