NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Jan Bezdíček
Tvůrce
Avatar
Jan Bezdíček:10.6.2017 13:59

Ahoj, resim takovou spis organizacni vec. Jak resite nazvy modelu v MV(C/P) ?

Napr. u e-shopu mam modely typu: Product, Category, Order, User, Newsletter apod.
Uz jsem nekde i videl, ze nekdo pouziva napriklad ProductImport, ProductExport, Product, coz mam napriklad ja vse v tom jednom modelu ...

Je na to vubec nejaka konvence, popr. jak je pojmenovavate vy ? Moje reseni se mi (hlavne v Nette) moc nelibi, protoze nekdy kdyz potrebuju v User modelu pouzit veci z Order modelu a naopak, vznikne mi circular reference error.

 
Odpovědět
10.6.2017 13:59
Avatar
Odpovídá na Jan Bezdíček
Martin Konečný (pavelco1998):10.6.2017 14:28

Ahoj,

univerzální konvence neexistuje, záleží na architektuře, jakou si zvolíš a i jak zvolíš samotné pojmenování. Někdo pojmenovává modelové třídy jako ty, tedy např. "Product", někdo s nějakou příponou, např. "ProductModel", "ProductManager" atd.

Obecně platí, že jedna třída by měla mít jen jednu zodpovědnost (SRP), takže se pak práce s produktem rozděluje právě na třídy ProductImport a ProductExport. Já třeba ve hře mám práci se zprávami rozdělené do pěti tříd:

  • Concept - koncepty (uložené, neodeslané zprávy)
  • Manager - obecné věci, jako nastavení zpráv jako přečtené, ignore list, mazání zpráv
  • News - novinky
  • Searcher - vyhledává zprávy (takže samé "get" metody)
  • Sender - odesílač zpráv

Každá ta třída má pak +- 200 řádků. Šlo by to nacpat vše do jedné mega třídy s 1000 řádky, ale tím se pak i snižuje použitelnost, protože když při nějaké akci potřebuji odeslat zprávu, musel bych tam cpát tu jednu velkou třídu, která by mohla mít řadu dalších závislostí. Takhle tomu předám jen čistě toho "odesílače" zpráv, který je malý, jednoduchý a má jasně určenou zodpovědnost (pouze posílá zprávy, nic jiného nedělá).

Editováno 10.6.2017 14:29
Nahoru Odpovědět
10.6.2017 14:28
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Odpovídá na Jan Bezdíček
Martin Konečný (pavelco1998):10.6.2017 14:33

Ještě dodám, že by ti mohly pomoct Kdyby\Events, abys nemusel mít řadu závislostí.

Nahoru Odpovědět
10.6.2017 14:33
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.