Statement of Truth
Also see: ssg-confluence.internal.sanger.ac.uk/display/PSD/Statement+of+Truth
-
Be pragmatic not dogmatic (use common sense).
-
Follow the Style guide.
-
Adhere to Rubocop (level to be determined).
-
Test coverage should not drop.
-
Tests to be written in RSpec for new stories. If the cost of moving existing tests to RSpec is minimal it should be encouraged.
-
No more new cucumber features. If an existing feature is covered by the story it needs to be moved to RSpec integration test.
-
Methods should be declared as private in a block rather than individually.
-
Do not reinvent the wheel. Use Rails features and conventions wherever possible e.g ActiveModel::Model. Only use dynamic programming when absolutely necessary.
-
Use Factories for ActiveRecord objects and plain ruby objects wherever possible.
-
All Factories should be valid (i.e. Linted) and grouped sensibly.
-
Controllers should follow the standard Rails conventions. No business logic.
-
Add peformance tests.
-
Use performance enhancements wherever possible e.g. Pluck, eager loading.
-
Encourage reuse. Separation of concerns.
-
Remove Dangerous Artifacts.
-
Travis must pass before a branch is merged except for critical bug fixes.
-
Any gems added to the Gemfile should be annotated with a comment as to what they do and how they are being used.