Convention over Configuration¶
A software-tool policy that infers documented defaults from recognized artifact patterns while reserving explicit configuration for exceptions.
Core Idea¶
Convention over configuration is a software-tool policy that gives a recognized artifact a documented default interpretation. If a project follows the expected name or layout, the tool infers its role; if the project must differ, the developer declares an override. The policy removes repeated conventional declarations, not all configuration.[ref-de9b2fb446a4][ref-897e8e1570fd]
Scope of Application¶
Rails Active Record maps a model class such as Book to the table books and permits an explicit self.table_name for an unconventional table. Maven assigns standard roles to paths including src/main/java and src/test/java, while allowing directory-layout settings to be overridden through the project descriptor. These are different artifacts with the same default-plus-exception pattern.[ref-de9b2fb446a4][ref-897e8e1570fd]
Clarity¶
Look for four roles: the tool applying a convention, the artifact pattern it recognizes, the role inferred without a declaration, and a supported exception mechanism. A human naming style with no executable default is only a convention. A rigid format with no override is enforcement; configuration required for every artifact is an explicit-first design.[ref-de9b2fb446a4][ref-897e8e1570fd]
Manages Complexity¶
One shared rule replaces many local mapping statements, making conforming projects terser. But the implicit rule must be learned and inspected when behavior surprises a maintainer. Exceptions can be more verbose than the common path. The payoff and the learning cost follow from the same relocation of information from project files to tool documentation.[ref-de9b2fb446a4][ref-897e8e1570fd]
Abstract Reasoning¶
The sequence is recognize pattern → infer default role → replace with explicit override when needed. A Book class is treated as mapping to books until its table name is overridden; a Maven source directory receives its standard role unless the project descriptor changes that layout.
Knowledge Transfer¶
Rails transfers from names to database tables; Maven transfers from paths to build roles. The transferable insight is not a particular spelling or directory: it is a rule that makes the common mapping implicit and the exception explicit. Before applying the analogy to another tool, verify that it actually has a documented default and supported override.[ref-de9b2fb446a4][ref-897e8e1570fd]
[^ref-de9b2fb446a4]: Ruby on Rails Guides, “Active Record Basics”, §§2, 2.1 and 4. [^ref-897e8e1570fd]: Apache Maven Project, “Introduction to the Standard Directory Layout”, opening explanation and layout table.
Neighborhood in Abstraction Space¶
Convention over Configuration sits in a sparse region of the domain-specific corpus (79th percentile for distinctiveness): few abstractions share its structure, so a faithful description tends to retrieve it precisely.
Family — Software & Systems Architecture (29 abstractions)
Nearest neighbors
- Program Transformation — 0.83
- Interface-Based Programming — 0.83
- Tacit Programming — 0.82
- Key–Value Database — 0.82
- Mass Assignment — 0.82
Computed from structural-signature embeddings · 2026-10-08