[Refactor] Introduce standard Service Layer and patterns into Web IDE backend
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
MR: Pending
Description
The Web IDE Backend/Rails code does not follow standard patterns for the backend, e.g. Service Classes in a service layer. It could and should. See https://docs.gitlab.com/ee/development/reusing_abstractions.html#service-classes
With Move extensions marketplace settings to webide ... (!157999 - merged), there is also availability of the ROP pattern for Settings, which could be more extensively used in settings, and applied elsewhere if appropriate. E.g. some logic in lib/web_ide/extensions_marketplace.rb
could be moved down into the ROP settings chain as additional steps, and the return interface could be standardized around service layer and ServiceResponse
, like the Remote Dev Workspaces domain does. See https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/lib/remote_development/README.md#layered-architecture
Acceptance Criteria
TODO: Fill out (required)
-
[Describe what must be achieved to complete this issue.] -
[Describe another requirement needed to complete this issue.] -
[Add additional acceptance criteria as needed.]
Technical Requirements
TODO: Fill out or delete (optional) [If applicable, please list out any technical requirements for this feature/enhancement.]
Design Requirements
TODO: Fill out or delete (optional) [If applicable, please provide a link to the design specifications for this feature/enhancement.]
Impact Assessment
TODO: Fill out or delete (optional) [Please describe the impact this feature/enhancement will have on the user experience and/or the product as a whole.]
User Story
TODO: Fill out or delete (optional) [Provide a user story to illustrate the use case for this feature/enhancement. Include examples to help communicate the intended functionality.]