Table that contains the results that meet the search criteria.
Evolutionary architecture and emergent design: Test-driven design, Part 2
Testing is only a side effect of test-driven development (TDD); when done right, TDD improves the overall design of your code. This Evolutionary architecture and emergent design installment completes a walk-through of an extended example showing how design can emerge from the concerns that float up from testing.
Articles
07 Apr 2009
Evolutionary architecture and emergent design: Evolutionary architecture
This installment of Evolutionary
architecture and emergent design tackles a variety of topics related to evolutionary architecture, including the important distinction between design and architecture (and how to tell them apart), some issues that come up when you create enterprise-level architecture, and the difference between static and dynamic typing in service-oriented architectures.
Articles
19 Jan 2010
Evolutionary architecture and emergent design: Harvesting idiomatic patterns
This installment ties together emergent-design concepts from previous Evolutionary architecture and emergent design articles with a case study that shows how to discover, harvest, and leverage unexpected design elements in code. Once you understand how to identify design elements, you can use that knowledge to improve your code's design. Emergent design allows you to discover aspects of your code that you could never anticipate yet have become important parts of your code base.
Articles
08 Dec 2009
Evolutionary architecture and emergent design: Language, expressiveness, and design, Part 1
The ability to see and harvest idiomatic patterns is critical for emergent design. Also vitally important to design is code's expressiveness.
In a two-part article, Neal Ford discusses the intersection of expressiveness and patterns, demonstrating these concepts with both idiomatic patterns and formal design patterns. He recasts some of the classic Gang of Four patterns in dynamic languages for the JVM to show how more expressive languages enable you to see design elements obscured by more opaque languages.
Articles
28 Jul 2009
Evolutionary architecture and emergent design: Refactoring toward design
Earlier installments in this series discuss how unit testing leads you to a better design. But if you already have lots of code, how do you discover design elements lurking within it? The preceding installment talked about building structural targets for your code. In this article, series author Neal Ford expands on those ideas and covers techniques that use refactoring to allow emergent design.
Articles
26 May 2009
Evolutionary architecture and emergent design: Test-driven design, Part 1
Most developers think that the most beneficial part of using test-driven development (TDD) are the tests. But, when done right, TDD improves the overall design of your code. This installment in the Evolutionary architecture and emergent design series walks through an extended example showing how design can emerge from the concerns that float up from testing. Testing is only a side effect of TDD; the important part is how it changes your code for the better.
Articles
24 Feb 2009
Evolutionary architecture and emergent design: Investigating architecture and design
Software architecture and design generate a lot of conversational heat
but not much light. To start a new conversation about alternative ways to think about
them, this article launches the Evolutionary
architecture and emergent design series. Evolutionary architecture and emergent design are agile techniques for deferring important decisions until the last responsible moment. In this introductory installment, series author Neal Ford defines architecture and design and then identifies overarching concerns that will arise throughout the series.
Articles
24 Feb 2009
Evolutionary architecture and emergent design: Language, expressiveness, and design, Part 2
The ability to see and harvest idiomatic patterns is critical for emergent design. Also vitally important to design is code's expressiveness.
In Part 2 of this two-part article, Neal Ford continues discussing the intersection of
expressiveness and patterns, demonstrating these concepts with both idiomatic patterns and
formal design patterns. He recasts more of the classic Gang of Four patterns in dynamic
languages for the JVM to show how more-expressive languages enable you to see design elements obscured by more-opaque languages.
Articles
01 Sep 2009
Evolutionary architecture and emergent design: Emergent design through metrics
Software metrics can help you find hidden design elements in your code, enabling them to
emerge as idiomatic patterns. This installment of Evolutionary architecture and emergent design shows how intelligent use of metrics and visualizations lets you discover important code elements that are obscured by accidental complexity.
Articles
30 Jun 2009
Evolutionary architecture and emergent design: Composed method and SLAP
How do you find hidden design in aging code bases? This article discusses two important patterns for code structure: composed method and single level of abstraction. Applying these principles to your code allows you to find reusable assets that remained hidden before, with the further benefit of letting you abstract existing code into harvested frameworks.