Metaphors We Code By: The Hidden Power of Naming in Software Development

Added:

Models and Meaning
Pervasive Metaphors
Metaphors in Tech
Security's Broken Metaphors
Upside-Down Trees
Naming and Stacks
Queues and Vocabulary
State and Construction
Creating and Aligning
Evaluating Metaphors

Models and Meaning

2:01
Playing Section
  • 1

    Explores how metaphors shape software design and communication.

  • 2

    Discusses the concept of models as imperfect abstractions of reality.

  • 3

    Introduces 'modity' as a measure of correspondence between problem and solution.

Basic principles of Clean Code and software maintainability, including the concept that code is read far more often than it is written.
Fundamental knowledge of variable, function, and class naming conventions across different programming paradigms.
An introductory understanding of 'Technical Debt' and how architectural decisions impact long-term development velocity.
Familiarity with the basic premise of cognitive metaphor theory, which suggests that human thought processes are largely metaphorical.
Domain-Driven Design (DDD), focusing on how to establish and maintain a 'Ubiquitous Language' between developers and domain experts.
Advanced refactoring strategies specifically targeted at resolving 'naming smells' and misaligned mental models in legacy codebases.
The study of software architecture patterns (such as 'pipelines', 'layers', or 'publish-subscribe') as macro-level cognitive metaphors.
Linguistic analysis in software engineering, exploring how NLP tools and semantic analysis can be used to evaluate code readability and maintainability.
1.2K views46likes1:07:40@KanDDDinskyOriginal Release: 2023-12-24

Software development relies heavily on metaphors to convey meaning, as developers constantly map abstract concepts to familiar physical or conceptual domains (like calling data structures 'trees' or 'stacks'). However, these metaphors are never perfect mappings—they are 'conceits' that create systems of meaning with entailments, and sometimes mixing or colliding metaphors is necessary and natural. Effective naming in software is not merely better labeling but involves suggesting entire systems of meaning that help others understand complex concepts through shared conceptual frameworks.