We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
RailsConf 2024 - What's in a Name: From Variables to Domain-Driven Design by Karynn Ikeda
Explore the semiotics of naming in Rails development, uncovering how language and domain-driven design can lead to better code organization, maintainability, and scalability.
- Names act as signs communicating to the machine and fellow programmers, but can be misinterpreted, leading to bugs.
- Domain-driven design starts with language and understanding how names function.
- Signs can contain signs, and relationships between higher-level signs (like classes) matter just as much as lower-level signs.
- The relationship between the signifier (the name) and the signified (what it represents) is crucial.
- Renaming can be expensive and introduce semantic debt.
- We can leverage our understanding of language to design systems that are easily read and self-explaining.
- Semiotics is the study of signs and their use and interpretation.
- Domain-driven design refers to designing systems that mirror the real world in some way.
- Naming conventions can help with semantic coupling and organization.
- We should group code by function, and classes encapsulate variable and method names.
- Compound words in English and Ruby’s convention of using underscores instead of camelCase can provide insights into how we organize our code.
- Domain-driven design helps us understand how to create a framework for talking about systems.
- Technical debt can arise when we don’t consider the semantic interactions between different parts of a system.
- Metaphors can be useful in software development, but we should be cautious when using them.
- Semantics and domain-driven design can help us create more holistic systems.
- Domain-driven design is not just about modeling the real world, but also about understanding the relationships between different parts of a system.
- Technical debt can arise when we don’t consider the semantic interactions between different parts of a system.
- Domain-driven design can help us create more maintainable and scalable systems.