Lattix Architecture Blog

Monday, May 8, 2017 - 13:09 - 0 comment(s)
What is Agile Architecture? Architecture is an important aspect of agile software development efforts. It is critical to scaling agile to meet the needs of the business. “Agile architecture is a set of values and practices that support the active evolution of the design of a system, concurrent with the implementation of new business functionality”. The goal of agile architecture is to eliminate the impact of change by crafting software that is easy to adapt. The structural aspect of agile... + continue reading
Friday, April 21, 2017 - 17:41 - 0 comment(s)
What is Pimpl Idiom? Pimpl means Pointer to the IMPlementation. The Pimpl idiom technique is also referred to as an opaque pointer, handle classes, compiler firewall idiom, d-pointer, or cheshire cat. This idiom is useful because it can minimize coupling, and separates the interface from the implementation. It is a way to hide the implementation details of an interface from the clients. It is also important for providing binary code compatibility with different version of a shared library. The... + continue reading
Friday, April 14, 2017 - 11:59 - 0 comment(s)
Most people are familiar with the term refactoring, but refactoring is not constrained to just code. It is applicable to software architecture as well. Architectural refactoring is improving the design of an existing software application. Architectural refactoring changes the structure but not the functionality. The problem is that, over time, software architecture erodes as it evolves (see our blog post on architectural erosion). The original design may be lost or was never intended to... + continue reading
Friday, April 7, 2017 - 13:20 - 0 comment(s)
Slow build times are a common problem in C++. The build speed is based on language complexity and code organization. While you may not be able to change C++ language complexity, you can improve code organization. As Herb Sutter said, “Managing dependencies well is an essential part of writing solid code.” The more modular and less interdependent (complex) your code is in general, the less often you will have to recompile everything. This will reduce the amount of work the compiler has to do... + continue reading
Friday, March 31, 2017 - 16:11 - 0 comment(s)
Software architecture erosion refers to the gap between the planned and actual architecture of a software system as observed in its implementation.