8. Cross-cutting Concepts¶
8.1 Error Handling¶
Scenario |
Handling |
|---|---|
Malformed header (non-integer R or C) |
Undefined — kata assumes well-formed input. |
Grid row shorter than declared column count |
Undefined — kata assumes well-formed input. |
Empty stdin |
Parser returns empty vector; no output is produced. |
The kata specifies valid input only. No defensive error handling is required beyond graceful termination on 0 0.
8.2 Logging¶
No logging is required. The application is a batch console tool with no persistent state or operational monitoring needs.
8.3 Testability¶
Each component exposes a pure function interface, making unit testing straightforward without I/O mocking:
Component |
Testable unit |
|---|---|
Input Parser |
|
Field Processor |
|
Output Formatter |
|
8.4 Coding Conventions¶
C++17 standard.
No global mutable state.
Each component implemented as a free function or a small stateless struct.