InfoQ Homepage Design Content on InfoQ
-
Data, Context and Interaction : A New Architectural Approach by James O. Coplien and Trygve Reenskau
James O. Coplien and Trygve Reenskaug have recently introduced a new architectural approach to OOP based on Data, Context and Interaction pattern. It should allow capturing user mental model in terms of behavioral requirements, something that classic OOP fails to do. The article, that triggered many reactions and critics, provides insights into DCI using concrete examples to show its advantages.
-
Presentation: A Tale of 2 Systems
In this video recorded during QCon London 2008, Pete Goodliffe presents two Linux-based audio products with a complete different outcome, software design making the difference.
-
Temporal and Behavioral Coupling
Low coupling has always been the Holy Grail of good software engineering. In his new post, Ian Robinson explores two specific types of coupling, temporal and behavioral.
-
Article: Using SketchFlow to Create Better Prototypes
Simon Guest of Microsoft introduces SketchFlow by discussing why prototyping is an important developer skill and how a tool can enhance developer-customer interaction. The functionality and features of SketchFlow are presented in the context of an ongoing sample application (an on-line store).
-
Advantages Of (Also) Using HATEOAS In RESTFul APIs
Craig McClanahan, from Sun Microsystems, provides answers as to why existing "REST" APIs don't really take advantage of using Hypermedia as the Engine of Application State (HATEOAS) in RESTful services. He cites examples from his recent work in designing the Sun Cloud API to illustrate the benefits.
-
Transaction Strategies Based on Java Transaction Models
It is a common mistake to confuse transaction models with transaction strategies. Mark Richards discusses the three transaction models supported by the Java Platform (Local Transaction, Programmatic Transaction, and Declarative Transaction) and four transaction strategies (Client Orchestration, API Layer, High Concurrency, and High Speed Processing) that can be based on those models.
-
When Is POSTing State Appropriate?
In an article, Tim Bray, examines the feedback from the first public draft of the APIs for the Sun Cloud. He responds to feedback in the article and explores the ways to model interactions such as, creating a VM in a Cluster, in a RESTful way.
-
Interview and Book Excerpt: Jaroslav Tulach's Practical API Design
Jaroslav Tulach's latest book Practical API Design covers the topics of API design in modern software applications, what factors make a good API, and how to go about implementing API frameworks. InfoQ spoke with Jaroslav about his new book. We are also making an excerpt from the book available for our readers.
-
Avoiding Three Common Mistakes when Implementing XML and Web Services
In his new comment, IBM’s Kyle Brown examines three different common anti-patterns, or "worst practices," that can make adopting Web Services and SOA implementations more difficult than it needs to be.
-
SOA and DDD
In a recent entry, Phillip Calcado asks the question "What Is A Service?" and then goes on to describe how the answer to this lies with Domain Driven Design and ensuring that all stakeholders in an SOA development share the same understanding.
-
Spolsky vs Uncle Bob
The last few weeks, a public dispute has been going on between Joel Spolsky and Robert C Martin (Uncle Bob) about Test-Driven Development and about the SOLID principles of OO design. Here is a summary and review of the match.
-
Presentation: Convergence: Model-Based Software, Systems And Control Engineering
In this presentation filmed during OOPSLA 2008, Janos Sztipanovits attempts to tackle the complexity of large scale systems integration. Software, systems and control engineering converge in such systems, raising the integration challenges and demanding a new approach to model-based design.
-
Interview: Software Design Helps Being Agile
In this interview made by InfoQ’s Deborah Hartmann during Agile 2008, Rebecca Wirfs-Brock talks about software design, the need for good design and the technical debt that might accumulate slowing down the development process. The conclusion is that agile developers should not disregard design.
-
Presentation: Agile Methods and User Centered Design
In this presentation filmed during ThoughtWorks’ Quarterly Technology Briefing, Dave Robertson and John Johnston explain what the Agile and User Centered Design’s (UCD) common denominators are, common values being the most important one in their opinion.
-
"Good Design" Means ...?
It's not news that at the heart of successful software systems (and, frankly, fulfilling software careers) is good design. Also not news is that defining what "good design" really means has been at the heart of many debates, papers, talks, books, discussions, and more for ages. To help, J.B. Rainsberger and Scott Bellware offer some advice to follow until that one true definition comes along.