Principle
A principle is a general rule, guideline, or value that guides decisions, behavior, or judgments.
Design for Developers
A general guideline for directing decisions about the visual and experiential qualities of a product or interface.
- How it is used
- Guides layout and visual decisions before wireframing and later interface design.
- How deep it goes
- Introduces five named fundamentals and their role in hierarchy, deferring detailed typography, color, and user-experience treatment.
- Examples
- Uses a planned-versus-unplanned house and website-layout comparison, plus wireframes as website blueprints.
- What you can do after
- Build it from scratch into a project-specific, lightweight design system and make more confident visual decisions.
Software Design for Python Programmers
A design principle is a general guideline for structuring software to improve qualities such as flexibility, correctness, and performance.
- How it is used
- Guides functions, classes, and collaborating classes toward sustainable software that handles changing requirements.
- How deep it goes
- Develops principles through before-and-after examples, iteration, implementation hiding, and tradeoffs, without prescribing one complete architecture.
- Examples
- Uses basic-feature Python programs, before-and-after comparisons, requirement changes, and iterative refactoring with backtracking.
- What you can do after
- Evaluate and improve code by isolating change, reducing dependencies, managing complexity, and selecting supporting design patterns.
Read how Software Design for Python Programmers explains principle →
Object-Oriented Software Design in C++
A design principle is a general guideline for structuring software to improve qualities such as flexibility and maintainability.
- How it is used
- Improves code and class designs while guiding iterative development toward flexible, maintainable applications.
- How deep it goes
- Explains application across lines, functions, classes, and class groups, then connects principles to encapsulation, coupling, and patterns.
- Examples
- Uses before-and-after C++ programs, iterative application development, requirements analysis, implementation hiding, and backtracking over poor decisions.
- What you can do after
- Apply design principles to improve code, manage change and complexity, and refine applications through iteration and backtracking.
Read how Object-Oriented Software Design in C++ explains principle →
Reinforcement Learning from Human Feedback
A principle is a rubric criterion expressing a desirable quality that guides evaluation without being an absolute requirement.
- How it is used
- Guides rubric-based evaluation, synthetic feedback, preference judgments, and model-behavior specification.
- How deep it goes
- Defines principles through rubric examples and contrasts them with hard rules, but does not formalize a scoring algorithm.
- Examples
- Uses museum-exhibit criteria for precision, engagement, selection, consistency, and distinctness.
- What you can do after
- Evaluate responses by writing weighted, testable criteria that distinguish desirable qualities from hard requirements.
Read how Reinforcement Learning from Human Feedback explains principle →
Related concepts
- single responsibility principleincludes · The single responsibility principle is a software design principle that gives a component one focused responsibility and one primary reason to change.
- techniquekind of · A technique is a deliberate, systematic, and repeatable method for performing a task, solving a problem, or achieving a desired result.
- principle of proximityincludes · The principle of proximity is a design principle that causes nearby elements to be perceived as related and separates unrelated elements.
- transparencyincludes · Transparency is the degree to which underlying content is visible through an element or relevant information, processes, and decisions are accessible and understandable to observers.
- SOLID principlesincludes · The SOLID principles are five object-oriented software-design principles concerning single responsibility, openness to extension, substitutability, interface segregation, and dependency inversion.
- repetitionincludes · Repetition is the recurrence or repeated application of an action, operation, element, or pattern.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.



