gurkjis Posted April 25, 2014 Report Share Posted April 25, 2014 (edited) "daudz lielāka kontrole" - tas ir arī - daudz plašāks iespējamību lauks, līdz ar to ir daudz sarežģītāk tajā orientēties = lielāka iespējamība uz bugiem. Abstrakcijas pilda uzdevumu "lai apakšas dara mašīna un lai cilvēks spētu operēt augstāk". Lietojot abstrakcijas, retajās reizēs, kad ir kas specifisks vajadzīgs, tad jāsajūdz ar slāni zemāk. Tas pats attiecas arī uz multiplatform izstrādes frameworkiem - tiek nodrošināta funkcionalitāte, kas nosedz lielāko daļu lietošanas gadījumu, bet retajās reizēs, pēc specifiskas platformas fīčas - tiek rakstīts custom modulis. Tieši par multiplatform frameworkiem, man ir aizdomas, ka šī stratēģija no biznesa viedokļa ir ļoti izdevīga, taču ir cilvēki, kas saka, ka tas līdz galam nav efektīvi. Vēl nezinu, pats gribu pārbaudīt, it kā obviously un pēc pirmās loģikas tā sanāk, bet praksē jau visādi gadās. Bet nu aizdomājos offtoptic, sry. Edited April 25, 2014 by gurkjis Quote Link to comment Share on other sites More sharing options...
daGrevis Posted April 25, 2014 Report Share Posted April 25, 2014 Codez ir runājis. Quote Link to comment Share on other sites More sharing options...
jurchiks Posted April 25, 2014 Report Share Posted April 25, 2014 (edited) Nezinu, ko jūs tik sarežgītu rakstat, ka jums tik ļoti vajag, ka ORM visu dara jūsu vietā... Fakts kā tāds, ka visas tās abstrakcijas nepieļauj visu to funkcionalitāti, ko var panākt ar raw SQL, un ja rodās nepieciešamība, tad vienalga nāksies to izmantot. Labāk tad jau pierast un mācēt visu, ko vajag. Edited April 25, 2014 by jurchiks Quote Link to comment Share on other sites More sharing options...
codez Posted April 25, 2014 Report Share Posted April 25, 2014 Nē, nav labāk. Bet, lai to saprastu, ir jāiziet cauri abām pieredzēm. Iesaku tev papētīt Doctrine FW. Quote Link to comment Share on other sites More sharing options...
jurchiks Posted April 25, 2014 Report Share Posted April 25, 2014 Kaut kad, ja nebūs slinkums, paskatīšos. Quote Link to comment Share on other sites More sharing options...
Kavacky Posted May 7, 2014 Report Share Posted May 7, 2014 Nezinu, ko jūs tik sarežgītu rakstat, ka jums tik ļoti vajag, ka ORM visu dara jūsu vietā...Tieši tam, kas idejiski ir ļoti vienkārši un vislaik ir ~copy/paste, arī ORM noder vislabāk, lai nav katru reizi ar rokām jāčakarējas. Operēt lāpstu arī nav sarežģīti, toties neefektīvi, ja var operēt ekskavatoru. Tajās reizēs, kad kauss par rupju, tad arī ar rokām apšķipelē, ko nu vajag. Quote Link to comment Share on other sites More sharing options...
jurchiks Posted May 7, 2014 Report Share Posted May 7, 2014 (edited) Man copy/paste kaut kā galīgi nesanāk, un ar rokām nekāda čakara nav, tā kā... Tā analoģija par lāpstu un ekskavatoru ir apjomu salīdzināšana. Varbūt man vienkārši nav trāpījies tik apjomīgus projektus taisīt, ka katru dienu pa N jaunām tabulām nāk klāt. Edited May 7, 2014 by jurchiks Quote Link to comment Share on other sites More sharing options...
Kavacky Posted May 8, 2014 Report Share Posted May 8, 2014 CRUD ar tīru SQL nav copy/paste un nežēlīgs boilerplate? Quote Link to comment Share on other sites More sharing options...
codez Posted May 8, 2014 Report Share Posted May 8, 2014 ORM piemērs: Vienkāršs user klases modelis, ar divām papildus funkcijām, kuras palielina naudu un pieredzi un pārbauda vai naudas pietiek un pieredze netiek samazināta. class User extends Model{ function incMoney($dmoney){ if ($this['money']<-$dmoney) throw new UserExeption("Not enough money"); $this['money']+=$dmoney; } function incExp($dexp){ if ($dexp<0) throw new UserException("Cant decrease experience"); $this['exp']+=$dexp; } } $user = new User($userID); $user->incMoney($someMoney); $user->incExp($someExp); $user->save(); echo "User has $".$user['money']." and its exp is ".$this['exp']; Aiz modeļa notiek sekojošas lietas.Ja nauda un exp nemainījās, tad user modelis pie save pat neizsauc update kveriju. Ja mainījās tikai nauda, vai tikai exp, tad update kverijā būs tikai tas lauks updeitots. Ja mainījās abi, tad updeitoja abus laukus. Tagad pamēģini šo uzrakstīt ar raw SQL; Pie tam šis ir ļoti vienkāršs piemērs. Attīstot tālāk, lietotājam pie noteiktiem exp varētu piešķirt bonusus un naudu. Un tad jau tikai incExp metode var izmainīt gan exp, gan money laukus. Vēl tālāk var būt iesaistīti ne tikai 2 lauki, bet 20 lauki. Vēl tālāk var tikt iesaistīti vairāki modeļi, kur izmaiņas vienā, var radīt izmaiņas otrā. Sekot, kuri modeļi ir jāglabā un kuri nē un kuri lauki ir jāglabā un kuri nē, radīs ļoti sarežģītu kodu, ja to darīs ar RAW SQL. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.