senbork created FLINK-29806:
-------------------------------

             Summary: Move related class  StateChangeOperation  into package 
org.apache.flink.state.changelog.restore
                 Key: FLINK-29806
                 URL: https://issues.apache.org/jira/browse/FLINK-29806
             Project: Flink
          Issue Type: Improvement
            Reporter: senbork
             Fix For: shaded-16.0
         Attachments: StateChangeOperation-java.png

*Issue Description*

 ** 

Package _*org.apache.flink.state.changelog*_ groups together miscellaneous 
classes that might be useful to different packages. The package structure 
violates the “high cohesion and low coupling” design rules. I found that class 
*_StateChangeOperation_* strongly interacts with classes in the other package 
({*}_org.apache.flink.state.changelog.restore_{*}) by checking the source code 
and the snippet of the dependency graph in the attachments. The project has 
grown larger, leading to becoming increasingly hard to maintain. During the 
development process, one groups together classes (that often co-change) with 
similar responsibilities in one package to facilitate maintenance, which 
prevents a change that causes other packages to be modified. For example, if 
one modifies package _*org.apache.flink.state.changelog*_ (i.e., package 
rename), resulting in multiple classes of package 
*_org.apache.flink.state.changelog.restore_* __ to be changed.

 

Location: The source file can be found at path File  
flink-statebackend-changelog/src/main/java/org/apache/flink/state/changelog/StateChangeOperation.java

 ** 

*Refactoring suggestions*

 

I suggest to move related class  {*}_StateChangeOperation  into package 
org.apache.flink.state.changelog.restore_{*}.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to