mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2026-10-08 08:10:26 -04:00
2.6 KiB
2.6 KiB
CubicSDR Improvement Plans
Detailed implementation plans for each recommendation. See RECOMMENDATIONS.md for the full evaluation and summary.
Last Updated: 2026-07-23
Architecture Documentation
Design documents covering the system architecture are in docs/design/:
| Document | Description |
|---|---|
| Architecture Overview | Directory layout, key classes, quick reference |
| Signal Flow | Data path from SDR hardware to audio output |
| Threading Model | Thread inventory, synchronization, lifecycle |
| Modem System | Plugin architecture, factory pattern, available modems |
Plans
| Plan | Risk | Effort | Dependencies |
|---|---|---|---|
| Fix .gitignore | None | 5 min | None |
| Add Unit Tests | Low | 2-3 days | None |
| Replace reinterpret_cast Type Punning | Low | 1 day | None |
| Modernize CMake | Low-Medium | 1-2 days | None |
| Split AppFrame.cpp | Low | 1 day | None |
| Resolve Open TODOs | Low | 1 day | split-appframe, replace-reinterpret-cast |
| Replace Raw new/delete with Smart Pointers | Medium | 1 day | None |
| Remove MSVC C4996 Suppression | Medium | 1-2 days | None |
| Add CI Test Execution | Low | 2 hours | add-unit-tests |
| Update Vendored Dependencies | High | 3-5 days | None |
Recommended Execution Order
Execute in this order to minimize risk and satisfy dependencies:
- Fix .gitignore — Zero risk, immediate value, unblocks clean builds
- Add Unit Tests — Foundational; enables test-driven work on subsequent plans
- Add CI Test Execution — Locks in test infrastructure before code changes
- Replace reinterpret_cast — Low risk, standalone, improves correctness
- Modernize CMake — Low-medium risk, standalone, enables better build practices
- Split AppFrame.cpp — Low risk, standalone, reduces cognitive load for later work
- Resolve TODOs — Depends on AppFrame split and reinterpret_cast replacement
- Replace Raw new/delete — Medium risk; do after tests exist to catch regressions
- Remove C4996 Suppression — Medium risk; requires touching many files
- Update Vendored Dependencies — Highest risk; do last, requires extensive testing