No description
Addresses Verbesserungspotential 2 (Error Handling uneinheitlich) by introducing a comprehensive, structured error handling approach across all architectural layers. ## New Domain Error System - Add ErrorCode enum with 15 semantic error types (NOT_FOUND, VALIDATION_FAILED, etc.) - Implement DomainError struct with operation context, resource identifiers, and regions - Create resource-specific error constructors (NewAppError, NewInstanceError, NewCloudletError) - Add utility functions for error type checking (IsNotFoundError, IsValidationError, etc.) ## Service Layer Enhancements - Replace generic fmt.Errorf with structured domain errors in all services - Add comprehensive validation functions for App, AppInstance, and Cloudlet entities - Implement business logic validation with meaningful error context - Ensure consistent error semantics across app_service, instance_service, cloudlet_service ## Adapter Layer Updates - Update EdgeConnect adapters to use domain errors instead of error constants - Enhance CLI adapter with domain-specific error checking for better UX - Fix SDK examples to use new IsNotFoundError() approach - Maintain backward compatibility where possible ## Test Coverage - Add comprehensive error_test.go with 100% coverage of new error system - Update existing adapter tests to validate domain error types - All tests passing with proper error type assertions ## Benefits - ✅ Consistent error handling across all architectural layers - ✅ Rich error context with operation, resource, and region information - ✅ Type-safe error checking with semantic error codes - ✅ Better user experience with domain-specific error messages - ✅ Maintainable centralized error definitions - ✅ Full hexagonal architecture compliance Files modified: 12 files updated, 2 new files added Tests: All passing (29+ test cases with enhanced error validation) |
||
|---|---|---|
| .claude | ||
| .github/workflows | ||
| api | ||
| internal | ||
| sdk | ||
| .envrc.example | ||
| .gitignore | ||
| .goreleaser.yaml | ||
| apply-todo.md | ||
| apply.md | ||
| config.yaml.example | ||
| devbox.json | ||
| devbox.lock | ||
| Dockerfile | ||
| flake.lock | ||
| flake.nix | ||
| go.mod | ||
| go.sum | ||
| hexagonal-architecture-proposal.md | ||
| main.go | ||
| Makefile | ||
| plan.md | ||