Coupling, Cohesion & Connascence
Updated Feb 9th, 2021 / 6 min read
The foundational measurements of structural software quality
Leaky Abstraction
Updated Feb 9th, 2021 / 4 min read
An abstraction that leaks details that it is supposed to abstract away
The Dependency Rule
Updated Mar 28th, 2020 / 4 min read
A software architecture rule that specifies the relationship between layers, namely that an inner layer should never rely on anything from an outer layer.
Camel case
Updated Mar 7th, 2020 / 2 min read
Camel case is a naming convention that says all words in an indentifier (except the first) must be capitalized.
Pascal Case
Updated Mar 7th, 2020 / 2 min read
Pascal Case is a naming convention that promotes naming identifiers using all upper-case words.
3 Common Goals of Frontend Frameworks
Updated Jan 8th, 2020 / 1 min read
Data storage, change detection, and data flow.
Monolithic Application
Updated Dec 2nd, 2019 / 2 min read
An application where all the essential components are self-contained and deployed within a single process.
Anemic Domain Model
Updated Sep 24th, 2019 / 6 min read
When the classes that describe the model and the classes that perform operations on the model are separate. The services contain all the domain logic while the the domain objects themselves contain practically none.
Stable Abstraction Principle (SAP)
Updated Sep 15th, 2019 / 1 min read
The more stable a component is, the more abstract it should be
Stable Dependency Principle (SDP)
Updated Sep 15th, 2019 / 2 min read
Components dependencies should be in the direction of stability
Acyclic Dependency Principle (ADP)
Updated Sep 15th, 2019 / 2 min read
One of several component design principles that states that the "dependency graph of components should have no cycles"
Conway's Law
Updated Jul 3rd, 2019 / 3 min read
Any organization that designs a system (defined more broadly here than just information systems) will inevitably produce a design whose structure is a copy of the organization's communication structure.
Active Record
Updated May 25th, 2019 / 1 min read
An `Active Record` is a model that stores an in-memory representation of a database row or document.
Clean Architecture
Updated May 25th, 2019 / 1 min read
Clean architecture refers to organizing the project so that it's easy to understand and easy to change as the project grows.
3 Categories of Hard Software Problems
Updated May 15th, 2019 / 3 min read
Generally speaking, there are 3.
Abstract Factory
Updated Apr 16th, 2019 / 5 min read
The abstract factory pattern provides a way to encapsulate a group of individual factories that have a common theme without specifying their concrete classes.
Updated Apr 10th, 2019 / 1 min read
'You aren't gonna need it'
Class Invariant
Updated Apr 9th, 2019 / 1 min read
Invariants are a form of ensuring data integrity of an object.
Concrete class
Updated Apr 4th, 2019 / 6 min read
Classes that are complete with fully implemented methods.
Dependency Inversion
Updated Apr 3rd, 2019 / 5 min read
A de-coupling technique where both high-level and low-level classes depend on the same abstraction, inverting the dependency relationship.