[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.]