Skip to content

Refactor: Separate File Identification, Database Operations and Download in different packages #1086

@sieberss

Description

@sieberss

Description

Problem:

I wanted to implement parallel downloading and inspected the code for this issue. But I could not find a single method that executes sequential download and could be changed for parallel work.
There are several files where some part of the download action happens, but this is always mixed with Database manipulation and and handling of URLs. So I can't identify the code which can be parallelized.

Furthermore there are some very complex methods that need refactoring to be understandable.
I executed a code check with Sonarcloud that considered several methods too complex. And many other issues were found. Here you can see the result:
[https://sonarcloud.io/project/issues?impactSeverities=HIGH&issueStatuses=OPEN%2CCONFIRMED&id=sieberss_Drifty]

My Suggestion

  • extract all database operations and URL handling from existing code to new Classes and provide them as public methods
  • put these classes in separate packages in Core module
  • use package and class names only once, combine files with same name at one central place
  • rename some classes and packages to better express their purpose

Advantages

  • code becomes easier to understand
  • it will be faster to find the code where changes have to take place
  • better maintenance
  • changes in database (e.g. other DBMS, use of frameworks like Hibernate) can be made with low programming effort
  • possibility to integrate Drifty in something like a Spring application

Additional information

No response

Do you want to work on this issue?

Yes

Metadata

Metadata

Assignees

Labels

App 💻Issues/Pull Requests which update Drifty Application CodemaintenanceThis issue/PR is concerned about maintenance updates

Projects

Status

Todo

Relationships

None yet

Development

No branches or pull requests

Issue actions