Unix/Linux Philosophy
Core Principles
- Do one thing well - Each program/function should have a single purpose
- Compose with others - Design for pipelines and composition
- Text streams - Use text as universal interface
- Small, sharp tools - Prefer focused tools over monolithic solutions
- Fail fast, fail loudly - Exit on error with clear messages
Design Guidelines
- Prefer explicit over implicit behavior
- Make default behavior safe; require flags for dangerous operations
- Support stdin/stdout for composition
- Use exit codes meaningfully (0=success, non-zero=error)
- Write to stderr for diagnostics, stdout for output
Checklist
- [ ] Single responsibility per module/function
- [ ] Composable via standard I/O
- [ ] Clear error messages to stderr
- [ ] Meaningful exit codes
- [ ] No hidden side effects
微信扫一扫