views:

213

answers:

2

What I am looking for is some overview of "design patterns", but not on the coding level (factory, singleton, mvc, ...) but on the business logic level.

In other words: The layer between coding logic and domain logic.

I don't know if that is understandable, so here are some typical business logic pattern questions for an ERP application:

  • When two or more users are working on the same order, do I lock it? How can I avoid concurrent writes which might destroy the other users' work?
  • How to I create a unique complex order number, which follows certain rules? Do I use a central server/service or are there better de-centralized methods?
  • How do I create reports? Is it better to use a reporting server (Crystal Reports 2008 for example) or is it better to let every workstation create its own reports?
  • During accounting, what rules do I have to follow to avoid rounding problems?
  • For statistics, do I always recalculate all values (total value of all orders, for example) or do I make 'rolling' statistics, which are just updated whenever one of the base values changes (value of a single order)?
  • ...

Just for clarification: I don't need quick answers for these questions, but I rather want to know a good source of information, where questions like these are answered and/or discussed. (Books, Internet, ...)

+2  A: 

What you're describing sounds like Technical Architecture. Although you might also want to look into Solution Architecture and a book called Analysis Patterns by Martin Fowler.

d4nt
A: 

For these kinds of questions, I've personally always gotten the best advice from people I actually met in person via AITP or people I know from my personal network. I usually have to explain the problem to them (so a whole conversation is usually required, not a simple Q&A).

Most of the questions you listed look like they could have multiple answers, I find that online examples are often too shallow to solve real issue.

Depending on your market vertical, there is usually a publication which gives a good high-level view of current business problems (an example from accounting would be Disclosures). I'd use whatever publication pertains to your business to get a start on finding others/competitors that have tackled specific business issues.

In the general case, I'd just ask the question here or on Refactor My Code, they are two of my best resources.

Hope that helps!

Zachary Yates