Skip to content

Refactor/ddd architecture and tooling#71

Open
IlyaChichkov wants to merge 3 commits intofeat/add-screenshot-capturefrom
refactor/ddd-architecture-and-tooling
Open

Refactor/ddd architecture and tooling#71
IlyaChichkov wants to merge 3 commits intofeat/add-screenshot-capturefrom
refactor/ddd-architecture-and-tooling

Conversation

@IlyaChichkov
Copy link
Copy Markdown
Owner

Refactor: DDD Architecture Migration & Workspace Standardization

Description

This PR fundamentally improves the maintainability of the codebase by executing a massive architectural refactor and standardizing the developer environment.

It transitions the project from a flat, monolithic structure into a Domain-Driven Design (DDD) architecture while establishing strict tooling and linting rules to ensure code quality moving forward.

Key Changes

Architecture & Refactoring:

  • Domain-Driven Design: Migrated flat controllers and services into logical vertical slices (e.g., Client, Colony, Pawns, System, World).
  • Service Abstraction: Split "God Helpers" (like GamePlayHelper) into focused domain services and extracted dedicated interfaces (e.g., IGamePlayService) to allow for proper Dependency Injection and unit testing.
  • Code Cleanup: Performed a global sweep to remove all unused using directives across the entire codebase.

Developer Experience (Tooling):

  • Solution Fix: Regenerated the corrupted RimApi.sln file to fully restore C# Language Server (OmniSharp/Roslyn) functionality.
  • VS Code Workspace: Added workspace-level .vscode/settings.json and tasks.json to standardize build and deployment pipelines.
  • Linting: Introduced an .editorconfig file to enforce C# formatting standards and configured VS Code to automatically organize imports on save.

Impact

These changes ensure that new developers can instantly spin up the project with working IntelliSense, automated formatting, and a predictable, domain-focused folder structure.

- Fixed corrupted RimApi.sln file to restore C# Language Server functionality.
- Added workspace-level `.vscode/settings.json` and `tasks.json` for standardized build pipelines.
- Implemented `.editorconfig` to establish and enforce C# coding standards.
- Configured VS Code to automatically organize imports on save.
- Restructured controllers and services into Domain-Driven Design (DDD) vertical slices.
- Split flat, monolithic helper classes into focused domain services with dedicated interfaces.
- Added a new REST endpoint and corresponding DTO models to extract active game alerts and notifications.
- Wired alerts data retrieval through the newly structured Client/UI domain service.
@jkbennitt
Copy link
Copy Markdown
Contributor

Awesome! I do as much as I can when using Claude to make sure we adhere to your vision. This will be extremely helpful in keeping us all focused.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants