﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Ayende @ Rahien</title><link>http://ayende.com</link><description>Ayende @ Rahien</description><copyright>Copyright (C) Ayende Rahien  2004 - 2021 (c) 2026</copyright><ttl>60</ttl><item><title>Ayende Rahien commented on Limit your abstractions: Application Events&amp;ndash;Proposed Solution #1</title><description>Rafal,
Baby steps, I am doing this one step at a time.</description><link>http://ayende.com/153953/limit-your-abstractions-application-events-proposed-solution-1#comment7</link><guid>http://ayende.com/153953/limit-your-abstractions-application-events-proposed-solution-1#comment7</guid><pubDate>Tue, 07 Feb 2012 21:21:33 GMT</pubDate></item><item><title>Craig Wilson commented on Limit your abstractions: Application Events&amp;ndash;Proposed Solution #1</title><description>Yeah, not sure this is the correct method.  Events should get raised from inside entities/aggregates when it makes sense, not services.  In this particular case, there is already a place to raise these 2 events; cargo.DeriveDeliveryProgress.

Ultimately though, when looking at this, I believe the abstractions are just wrong.  We shouldn't need to call DeriveDeliveryProgress to figure out that the cargo was misdirected.  It seems there are some missing concepts in here.  Alas, I'm not a domain expert so I can't say for sure, but this whole bit of code seems odd.</description><link>http://ayende.com/153953/limit-your-abstractions-application-events-proposed-solution-1#comment6</link><guid>http://ayende.com/153953/limit-your-abstractions-application-events-proposed-solution-1#comment6</guid><pubDate>Tue, 07 Feb 2012 13:14:52 GMT</pubDate></item><item><title>Mani commented on Limit your abstractions: Application Events&amp;ndash;Proposed Solution #1</title><description>Not sure where the responsibility is pushed to now.  Could we have bit more of this code snippet </description><link>http://ayende.com/153953/limit-your-abstractions-application-events-proposed-solution-1#comment5</link><guid>http://ayende.com/153953/limit-your-abstractions-application-events-proposed-solution-1#comment5</guid><pubDate>Tue, 07 Feb 2012 12:26:54 GMT</pubDate></item><item><title>Rafal commented on Limit your abstractions: Application Events&amp;ndash;Proposed Solution #1</title><description>I don't understand one thing: why do you insist on having the Inspect(Cargo) method? It's unclear who should call it and when and it also shouldn't be called multiple times or event duplication will occur (and it looks innocent and safe to inspect a cargo as many times as you want). Why the event logic isn't triggered by actual cargo events occuring, for example by information about cargo being delivered/lost/mis-delivered/and so on and instead you are relying on analyzing event history during  inspection?</description><link>http://ayende.com/153953/limit-your-abstractions-application-events-proposed-solution-1#comment4</link><guid>http://ayende.com/153953/limit-your-abstractions-application-events-proposed-solution-1#comment4</guid><pubDate>Tue, 07 Feb 2012 12:04:25 GMT</pubDate></item><item><title>jjchiw commented on Limit your abstractions: Application Events&amp;ndash;Proposed Solution #1</title><description>This is like the Chain of Responsability pattern....</description><link>http://ayende.com/153953/limit-your-abstractions-application-events-proposed-solution-1#comment3</link><guid>http://ayende.com/153953/limit-your-abstractions-application-events-proposed-solution-1#comment3</guid><pubDate>Tue, 07 Feb 2012 11:58:57 GMT</pubDate></item><item><title>Ryan Heath commented on Limit your abstractions: Application Events&amp;ndash;Proposed Solution #1</title><description>One thing what we miss from the original code is the sequence of event handling. I do not know if it is really important but your (current) solution doesn't safeguard for those situations.

// Ryan</description><link>http://ayende.com/153953/limit-your-abstractions-application-events-proposed-solution-1#comment2</link><guid>http://ayende.com/153953/limit-your-abstractions-application-events-proposed-solution-1#comment2</guid><pubDate>Tue, 07 Feb 2012 08:38:50 GMT</pubDate></item><item><title>Frank Quednau commented on Limit your abstractions: Application Events&amp;ndash;Proposed Solution #1</title><description>That's all fine and such, but you haven't limited your abstractions, you sliced the system differently. I admit it is a more favorable structure for the reasons you state, alas your code also has abstractions. in fact every time you extract a method or introduce a new class you are introducing an abstraction. 

Hence I would say it is not about limiting your abstractions, it is about choosing the correct ones.</description><link>http://ayende.com/153953/limit-your-abstractions-application-events-proposed-solution-1#comment1</link><guid>http://ayende.com/153953/limit-your-abstractions-application-events-proposed-solution-1#comment1</guid><pubDate>Tue, 07 Feb 2012 08:32:53 GMT</pubDate></item></channel></rss>