Re: [python] par dotazu od zacatecnika v SQL
Dne 29.12.2017 v 10:29 Dan Pressl napsal(a): Myslím že se dostáváme přesně do té fáze, kdy člověk, který poslal dotaz na jednoduchý problém, má chuť zaklapnout notebook a jít ven, protože jeho původní otázka se zvrhla. Ad tazatel: Kdo se bojí nesmí do lesa :-) Ad problém: Netvrdím že moje praxe je jediná pravda pro všechny. Přeji hezký nový rok! ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] par dotazu od zacatecnika v SQL
Myslím si, že doporučovat někomu, kdo chce používat databázi, čisté SQL, aby zjistil jak to uvnitř databáze funguje, je stejné, jako doporučovat někomu, kdo se učí programovat v Pythonu, aby začal s Assemblerem a C, aby zjistil, jak ten počítač funguje. 2017-12-29 9:52 GMT+01:00 zu1234: > > Dne 28.12.2017 v 22:19 Petr Blahos napsal(a): > > >> Začínat s jazkem SQL je předčasná optimalizace. Začni s ORM. Doporučil >> bych SQLAlchemy ORM nebo Django (pokud chceš dělat webové aplikace). Na >> drtivou většinu věcí ti to bude stačit. Jazyk SQL je pro běžné potřeby >> zbytečně nízkoúrovňový. Psát, testovat a udržovat kód se syrovým SQL je >> velká ztráta času. >> >> > :-) To je o úhlu pohledu. Aby člověk věděl, co v databázi vůbec lze > efektivně udělat, musí > chápat ten relační způsob myšlení, a obávám se, že ORM jej od toho spíš > může odvést. > Navíc když nebude mít python, bude mít pořád to SQL, které asi bude volat > z jakéhokoliv > jazyka, nebo možná někdy dokonce přímo. A nebude se divit, co je to ten > select, protože > v sqlalchemy ORM se přece píše query... > > Ano, přidám par dalších otázek: > Dejme tomu že začnu 'bez SQL'. Vyvíjím program, mám v něm chyby, které > dělají chyby v databázi. > Od toho tě chrání to ORM (stabilní, testované). Musel bys asi narazit na bug přímo v ORM knihovně, aby ses do takové situace dostal. Oproti tomu se syrovým SQL se do takové situace dostaneš snadno. > Pokud se vyhnu SQL, jak budu schopen zkontrolovat svoje data? > Cest je spousta. Základ jsou testy (ale to i v případě použití SQL). ORM lze obvykle používat v shellu, tak se dá databáze pohodlně prohlížet. A obvykle se hodí mít po ruce nějaké GUI k databázi. > Opravit v datech následky mých chyb nebo chyb uživatele? > ORM ti obvykle nedovolí takové chyby udělat. > Změnit strukturu dat z důvodu změny koncepce? > ORM knihovny mají nástroje pro tvorbu databázových migrací. Obvykle umí migrace pro většinu změn struktury vygenerovat automaticky, což se hodí, protože je to věc, kde se dá nasekat spousta tragických chyb. > Program zastírá realitu která je v databázi. > > A jiná otázka trochu bokem: je správné/vhodné vnutit zákazníkovi > databázovou platformu? > Pokud byste to chtěli prodávat, tak zákazník může mít své preference. > > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] par dotazu od zacatecnika v SQL
Myslím že se dostáváme přesně do té fáze, kdy člověk, který poslal dotaz na jednoduchý problém, má chuť zaklapnout notebook a jít ven, protože jeho původní otázka se zvrhla. Pokud někdo začíná a chce nabrat zkušenosti, je daleko lepší aby začal na ORM. S ORM postaví malé projekty daleko rychleji a paradoxně i stabilněji než s použitím čístého SQL a bud se mu se vším pracovat daleko líp. Zároveň pokud si budet hledat práci, tak málokterý startup či větší firma nepoužívá ORM ať jako Django ORM nebo SQLAlchemy, takže bude mít výhodu, protože bude na daný způsob práce zvyklý. Až bude muset řešit výkonostní problém, tak se naučí SQL, jak fungují transakce, jak se chová JOIN apod. a hezky se mu to propojí dohromady. Pokud budou chyby v databázi, tak se k nim dostane stejně jako kdyby uměl psát query v SQL. Nastavuje se někde, že je uživatel neaktivní? Problém stejně bude hledat v kódu. Jiný datový typ, než jaký je ve schématu, stejně neuloží. Opravit chyby? Napíše si skript, který bude používat SQLAlchemy a data si opraví. Až to bude potřebovat udělat efektivněji, tak začne zjišťovat, jak to udělat přímo v SQL atd.. ORM nezastírá realitu v databázi, pouze nabízí alternativní způsob práce s daty v databázi. A proč tady řešíme nucení technologie zákazníkovi? Rovnou můžeme začít řešit, co dělat, když zákazník řekne, že chce Javu. Jedná se o problémy, které se řeší projekt od projektu. Podle toho, co tady čtu, by měl půl roku studovat jak funguje SQL a pak teprve začít něco psát. To, dle mého, není vhodný přístup, protože je daleko lepší začít něco tvořit a učit se za pochodu. Takže za mě, ať začne s ORM, kde nejlepší volba je SQLAlchemy a učí se během tvorby svého projektu. A sám časem přijde na to, jestli mu to tak vyhovuje nebo chce zjistit, jak to doopravdy funguje a vyplatí se mu psát čisté SQL. Kdo z vás napřed studuje protokol, přes který komunikuje ovladač s televizí a až se ho naučí, začne ovladač používat? 2017-12-29 9:52 GMT+01:00 zu1234: > > Dne 28.12.2017 v 22:19 Petr Blahos napsal(a): > > >> Začínat s jazkem SQL je předčasná optimalizace. Začni s ORM. Doporučil >> bych SQLAlchemy ORM nebo Django (pokud chceš dělat webové aplikace). Na >> drtivou většinu věcí ti to bude stačit. Jazyk SQL je pro běžné potřeby >> zbytečně nízkoúrovňový. Psát, testovat a udržovat kód se syrovým SQL je >> velká ztráta času. >> >> > :-) To je o úhlu pohledu. Aby člověk věděl, co v databázi vůbec lze > efektivně udělat, musí > chápat ten relační způsob myšlení, a obávám se, že ORM jej od toho spíš > může odvést. > Navíc když nebude mít python, bude mít pořád to SQL, které asi bude volat > z jakéhokoliv > jazyka, nebo možná někdy dokonce přímo. A nebude se divit, co je to ten > select, protože > v sqlalchemy ORM se přece píše query... > > Ano, přidám par dalších otázek: > Dejme tomu že začnu 'bez SQL'. Vyvíjím program, mám v něm chyby, které > dělají chyby v databázi. > Pokud se vyhnu SQL, jak budu schopen zkontrolovat svoje data? > Opravit v datech následky mých chyb nebo chyb uživatele? > Změnit strukturu dat z důvodu změny koncepce? > Program zastírá realitu která je v databázi. > > A jiná otázka trochu bokem: je správné/vhodné vnutit zákazníkovi > databázovou platformu? > Pokud byste to chtěli prodávat, tak zákazník může mít své preference. > > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > > -- ^nu.friX aka Dan Pressl Every syntax creates code. And code is poetry. ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] par dotazu od zacatecnika v SQL
> > > A jiná otázka trochu bokem: je správné/vhodné vnutit zákazníkovi > databázovou platformu? > Pokud byste to chtěli prodávat, tak zákazník může mít své preference. > > A tak zase je rozdíl mezi správné a realita. Správné je jistě nenutit, realita je taková, že v lepším případě dá dodavatel na výběr mezi 2-3 RDBMS, jindy řekne (ovšem až po realizaci obchodu): jestli chcete těchto pár vlastností, bude to muset být Oracle. Paradoxně, pokud jsi malý, budeš se snažit udělat to podle přání zákazníka, pokud jsi velký, bude se zákazník muset přizpůsobit, Petr -- http://petr.blahos.com/ ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] par dotazu od zacatecnika v SQL
Dne 28.12.2017 v 22:19 Petr Blahos napsal(a): Začínat s jazkem SQL je předčasná optimalizace. Začni s ORM. Doporučil bych SQLAlchemy ORM nebo Django (pokud chceš dělat webové aplikace). Na drtivou většinu věcí ti to bude stačit. Jazyk SQL je pro běžné potřeby zbytečně nízkoúrovňový. Psát, testovat a udržovat kód se syrovým SQL je velká ztráta času. :-) To je o úhlu pohledu. Aby člověk věděl, co v databázi vůbec lze efektivně udělat, musí chápat ten relační způsob myšlení, a obávám se, že ORM jej od toho spíš může odvést. Navíc když nebude mít python, bude mít pořád to SQL, které asi bude volat z jakéhokoliv jazyka, nebo možná někdy dokonce přímo. A nebude se divit, co je to ten select, protože v sqlalchemy ORM se přece píše query... Ano, přidám par dalších otázek: Dejme tomu že začnu 'bez SQL'. Vyvíjím program, mám v něm chyby, které dělají chyby v databázi. Pokud se vyhnu SQL, jak budu schopen zkontrolovat svoje data? Opravit v datech následky mých chyb nebo chyb uživatele? Změnit strukturu dat z důvodu změny koncepce? Program zastírá realitu která je v databázi. A jiná otázka trochu bokem: je správné/vhodné vnutit zákazníkovi databázovou platformu? Pokud byste to chtěli prodávat, tak zákazník může mít své preference. ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz