Witam,
Od roku pracuje z Python i Django. Na początku byłem podekscytowany możliwościami tego frameworka, ponieważ wysokopoziomowa natura Pythona pozwolała mi w Django bardzo szybko tworzyć kod do małych projektów.
Teraz, gdy tego kodu mam coraz więcej do utrzymania to jest coraz gorzej, ponieważ z powodu modeli ORM ciężko jest pracować nad logiką biznesową, a tym bardziej tworzyć testy jednostkowe.
Do tej pory próbowałem upychać logikę do modeli, ale wtedy uzyskiwałem Fat Models :/ Później robiłem odwrotnie, modele robiłem możliwie lekkie, a logikę przenosiłem do funkcji pomocniczych.
Koniec końców, w dobie OOP mam wrażenie, że mój kod to same struktury i procedury :[
Pytania:
-
Jak to możliwe, że w świecie Javy i C# tak bardzo użyteczne są wzorce projektowe skoro ORM psuje hermetyzacje, abstrakcje, dziedziczenie i polimorfizm.
-
W internecie widzę czasem teksty o DDD, które mówią o warstwie modelu dziedziny. Czy ta technika jest przerostem treści nad formą? Jak używanie tej techniki ma się do języków takich jak Python, Ruby, PHP?
-
Jakimi książkami powinienem się zainteresować, żeby dowiedzieć się jak lepiej projektować?