Skip to content

Convention over Configuration

A software-tool policy that infers documented defaults from recognized artifact patterns while reserving explicit configuration for exceptions.

Version
v1 · 2026-10-03 · History
Domain-specific #
13094
Domain group
Applied Sciences & Engineering
Origin domain
Computer Science & Software Engineering
Subdomain
Software Frameworks → Computer Science & Software Engineering
Aliases
Convention over Configuration Principle

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

Computed from structural-signature embeddings · 2026-10-08