Take PhoenixAccessController as an example. Over time the HBase interfaces 
change in minor ways. You’ll need different compilation units for this class to 
be able to compile it across a wide range of 1.x. However the essential Phoenix 
functionality does not change. The logic that makes up the method bodies can be 
factored into a class that groups together static helper methods which come to 
contain this common logic. The common class can remain in the core module. Then 
all you have in the version specific modules is scaffolding. In that 
scaffolding, calls to the static methods in core. It’s not a clever refactor 
but is DRY. Over time this can be made cleaner case by case where the naive 
transformation has a distasteful result. 


> On Jan 14, 2020, at 6:40 PM, Andrew Purtell <andrew.purt...@gmail.com> wrote:
> 

Reply via email to