The rise of agile methods (particularly XP) makes some people wonder if there's any role left for software design. I argue that this change shifts from planned to evolutionary design.| martinfowler.com
This book started after Dave Rice and I gave some talks on| www.martinfowler.com
Domain Specific Languages (DSLs) have been around since I've been in| www.martinfowler.com
A fluent interface is a way of building an API so that its use has the feel of an internal domain-specific language.| martinfowler.com
A long-form article entitled: "Language Workbenches: The Killer-App for Domain Specific Languages?"| martinfowler.com
Don't try to build a single, unified model for a large domain. Instead DDD advises us to divide such a domain into many bounded contexts with explicit relationships between them.| martinfowler.com
Unit Tests are focused on small parts of a code-base, defined in regular programming tools, and fast. There is disagreement on whether units should be solitary or sociable.| martinfowler.com
An object that wraps a row in a database table or view, encapsulates the database access, and adds domain logic on that data.| martinfowler.com
When developing Extreme Programming in the 90's, Kent Beck developed four rules of simple design: Passes the tests, reveals intention, no duplication, and fewest elements.| martinfowler.com
Yagni ("You Aren't Gonna Need It") is the principle that we should not build presumptive features. It should not be used as a justification for neglecting internal quality.| martinfowler.com
Agile methods explained by contrast to the plan-driven mainstream at the time. Key differences are adaptive rather than predictive planning and being people-oriented rather than process-oriented.| martinfowler.com