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

2017 Q1 refactor. #91

Open
george-carlin opened this issue Dec 16, 2016 · 0 comments
Open

2017 Q1 refactor. #91

george-carlin opened this issue Dec 16, 2016 · 0 comments

Comments

@george-carlin
Copy link
Owner

Development is slowing down and the codebase is starting to creak under its own weight. I want to take some time to clean up, rearrange, and refactor the codebase, so that development can continue happily. It's also time to rethink some fundamentals of our architecture, particularly the way we use Rails.

This issue is a placeholder for my thoughts on how we can handle this; I'll update it as I make some decisions.

Firstly, here are the current major pain points:

  1. slow tests, especially feature tests, ESPECIALLY feature tests that use javascript.
  2. no clear structure to the view layer and separation of concerns between models and display logic.
  3. tight coupling between HTTP and the app's business logic.
  4. very tight coupling between the business logic and the persistence layer.
  5. huge and unwieldy routes file that should probably be split up.
  6. slow compile time for JS. We're still split between this weird "asset pipeline + NPM" approach that really needs to go.
  7. Rails autoloader is causing more and more problems.

And the biggest problem of all: a combination of points 3 and 4 above means that it's practically impossible to test anything in isolation, and we have to load the entire damn rails environment just to run a simple spec file. This is the number one problem I want to solve (and, as I'm slowly starting to understand, it's largely the result of poor design choices within Rails itself)

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

1 participant