Systems (i.e., databases) managing their data integrity sounds like common sense, and in simple scenarios, it is common sense. However, when the business rules get complex, it’s harder to validate the data in a central location. When a system (i.e., a database) can no longer enforce the shape of the data, something else must pick…
Category: Architecture
The Benefits of Using a Build Framework
Continuous Integration (CI) and/or Continuous Delivery (CD) is the norm on software projects these days. There are many build servers such as Azure DevOps, TeamCity, Jenkins, and Cruise Control.Net. Most of these servers use proprietary languages to define build steps. But is codifying your build steps in a proprietary language a good thing? Some applications…
Grady Booch on Architecture
A Series of Tweets from Grady Booch on software architecture: https://twitter.com/Grady_Booch/status/1301810358819069952 A thread regarding the architecture of software-intensive systems. There is more to the world of software-intensive systems than web-centric platforms at scale. A good architecture is characterized by crisp abstractions, a good separation of concerns, a clear distribution of responsibilities, and simplicity. All else…
9 Guidelines for Creating Expressive Names
Naming is subjective and situational, it’s an art, and with most art, we discover patterns. I’ve learned a lot through the reading of other’s code. In this article, I’ve compiled 9 guidelines I wished others had followed when I read their code. When a software engineer opens a class, she should know, based on the…