You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Martijn Visser (Jira)" <ji...@apache.org> on 2022/10/31 15:16:00 UTC

[jira] [Updated] (FLINK-29806) Move related class StateChangeOperation into package org.apache.flink.state.changelog.restore

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