Lattix Architecture Blog

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.
Friday, March 24, 2017 - 15:35 - 0 comment(s)
C++ code refactoring is difficult because the C++ language is large and complex with a hard-to-process syntax (tools like Lattix Architect can simplify the process). Given the importance of refactoring, here is a C++ refactoring tip for solving Primitive Obsession. What is Primitive Obsession? Primitive Obsession is using primitive data types (like integers, strings, doubles, etc.) to represent a more complicated entity such as share prices or temperature. Primitive types are generic... + continue reading