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)