Lattix Architecture Blog

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
Monday, March 20, 2017 - 15:23 - 0 comment(s)
“Microsoft reports that more than 50% of the problems the company uncovered during its ongoing security push are architectural in nature. Cigital data shows a 60/40 split in favor of architectural flaws.” - Gary McGraw Nearly 40% of the 1,000 CWEs (common weakness enumeration) are architectural flaws. Architectural design in secure software is an often overlooked aspect of software development. So much so that the IEEE established a Center for Secure Design and released a document “... + continue reading
Monday, March 13, 2017 - 16:09 - 0 comment(s)
Most of the time when people think of high-level software architecture, they think of patterns like Microservices (see our previous blog post What is a Microservices Architecture?"). But the most common software architecture we see when talking to prospects and customers is the Big Ball of Mud architecture. In this post we will define the Big Ball of Mud architecture, discuss why it happens in development, and explore three way of dealing with it (hint: one is refactoring). What is a "Big... + continue reading