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

Refactor #8

Merged
merged 24 commits into from
Aug 2, 2016
Merged

Refactor #8

merged 24 commits into from
Aug 2, 2016

Conversation

Bigomby
Copy link
Contributor

@Bigomby Bigomby commented Jul 22, 2016

Refactored the application to make it simplier. The point is to have a minimal core and multiple reusable plugins to add functionality.

  • No bidirectional references between structs.
  • Remove logic that can be built into a plugin (limiter)
  • Safe use of channels
  • Use interfaces to hide implementation
  • Loosely coupled modules
    • Reporter
    • Pipeline

Closes #6

- Removed cyclic dependency message <-> backend
- Moved logic from message to rbforwarder. Messages is now a simple
  struct.
@Bigomby Bigomby self-assigned this Jul 22, 2016
- Components can import package "pipeline" instead the whole rbforwarder
  package
- Component Helpers are not needed anymore
- Produce now takes a second arguments to pass user data
- Refactored tests
Race condition avoided
Not multiple getReports() can be used
Message limiting will be implemented as a module
@Bigomby Bigomby force-pushed the feature/refactor branch 2 times, most recently from e519f23 to 620aaf4 Compare July 27, 2016 12:59
- Report type now is only for presentation. No logic at all.
- New message handler to deal with retries and reporting
- More interfaces. Less implementation details.
- Reduced complexity (less gorutines, less channels, less is more)
- New backend allows to create a custom pipeline
- Safe way to close channels
@coveralls
Copy link

coveralls commented Aug 2, 2016

Coverage Status

Coverage increased (+43.8%) to 100.0% when pulling 1fc2fac on feature/refactor into a6a903f on develop.

@Bigomby Bigomby merged commit 983b9da into develop Aug 2, 2016
@Bigomby Bigomby deleted the feature/refactor branch August 2, 2016 08:23
Bigomby added a commit that referenced this pull request Oct 3, 2016
Refactor the application to make it simplier.

The point is to have a minimal core and multiple reusable plugins to add functionality.

- No bidirectional references between structs.
- Remove logic that can be built into a plugin (limiter)
- Safe use of channels
- Use interfaces to hide implementation
- Loosely coupled modules
  - Reporter
  - Pipeline 

Closes #6
Bigomby added a commit that referenced this pull request Oct 18, 2016
Refactor the application to make it simplier.

The point is to have a minimal core and multiple reusable plugins to add functionality.

- No bidirectional references between structs.
- Remove logic that can be built into a plugin (limiter)
- Safe use of channels
- Use interfaces to hide implementation
- Loosely coupled modules
  - Reporter
  - Pipeline 

Closes #6
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

Successfully merging this pull request may close these issues.

None yet

2 participants