The Pragmatic Programmer Flashcards
What is “Software Entropy”?
Software entropy refers to the natural decline in the quality and maintainability of software over time as more changes are introduced. To combat this, actively work to keep your codebase clean, organized, and refactored.
What is “Good Enough Software”?
Good Enough Software is software that provides the necessary functionality and quality to satisfy user requirements without over-engineering or excessive development time. It emphasizes striking a balance between perfection and practical.
What does DRY stand for and what does it mean?
Don’t Repeat Yourself - Avoid duplicating knowledge in your system.
What is the main idea of orthogonality in software development?
Keep system components independent and prevent a single piece of knowledge from being split across multiple components.
What is reversibility in software development?
The ability to modify or reverse decisions made during development with minimal effort, allowing the software to adapt to changes.
What is the main goal of the Tracer Bullets development style?
To gather requirements, test designs, and implement code simultaneously, allowing for continuous feedback and incremental progress.
What is the purpose of prototyping in software development?
To create preliminary versions of components to test architectures, algorithms, interfaces, and ideas, allowing for early feedback and adjustments.
What is a Domain Language?
A custom language or notation tailored to a specific problem domain, making code more expressive and easier to understand for developers working within that domain.
What does ETC stand for and what does it mean in the context of good design in software development?
ETC stands for Easier to Change. It is a principle stating that well-designed software should be adaptable and easier to modify when requirements or circumstances change.
What are shell scripts and why are they useful?
Shell scripts are executable files containing a series of commands that are interpreted by a shell (a command-line interpreter). They automate repetitive tasks, customize your environment, and manage complex processes.
What is text manipulation, and why is it a valuable skill for developers?
Text manipulation is the ability to efficiently search, modify, and process text data, such as code or configuration files. It helps developers perform tasks more quickly, automate repetitive tasks, and analyze data efficiently.
For example, we can use text manipulation to quickly convert YAML files into JSON.