[ 
https://issues.apache.org/jira/browse/FLINK-29806?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Martijn Visser updated FLINK-29806:
-----------------------------------
    Fix Version/s:     (was: shaded-16.0)

> 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
>            Priority: Major
>         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