InfoQ Homepage Architecture Content on InfoQ
-
Designing with Exceptions in .NET
Exceptions are an integral part of working with .NET, but far too many developers don’t think about them from an API design perspective. Most of their work begins and ends with knowing which exceptions they need to catch and which should be allowed to hit the global logger. You can significantly reduce the time it takes to correct bugs if you design the API to use exceptions correctly.
-
Two Mistakes You Need to Avoid When Integrating Services
With SOA, businesses moved from monolithic applications to heterogeneous designs by decomposing functionality into services. However, architects must be careful when integrating services. Often enterprises assume adopting patterns like ESB can help. Unfortunately, there are hidden challenges with these patterns. The danger is they go unnoticed during development but surface when a system is live.
-
Continuous Delivery Coding Patterns: Latent-to-Live Code & Forward Compatible Interim Versions
This article describes two novel practices for continuous delivery: Latent-to-live code pattern and Forward compatible interim versions. You can use these practices to simultaneously increase speed and reliability of software development and reduce risks. These practices are built on top of two other essential continuous delivery practices: trunk-based-development and feature toggles.
-
Using Templates to Transform Web Service Results into Markup
The HTTP-RPC open-source Java framework returns results in JSON by default, but can use the CTemplate system to respond with custom markup. In this article, Greg Brown shows how simple annotations can be used to automatically respond to a web service in any markup (HTML, XML, CSV, etc.).
-
Creating RESTful Services with T4 Based on Model and Interfaces
When generating RESTful services with WebAPI, a lot of boilerplate code has to be implemented. Amel Musić demonstrates how T4 and EnvDTE can be used to create a flexible code generator that dramatically reduces the amount of time and effort this takes.
-
WTF requirements in Agile Product Development
The use of all-conclusive, hard-defined, non-negotiable BRDs is not appropriate in agile development. It will lead to an array of dysfunctions, including Local Optimization, deterioration of relationships between Product Owners and Feature Teams as well as loss of trust by end-customers. A refined, well-prioritized Product Backlog is the right place to store requirements in agile development.
-
Q&A with Jason Fox on How to Lead a Quest
In the book How to Lead a Quest Jason Fox explores what can be done to develop insights for strategic decisions and innovation, and for driving progress and delivering value. The book provides approaches and rituals for asking deeper, bigger questions and slow, thorough thinking, creating options and designing experiments for dealing with complexity, ambiguity and uncertainty.
-
Growing Agile… Not Scaling!
What makes an agile team successful is not the “process” nor the “tools” but rather the way people develop an effective level of interaction with each other. Growing agile means both focusing on culture, and on co-evolution of practices and tools.
-
HTTP-RPC: A Lightweight Cross-Platform REST Framework
HTTP-RPC is an open-source framework allowing developers to create and access cross-platform polyglot RESTful web services using a convenient, RPC-like metaphor, while preserving fundamental REST principles such as statelessness and uniform resource access.
-
Article Series: Cloud and "Lock-in"
With the fast-pace of cloud changes (new services, providers entering and exiting), cloud lock-in remains a popular refrain. But what does it mean, and how can you ensure you're maximizing your cloud investment while keeping portability in mind?
-
Approaching Lock-In from a Consultant’s Perspective: An Interview with Nicki Watt
Consultants play a major role in helping companies deliver software. How do these consultants tackle lock-in and build portable solutions? In this interview, OpenCredo's Nicki Watt tackles this topic.
-
Configure Once, Run Everywhere: Decoupling Configuration and Runtime
Configuration is one of the most widely used cross-cutting concerns in application development. Apache Tamaya is a new incubator project that brings standardized property management to Java.