Although there is no an exact and shared definition of what is the service of software architecture, I like to compare it with an architecture of buildings. In the sense that an architect normally has a big picture vision, defining … Read More
Software Architecture
ORM: avoid using many to many relationships
The usage of ORMs (data mappers) comes with a great power but also with a great responsibility. ORMs give us a convenient manner to handle databases avoiding some boilerplate; they also can be used incorrectly, this way being a source … Read More
Research Results: Key software architecture metrics
If you remember my article about Software Architecture Quality Attributes, you know that we have been conducting a survey to find out key software architecture metrics that leading companies and software architects use. As quality of a software’s architecture is … Read More
Architectural Fitness Function: build measurable evolutionary architecture
Evolutionary architecture is something every software architect thinks about. It supports guided, incremental change as the first principle across multiple dimensions. To support this evolution, fitness functions can help in finding how well a system meets specified architecture goals and … Read More
Key Software Architecture Quality Attributes
Software projects are becoming complex, larger, more integrated, and are implemented by the use of several varieties of technologies. These various technologies need to be managed and organized to deliver a quality product. Quality attributes usually assessed and analyzed at … Read More
5 Major Software Architecture Patterns
In the Global Software Architecture Summit we were discussing software architecture patterns a lot and I decided to write an article about it, highlighting leading software architects insights. First of all, what are software architecture patterns? Architectural patterns are ways … Read More
Code smells that are found the most
At Apiumhub we always focus on quality and best practices in Software development. When we don’t start working on a project from scratch, we very often find code smells and this article is about it. Martin Fowler very well explained … Read More
The Circuit Breaker Pattern
In today’s article, I’d like to focus on the Circuit Breaker pattern. Some background: In a previous article we talked about how to handle transient failures through the application of the Retry pattern. As a reminder, transient failures are those … Read More
Evolutionary Architecture for Developers
What is architecture To try to stay away from a never-ending discussion, we’re siding with a definition similar to: The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, … Read More
Special Case Pattern
Don’t let your specific case increase your code complexity: Special case pattern In our day to day, there is our application up and running and suddenly a new requirement is required. So we start typing more code to fit that … Read More
Retry Pattern: examples & recommendations
Today I would like to talk about Retry pattern. In distributed applications, where constant communications are made between services and/or external resources, temporary or transient failures (transient failures) can occur when interacting with these environments. These failures can be caused … Read More
DRY – Don’t Repeat Yourself
Don’t Repeat Yourself ( DRY ) is a principle of software development and its main goal is to avoid code duplication. “Every piece of knowledge must have a single, unambiguous, authoritative representation within a system” Andrew Hunt and David Thomas: … Read More