Sorry, Ralf.
But this isn't the point.
> conventions of the ZF to save my time and concentrate on business logic
This sentence is especially dangerous.
*Concentrating* on business *logic* (concept or model is a better word)
doesn't include any conventions from the outside but only that of the
business itself.
That term, "business logic", is stretched alot but almost never used
right. And I will fight again and again to clear that up :-)
The point is to create software that is aimed to solve some (business)
problems or that helps in execution of something expressed in concepts
and code.
What every developer (hopefully) wants, that is a piece of software that
is robust and maintainable and doesn't outdate when something new
happens outside.
Maintanability comes as the most important feature of every software
that aims to be used in long-terms.
It includes flexibility, scaleability, changeability and so on.
Your business is selling books, right?
You need a piece of software that supports you in doing your business.
The *concepts* behind your business could be some of the followings:
- List all my customers by flexible and complex filters
- An order can have many different order lines
- List the orders of a specific customer
- An order must have a customer, an orderline must have an order
and so on...
Are there any words or concepts like database, controller, framework,
view, model, soap, web services, soa or any other technical and not
business-relevant thing in it?
Does this change in five years?
Or does it change with the evolving of new databases, frameworks and
other technologies?
No, you are still selling books and the concepts behind your business
stay the same.
If you design this *right* you can use every framework, every database,
every technology that may come or go and even switch between the
programming language.
Naturally not without sweat, translation has its costs.
And if you need to scale up and your system does not support this, well,
change it or enhance it.
And of course it's not only the technology, almost more important are
the changing business requirements you can change easily because they
are not coupled on external factors.
*That* is concentrating on business *concepts*.
Surely, it comes with a price.
As a experienced developer you know that there will be things like
persistance (database, files, xml), communication with other systems,
using frameworks, workflow or rule engines, perhaps data-mining and so on.
But it should *not* affect your business concepts.
At least to an absolutely required minimum.
Try to avoid it where possible, fight to your teeth against them.
I know, every absolute and extreme requirement affords extreme work.
But you should fight every day against outside influences that try to
pollute your business concepts.
Hope, it's a little clearer now.
I don't have anything against ZF or any other framework, I still use
them myself whenever I have the needs for them. My time is also very
limited :-)
But I can't hear it anymore when people think that the framework is part
of their business logic in any kind of flavor.
It isn't and should never be.
Cheers,
Nino