[
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)