Jon Skeet provides practical advice on designing APIs using immutability, separation of concerns and other principles, resulting in elegant and reusable code.
Nat Pryce, Steve Freeman advise on design principles useful to create code structures with objects that fit together and communicate, and where the capabilities and the information flow are explicit.
Kevin Lynagh discusses information design and why he thinks programmers suck at that, and how one can implement great data visualizations with Clojure and ClujureScript.
Frank Buschmann’s secrets: User Tasks-based Design, Be Minimalist, Ensure Visibility of Domain Concepts, Use Uncertainty as a Driver, Design Between Things, Check Assumptions, Eat Your Own Dog Food.
Eric discusses the need for strategic thinking an how early design decisions have major impact on the organization and the entire development process. He uses the lens of DDD Strategic Design principles (emphasizing "Context Mapping" and "Distilling the Core Domain") to show how to avoid strategic failures and achieve strategic successes. Winning strategy starts with the domain.
Purpose and intent are just as important as skill in effective software development. Skill allows you to deliver value in difficult technical circumstances. Clear purpose and positive intent allow you to deliver value in difficult social and business circumstances. Kent Beck shares his design technique which involves both intent and a small set of strategies he uses when designing.
This session addresses abstract notion of simplicity, looks at why it is critical in modern UI design and answers questions: Why does simplicity matter? Is there a meaningful definition of simplicity? Why do design processes and good intentions undermine simplicity? What processes and techniques can software developers use to achieve simplicity?
John Davies discusses technology problems and solutions encountered in the investment banking domain. Issues covered include: transport and data integration, protocols, XML, complex validation, persistence, and scaling via distributed systems. SWIFT MT to MX migration is also discussed.
In this presentation, recorded at QCon London, Stefan Tilkov introduces the key principles of REST, explaining the differences to other distributed systems architectures and highlighting its benefits. Topics covered include mapping business logic to resource interactions, hypermedia, and documentation.