438 reputation
29
bio website twitter.com/SystematicFrank
location Munich, Germany
age
visits member for 3 years, 6 months
seen Feb 10 at 7:38

Software Engineer/Programmer/Developer and all that applies ;-)


Jan
4
comment Is depending on lazy loading a code smell?
Just a few days later and I have run into a situation where I am so relieved I forced myself to reference entities just by ID and avoid hiding a query with lazy loading. While lazy-loading stops the load of a huge nested data set into memory, it makes easier running into the problem of serializing an Entity into a huge document (like JSON for a web interface) and having to 'rethink' one extra model to export my data outside my Domain layer.
Jul
19
comment Complex fetching of Domain Objects
mmm... just reading my previous comment I realized that ProjectRepository::getTasks(project) is not so bad. I refused the idea of a plain query like that because I was thinking in a "tree like" access ... however now I am thinking about an enhanced query object that provides such tree like access abstraction with the persistance layer. Never saw a tree result Query class, but that might fit the bill. Time to research again. Thanks for the inspiration
Jul
19
comment Complex fetching of Domain Objects
I would love to manage Task objects through an aggregate with Project as root. However it's my understanding that aggregates should be pulled all at once. Whenever I see danger of an Entity pulling out too many associations, I split the aggregate. Still I want a class that given one single Project, it takes care of fetching/adding and cascading the deletions. Sounds like a repo, but ProjectRepo and TaskRepo serve other type of queries. Sounds like an aggregate, but then, aggregates should be repo agnostic. Right? Hence I try to cheat the golden rules with a Service emulating an Aggregate
Jul
19
comment Complex fetching of Domain Objects
I believe that there are common DDD solutions to this problem without lazy loading. Looking back at my own code in previous projects, I realize that lazy loading was most of the time a comfortable way to ignore architecture problems. I do not wan to give up so soon
May
3
comment Unique Value Object vs Entity
Interesting... as a side effect of understanding better this difference, now I can clearly see the importance of stateless/inmutable value objects in order to improve my programs stability. I guess I was thinking too much about GUI implementation details... easy mutation is nice in the Application Layer, but in the Domain Layer I do want the AdvertisementEvent to be inmutable!
May
3
comment Unique Value Object vs Entity
Thanks so much! Despite reading so many times about asking that question to differentiate Entities from Value Objects, this time it has finally "clicked". I guess I needed a problem in my real life to learn that lesson. I love my problem because it exposed en Event Object (which is not a Domain Event) and what seems to be uniqueness (which is an invariant). I guess that in my question I should have said "invariant" instead of "transactional integrity rule".
Nov
1
comment What keywords are important to speedup the code in C++?
@EtiennedeMartel, that is a great link, it is specially reliable coming from Herb Sutter. I also think that const is for humans. It ease understanding code making clear which variables will change or which functions change the object. Notice that he is asking for keywords and I tried to give him some. Still some compilers could do something. The problem is that every compiler optimize different. Also using "explicit" will for sure not optimize anything, but helps pointing interesting spots. The real value is at the end, about how Fortran operates on a matrix and data oriented design
Oct
31
comment What is the role of C++ today?
You should have a look at Herb Sutter talk. He is one of the big C++ guys. The video es also quite recent. channel9.msdn.com/posts/C-and-Beyond-2011-Herb-Sutter-Why-C
Oct
31
comment What keywords are important to speedup the code in C++?
@FrustratedWithFormsDesigner, and so I felt compelled to add point 5 and 6 ... ;-) In the case of inline they do a good job. On one hand the programmer can abuse and have inline when the compiler would not use them, on the other some compilers ignore the user completly, like the keyword "register" and I believe that most compilers today completely ignore it.
Feb
18
comment How to provide value?
@fuzzy Well, that was my point. Not everybody do things the right way under pressure. Sometimes I am told that certain things are secondary, but I know perfectly (and better) that ignoring them will make my life and the one of my colleagues a nightmare... I will get a new client later anyways. So what can I do to leave some good value behind?
Feb
18
comment How to provide value?
@FrustratedWithFromsDesigner... I meant nice clandestine improvements like unit tests that no-one wants to write ;-)