Notes from: Basics of the Unix Philosophy
High Level Rules
- Rule of Modularity: Simple parts with clean interfaces.
- Rule of Clarity: Being clear > clever.
- Rule of Composition: Design programs to be connected. (Think
cat data*.json | jq) - Rule of Separation: Keep policy and mechanisms separate. Keep interfaces from engines.
- Rule of Simplicity: Design for simple. Add complexity when needed.
- Rule of Parsimony: Write big programs when it’s clear and demonstrated nothing else will do.
- Rule of Transparency: Design for visibility to ease inspection and debugging.
- Rule of Robustness: Child of transparency and simplicity.
- Rule of Representation: Fold knowledge into data, so program logic can be stupid and robust.
- Rule of Least Surprise: In interfaces, always do the least surprising thing.
- Rule of silence: When a program has nothing to say, then it should say nothing.
- Rule of Repair: When you must fail, fail noisily and as soon as possible.
- Rule of Economy: Conserve programmer time over machine time.
- Rule of Generation: Avoid hand-hacking. Write programs to write programs when you can.
- Rule of Optimization: Prototype before polishing. Get working before optimizing.
- Rule of Diversity: Distrust all claims for “one true way”.
- Rule of Extensibility: Design for the future, because it will be here sooner than you think.