Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Flank Refactor #718

Closed
bootstraponline opened this issue Apr 14, 2020 · 2 comments
Closed

Flank Refactor #718

bootstraponline opened this issue Apr 14, 2020 · 2 comments
Assignees
Milestone

Comments

@bootstraponline
Copy link
Contributor

bootstraponline commented Apr 14, 2020

Refactor proposal from yaneq (copied from Slack)

  1. Building simple config data class from cli and config file which will be a context for next step.
  2. Validating config data class
  3. Building domain structures which should explicitly specify how to create test matrices.
  4. Uploading all required files asynchronously and updating file references in domain structures.
  5. Building and running gc test matrices from domain structures.
  6. Pooling results.
  7. Generating reports. (Partially finished)

Of course flank now fulfills those steps but there are not fully visible at first look, and some of responsibilities are mixed.

Additionally:

  • We should avoid operations on mutable data.
  • All gc operations can be hidden behind interfaces
  • We should use Displatchers.IO only in gc api layer.
  • Because flank's run has relatively simple lifecycle, we should avoid OOP, and rely on functions and structures. As Edsger Dijkstra said: "Object-oriented programming is an exceptionally bad idea", I am fully agreed with this :).
@runningcode
Copy link
Contributor

runningcode commented Apr 15, 2020

Can we maintain the current API and outputs of Flank? I worry a refactor would change these and therefore leave certain projects and plugins behind which rely on the API and outputs of flank and are unable to migrate.

@bootstraponline
Copy link
Contributor Author

Can we maintain the current API and outputs of Flank?

I agree, I see this as an internal refactor. We should make sure to maintain the current outputs and not break fladle

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants