|
- Created internal/constants package with organized constant files:
- timeouts.go: All time duration constants (timeouts, intervals, delays)
- channels.go: Channel buffer size constants
- limits.go: Numeric limits and configuration values
- buffers.go: Buffer size constants in bytes
- Replaced all magic numbers throughout codebase with named constants:
- Time durations (2s, 3s, 5s, 10s, 100ms, 24h) now use descriptive constants
- Buffer sizes (8KB, 64KB, 1MB) extracted to constants
- Channel buffer sizes and multipliers
- Configuration limits (max connections, concurrency, etc.)
- Health check status codes
- Percentage calculations
- Reduced code duplication in client implementations:
- Created CommonClient to share functionality between CatClient, GrepClient, and TailClient
- All three clients now inherit from CommonClient
- Eliminated duplicate makeHandler() and makeCommands() methods
- Simplified client constructors
This refactoring improves code maintainability by centralizing configuration values
and reducing redundant code across similar client implementations.
|