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.