Hacker News new | ask | show | jobs
by Spearchucker 3280 days ago
I've seen this a few times before, and it led me to believe that I was stupid. Comments like "...business rules simply don’t know anything at all about the outside world" left me wondering what components that DO know something about the outside world, actually know about the outside world?

Turns out that the answer is a data access component might know where to find a database, and a client app might know where to find a web service. These things were rather obvious to me, so I failed by trying to find loftier answers. Which probably says a lot of about how I think.

Also, the concentric circles did nothing for my way of thinking, as messages are linear - they start from a place, and they end in a place. Thus a stack was a lot easier for me to digest than these concentric circles.

And finally, the ambiguous language. Why should I care that there are enterprise business rules, and application business rules? They're both rules. Rules go into a component in the middle, or business layer.

And thus I found it a lot more useful to think of app design in terms of vertical tiers (hardware abstractions), and layers (software abstractions). Tiers include perimeter, DMZ and corpnet, and layers include (but not limited to) user interface, façade/service gateway, business layer, and data layer. With some cross-cutting concerns like comms, security and operational management (logging, exceptions and so on).

I don't think either is better than the other. It was, however, the first time I really understood that two people can be very knowledgeable about the same thing, and yet speak using a completely different vocabulary.

1 comments

>Also, the concentric circles did nothing for my way of thinking, as messages are linear - they start from a place, and they end in a place. Thus a stack was a lot easier for me to digest than these concentric circles.

Messages might be linear but scopes are encompassing inner scopes. Encapsulation is not usually depicted as a stack.

>And finally, the ambiguous language. Why should I care that there are enterprise business rules, and application business rules? They're both rules.

Obviously because different scopes apply to the former than to the latter. TFA even clarifies that: "The key is that they ("enterprise business rules") contain rules that are not application specific - so basically any global or shareable logic that could be reused in other applications should be encapsulated in an entity".

In general, the similarities ("they're both rules") between two things don't say much (if anything at all) without considering the differences. Shiitake and Amanita Muscaria are "just mushrooms", but one can kill you.

> Messages might be linear but scopes are encompassing inner scopes. Encapsulation is not usually depicted as a stack.

It can be, as concentric circles and stacks are isomorphic. What can be represented by one can be represented by other. Examples of dealing with scopes as stacks would probably be familiar to anyone working with C, C++ and other languages with stack-based local variables - your scopes there literally correspond to what's on a stack. Similarly, lexical scoping can be seen as a sequence (i.e. a stack) of associative containers.

(Hell, you can see concentric circless as a Tower of Hanoi viewed from top - i.e. a stack (albeit inverted in this case - I'd put the innermost circle at the bottom of the stack).)

I understand GP's pain because I too would prefer the same diagram as a simple stack of abstraction layers. But then again, such diagrams almost never work without corresponding textual explanation anyways, so it doesn't matter much how the diagram looks as long as the companion text is OK :).

As an aside: according to wikipedia, there are no recorded deaths from ingestion of Amanita Muscaria. It's not really a poisonous mushroom, though it can have intense psychoactive effects when taken in large quantities.
>As an aside: according to wikipedia, there are no recorded deaths from ingestion of Amanita Muscaria.

Well, the Wikipedia lemma puts it this way:

  Although classified as poisonous, reports of human deaths 
  resulting from its ingestion are extremely rare. A fatal 
  dose has been calculated as 15 caps.[55] Deaths from this 
  fungus A. muscaria have been reported in historical journal 
  articles and newspaper reports,[56][57][58] but with modern 
  medical treatment, fatal poisoning from ingesting this 
  mushroom is extremely rare.[59] Many older books list 
  Amanita muscaria as "deadly", but this is an error that 
  implies the mushroom is more toxic than it is.[60] The 
  North American Mycological Association has stated that 
  there were: "no reliably documented cases of death from 
  toxins in these mushrooms in the past 100 years".