Skip to content

Development guideline Docs: Not everything is a service object

Thong Kuah requested to merge docs-service-object into master

What does this MR do?

Not everything is a service object

Clarify what is a service object, and alternatives if the object is not a service object

Why

The short answer is that we have a convention. The longer answer is that we do not want service classes to be a generic classes that can be anything, it needs to share a common set of traits (like passing the current_user, and having params).

Classes that do not conform to this convention probably benefits from moving away from being a service class, and not being restricted to execute interface un-necessarily.

See also https://gitlab.slack.com/archives/CJHPLRTRD/p1632278528082800 (internal), and also !66735 (comment 685940799)

/cc @gitlab-org/maintainers/rails-backend /cc @splattael @minac

Related issues

Author's checklist

If you are only adding documentation, do not add any of the following labels:

  • ~"feature"
  • ~"frontend"
  • ~"backend"
  • ~"bug"
  • ~"database"

These labels cause the MR to be added to code verification QA issues.

Review checklist

Documentation-related MRs should be reviewed by a Technical Writer for a non-blocking review, based on Documentation Guidelines and the Style Guide.

  • If the content requires it, ensure the information is reviewed by a subject matter expert.
  • Technical writer review items:
    • Ensure docs metadata is present and up-to-date.
    • Ensure the appropriate labels are added to this MR.
    • If relevant to this MR, ensure content topic type principles are in use, including:
      • The headings should be something you'd do a Google search for. Instead of Default behavior, say something like Default behavior when you close an issue.
      • The headings (other than the page title) should be active. Instead of Configuring GDK, say something like Configure GDK.
      • Any task steps should be written as a numbered list.
      • If the content still needs to be edited for topic types, you can create a follow-up issue with the docs-technical-debt label.
  • Review by assigned maintainer, who can always request/require the above reviews. Maintainer's review can occur before or after a technical writer review.
  • Ensure a release milestone is set.
Edited by Thong Kuah

Merge request reports