InfoQ Homepage Design Content on InfoQ
-
Immutable Object vs. Unsynchronized State
Joshua Bennett discusses immutable objects, what they are good for, when they are recommended to be used and when are to be avoided.
-
Parallel Programming Patterns: Data Parallelism
Ralph Johnson presents several data parallelism patterns, including related libraries from Intel and Microsoft, comparing it with other forms of parallel programming such as actor programming.
-
Webmail for Millions, Powered by Erlang
Scott Lystig Fritchie presents the architecture and lessons learned implementing a webmail system in Erlang, using UBF and Hibari, a distributed key-value store, to accommodate a large user base.
-
QCon Keynote: Forty Years of Fun with Computers
Dan Ingalls presents his journey through the world of software developing a number of core technologies over the last forty years, explaining what brought them forth and why they are fun even today.
-
RESTful SOA or Domain-Driven Design - A Compromise?
Vaughn Vernon advocates using DDD’s strategic modeling patterns when integrating services in a RESTful SOA implementation, avoiding one of SOA’s pitfalls: focusing on services rather than the domain.
-
Abstractions at Scale–Our Experiences at Twitter
Marius Eriksen considers that leaky abstractions lead to scalability issues, while those providing narrow access to explicit resources - map-reduce, shared-nothing web apps, big table - scale better.
-
Simplicity, The Way of the Unusual Architect
Dan North talks about the tendency of developers-becoming-architects to create complex systems. He argues for simplicity and offers strategies to extract the simple essence from complex situations.
-
Patterns for the People
Kevlin Henney proposes a new look at design patterns from the perspective of the habitability of code, communication, exploration, empiricism, reasoning, incremental development, and design sharing.
-
Functional Design Patterns
Aino Vonge Corry reviews a number of well known design patterns showing that their implementation is simpler in functional languages because such languages have pattern-based constructs.
-
A Scalable, Peer-led Model for Building Good Habits in Large & Diverse Development Teams
Jason Gorman presents how developers can learn TDD to the point of transforming the knowledge acquired into habits by exercising a number of practices followed by peer evaluation.
-
Nothing New Under the Sun: Continually Rediscovering the Good Ways to Build Software
Keith Braithwaite proposes ways to integrate ideas successfully applied in software in the past but later discarded, like analysis, architecture, and modeling, into current technology and practice.
-
Command-Query Responsibility Segregation
Udi Dahan discusses the Command Query Responsibility Segregation (CQRS) pattern, detailing on queries and commands, what they are and how they should be used in an asynchronous programming environment