Add backend guide for Dependency Injection
What does this MR do?
We had a discussion on Slack regarding the use of Dependency Injection at GitLab (or rather, the lack thereof.)
I put together some guidance why and when I think DI can be a useful technique that we should adopt more, though it may not be universally applicable (for instance, ActiveRecord does not lend itself well to DI since it evolves around global access paths.)
I believe we can make parts of the GitLab code base more modular and easier to extract if we use DI more rigorously. This will also help moving towards a Composable Codebase and support future library extractions.
Preview
http://main-ee-73644.178.62.207.141.nip.io/ee/development/design_guidelines.html
Author's checklist
-
Consider taking the GitLab Technical Writing Fundamentals course -
Follow the: -
Ensure that the product tier badge is added to topic's h1
. -
Request a review based on: - The documentation page's metadata.
- The associated Technical Writer.
If you are only adding documentation, do not add any of the following labels:
~"type::feature"
~"frontend"
~"backend"
~"type::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 likeDefault behavior when you close an issue
. -
The headings (other than the page title) should be active. Instead of Configuring GDK
, say something likeConfigure 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.