Yogesh Gandhi wrote:Please share your thoughts.
Existing functionality that behaves slightly differently. You could think of these as you might like "overriding" a method or creating a polymorphic class in Java
Yogesh Gandhi wrote:Our product is well established in market, and has many versions (one for each client).
Do you mean we need to write the product from scratch?
Our target is to reduce the merging effort to the minimal.
There are lacs of product companies in the world.
There must be some mechanism or design strategy to make this approach work.
Yogesh Gandhi wrote:In the overridden method, we copy paste the code from parent class and make the changes in the overridden method.
So, do you mean that each client has their own version of ALL your product code? Sounds like a nightmare to me.
Whoa right there hoss. The second you say "copy/paste", alarm bells go off in my head. That is NOT Object-orientation. It's not even modularity. It's somebody's lazy idea of how to create a new implementation. Sure, it might work for a while, but you'll soon run into problems.
Yogesh Gandhi wrote:Not really, we do not really copy/paste the code. We are thinking on the lines, how to make the existing framework such that there will be least of merging effort.
Yogesh Gandhi wrote:Lets say a customization comes to change a calculation logic.
I am thinking how will we achieve the effect that any changes in core ccan be brought into child stream without the need for merging. What we want is that we should be able to copy paste complete files from core into child stream without the need for merging.
All of the world's problems can be solved in a garden - Geoff Lawton. Tiny ad:
RavenDB is an Open Source NoSQL Database that’s fully transactional (ACID) across your databasehttps://coderanch.com/t/704633/RavenDB-Open-Source-NoSQL-Database