Joyride Posted March 25, 2010 Report Share Posted March 25, 2010 Visi vairāk vai mazāk zin, kādi ir MVC arhitektūras slāņi (Model / View / Controller). Šobrīd prātoju par Model daļu. Agrāk tika uzskatīts, ka modelis ir objekts, kas reprezentē kaut ko (rakstu, foruma tēmu, komentāru, lietotāju, produktu, iepirkumu grozu, ...) un viņš arī satur metodes saglabāšanai, dzēšanai, datu atlasei u.c. Tagad lasu, ka pareizi ir sadalīt atbildību - modeli dalīt vairākos slāņos: Entity (vienkārša datu struktūra - tas, kas agrāk tika saprasts kā modelis, tikai bez pārējās funkcionalitātes), Service (kas veic darbības ar Entity), Gateway / Mapper (kas atlasa pēc dotajiem kritērijiem Entity/-ies). Vai kāds ar izpratni par šo visu varētu izskaidrot sīkāk? Ļoti noderētu kāds konkrēts piemērs. Man neskaidras ir vairākas lietas: * kāda tieši ir katra slāņa atbildība (kas atlasa datus, kas saglabā / dzēš, kas veic specifiskas darbības ar konkrēto Entity)? * ar ko atšķiras Gateway no Mapper? * kā notiek hierarhisku datu atlase (rakstam var būt piesaistīti komentāri)? * kāpēc datu atlasi veic Gateway / Mapper, nevis Service? Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted March 25, 2010 Report Share Posted March 25, 2010 Pats neesmu kompetents, taču sitepointā vīrs kyberfabrikken ir riktīgs OOP guru, lūk dažas diskusijas, ko uzraku par šo tēmu: http://www.sitepoint.com/forums/showthread.php?t=515644&highlight=entity+mapper+gateway http://www.sitepoint.com/forums/showthread.php?t=284495&highlight=entity+mapper+gateway http://www.sitepoint.com/forums/showthread.php?t=78687 Quote Link to comment Share on other sites More sharing options...
EdgarsK Posted March 25, 2010 Report Share Posted March 25, 2010 (edited) esmu dzirdējis ka tādu metodi izmanto, bet atklāti sakot man patīk standarta mvc tips, kad modelis ir kā modelis viens vesels un jebkurā laikā bez liekām pārbaudēm varu iekļaut darbībā. šādas metodes kā jau nojaut izmanto tikai lielie projekti, tādi kuriem ir vitāli svarīga drošība. Pats nēesmu īsti izpratis to darbības principa kad modeli sadala vairākos slāņos bet ideja ir skaidra. Iekļaujot modeli kontrolierī tajā notiek pārbaude ko tad īsti vēlies darīt, tobīš modelis kļūst par tādu kā 2 līmeņa kontrolieri. 1. Controller 2. Model 2.1. If Entity 2.1.1 Model.Entity 2.2. If Service 2.2.1 Model Service 2.3. If Gateway 2.3.1 Model Gateway Tīri tu saīsini modeli 3 dažādos failos. Itkā tam ir zināma jēga, jo tad nav pieejams viss modeļa fails, tikai tā daļa kuru tu tanī brīdi gribi parādīt, bet personīgi man liekas ka tā ir lieka darbība. Edited March 25, 2010 by EdgarsA Quote Link to comment Share on other sites More sharing options...
Joyride Posted March 25, 2010 Author Report Share Posted March 25, 2010 Aleksej, paldies par saitēm, bet Sitepoint ir izskatīts krustām šķērsām un jautājumi joprojām ir palikuši neatbildēti. Protams, varēju tur uzsākt šo tēmu, taču kaut kā dzimtā valoda tuvāka :) Quote Link to comment Share on other sites More sharing options...
EdgarsK Posted March 25, 2010 Report Share Posted March 25, 2010 Joyride. Es tev ieteiktu http://www.dreamincode.net , es tur pats ņemos, tur ir sakarīgi cilvēki un domāju ka viņiem būs pieredze ar mvc entity frameworkiem. Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted March 25, 2010 Report Share Posted March 25, 2010 Joyride, nē, nē - es nebiju domājis: "Ej tur un tur uzdod savus jautājumus" :D Nebūt ne. Vienkārši atradu kā man likās info pa tēmu. :) Protams, ka dzimtajā valodā ērtāk. Quote Link to comment Share on other sites More sharing options...
Joyride Posted March 25, 2010 Author Report Share Posted March 25, 2010 Paldies par atbildēm, turpināšu "rakt", tomēr joprojām ceru, ka atradīsies kāds, kas padalīsies iz pieredzes :) Quote Link to comment Share on other sites More sharing options...
codez Posted March 25, 2010 Report Share Posted March 25, 2010 (edited) Vienā no diskusijām bija šādi linki, manuprāt, labi apskaidro, kas ir kas: http://martinfowler.com/eaaCatalog/tableDataGateway.html http://martinfowler.com/eaaCatalog/activeRecord.html http://martinfowler.com/eaaCatalog/dataMapper.html http://martinfowler.com/eaaCatalog/rowDataGateway.html Edited March 25, 2010 by codez Quote Link to comment Share on other sites More sharing options...
2easy Posted March 25, 2010 Report Share Posted March 25, 2010 es domāju, ka nevajag kkā mākslīgi censties pieskaņoties kkādam konkrētam mvc stilam. kodē kā tev ērtāk! ja kkad radīsies vitāla nepieciešamība modeli dalīt sīkāk, tad tajā brīdī arī zināsi, kā tev to vajag izdarīt, lai varētu izdarīt to, kas tev tad būs jāizcīna... galvenais taču ir darba rezultāts un laimīgs klients :)) visi tie mvc, etc ir tikai darba instrumenti. kā tev ir ērtāk, tā arī dari un nav tur visam viens "pareizais" universālais piegājiens :D:D:D Quote Link to comment Share on other sites More sharing options...
Mastermind Posted March 25, 2010 Report Share Posted March 25, 2010 es domāju, ka nevajag kkā mākslīgi censties pieskaņoties kkādam konkrētam mvc stilam. kodē kā tev ērtāk! Es teiktu, ka vajag gan pieskaņoties tam, kas jau labs ir izgudrots! Citādi var turpināt vienīgi "kovbojprogrammera sirojumus pa prēriju"... Quote Link to comment Share on other sites More sharing options...
2easy Posted March 25, 2010 Report Share Posted March 25, 2010 common sense ftw Quote Link to comment Share on other sites More sharing options...
Kavacky Posted March 25, 2010 Report Share Posted March 25, 2010 Es teiktu, ka tas vajadzīgs tikai papildu pārskatāmībai/organizācijai (kas, protams, ir labi). Datu atlasi veic Gateway, nevis Service, jo paskaties angļu - latviešu vārdnīcā. Tb serviss apkalpo, veic kaut kādas darbības, bet gateway nodrošina pieeju kaut kādiem datiem. Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted March 25, 2010 Report Share Posted March 25, 2010 Nevajadzētu novirzīties no tēmas - cilvēks uzdeva dizgan konkrētu jautājumu, bet sākas spriedelējumi: "a priekškam". Apmēram kā - cilvēks atnāk un paprasa - ziniet, esmu dzirdējis par tādu krustiņa skrūvjgriezi, bet uzreiz kāds metas bļaut, kamēr nav tā ka ar plakano skrūvjgriezi nav iespējams ieskrūvēt to skrūvi tikmēr nav vērts skatīties uz visādām tur izvirtībām. ;) Quote Link to comment Share on other sites More sharing options...
2easy Posted March 25, 2010 Report Share Posted March 25, 2010 tev taisnība, Aleksej! ^^ my bad 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.