DSLs (Domain Specific languages), continuous integration, and event sourcing were stressed as key aids for software builders Friday by a dignitary in the agile development space.
In a presentation entitled “Software Design in the 21st Century,” Martin Fowler, chief scientist at ThoughtWorks, hailed these concepts at the QCon software development conference in San Francisco. Fowler was a participant in composing the Manifesto for Agile Software Development nearly 10 years ago.
Fowler touted productivity advantages of DSLs. Among DSLs used by developers include Microsoft LINQ (Language Integrated Query), Hibernate, and CSS (Cascading Style Sheets). “A well-chosen domain-specific language can really narrow down behavior of something and allow you to express your intention much better and that is the first and very significant advantage of a domain-specific language.” Also, DSLs enable expression of programming activities in a way that non-programmers can understand, Fowler explained.
With continuous integration, members of a software development team integrate their work frequently. Developers using continuous integration are not discouraged from refactoring to keep code clean, Fowler said. Additionally, the notion of continuous delivery allows developers to get software into production as fast as possible, he said.
Event sourcing, meanwhile, involves storing information about system changes as an event object. A record of changes is maintained. “This is an architectural technique, architectural pattern that I [have] run into quite a lot over my years and it is again one of those things not used as much as I think it ought to be.”
Fowler has written about the benefits of event sourcing on his Web page, also. Event sourcing, the page states, ensures that changes to application state are stored as a sequence of events. Events can be queried, and the event log can be used to reconstruct past states and as a foundation to adjust the state to cope with retroactive changes.