Question
When do we need to create just a framework layer and and when do we create Framework layer and implementation layer?
When do we actually need to create Framework layer? I feel for any kind of automation we want to do we should start with creating Framework layer. Because we never know if there is or there is no chance of of a specific implementation for the problem we are trying to automate. Is this correct?
When do we actually need to create Implementation layer? What is the trigger point which forces us to create a implementation layer? If there are no specifics for an implementation should we still create implementation layer?
SSA content says 'One key aspect to the implementation layer is that this is where any of our work classes should be instantiated'. So regardless of whether there are specifics in terms of implementation we should create implementation layer on top of Framework layer?
**Moderation Team has archived post**
This post has been archived for educational purposes. Contents and links will no longer be updated. If you have the same/similar question, please write a new post.
First of all whether or not create a framework layer does not belong in an SSA course since that is an LSA level decision. The "must have a different class in Production" argument is false. Y-axis is ruleset, X-axis is class. For the first implementation you move up the Y-axis. Only for the second implementation - if and when there ever is one - do you need to move to the right to create a different class.
There is nothing wrong with the idea of framework except its name. What you aim for is Model Driven Architecture. If you know there is the possibility for multiple layers, in the lower layer you abstract a model - similar to using the Template design pattern. In that pattern you do not do everything. Instead you define a blueprint for solving a problem. Distinct implementations can follow the same blueprint simplifying maintenance while increasing development speed.
That said there are numerous situations where there would only ever need to be one implementation.
If you were a software vendor, you could decide to only build frameworks, customers completing the implementation (filling out the template).
If you worked for such a customer would your first decision be building yet another framework layer for the first implementation knowing that you can use ruleset override at any point in the future if truly necessary?