kkorvel / AgileWorksWebAppeals

0 stars 0 forks source link

See mudel on väga aneemiline, kas äkki võiks sellele klassile rohkem vastutusi anda? #9

Open karelg opened 6 years ago

karelg commented 6 years ago

https://github.com/kkorvel/AgileWorksWebAppeals/blob/d8f7e5fdc16cff78d097ddf6c88b32ff562c1fcb/AgileWorksSolution/AgileWorks/Models/Appeals.cs#L29

kkorvel commented 6 years ago

Minu arust ei peaks mudel palju vastutust võtma. Mudeli eest võtavad vastutust kontrollerid ja vaated. Ei saa täpselt aru, mida mõtlete aneemilisuse all.

karelg commented 6 years ago

Ma pigem ütleks, et see ei ole väga OO lähenemine ja viib protseduurilise koodini. https://www.martinfowler.com/bliki/AnemicDomainModel.html

kkorvel commented 6 years ago

Lisasin mudelisse paar validatsiooni, ehk siis entryDateTime väärtustatakse kohe DateTime.Now ning deadlineDatetime sai külge validatsiooni, mis ei luba minevikus olevaid datetime lisada.

karelg commented 6 years ago

See on natuke parem, aga pole siiski veel rikas domeeni mudel. Selles mõttes database first lähenemine ei olegi kõige sobivam, sellisel juhul EF puhul pigem peaks kasutama code first lähenmist, kus me teeme kõige pealt endale sobiva mudeli ja siis me map'ime selle andmebaasi.

kkorvel commented 6 years ago

Selge, tulevikus hakkan kasutama code first lähenemist 👍 , Nüüd saan aru, miks on see rikas domeeni mudel vajalik, et ei saaks igasugu rämpsu lisada jne. Mudel peab kohe alguses valideeritud olema, ei saa usaldada kliendipoolseid validatsioone, sest kui Javascript maha keerata, siis ei toimi kliendipoolset validatsiooni, ning kui ilma annotatsioonidega mudel laseb vigased andmed läbi, on kohe jama majas. Peab olema kindluse mõttes ka serveri poolne validatsioon mudelil.