Coupling, Cohesion & Connascence
Last updated Sep 8th, 2021
The foundational measurements of structural software quality
Test Doubles
Last updated Sep 7th, 2021
A test double is a generic term to refer to any object that stands in for a production one during testing
Managed vs. Unmanaged Dependencies
Last updated Aug 8th, 2021
A way to differentiate between mutable infrastructural dependencies
Leaky Abstraction
Last updated Feb 9th, 2021
An abstraction that leaks details that it is supposed to abstract away
The Dependency Rule
Last updated Mar 28th, 2020
A software architecture rule that specifies the relationship between layers, namely that an inner layer should never rely on anything from an outer layer.
3 Common Goals of Frontend Frameworks
Last updated Jan 8th, 2020
Data storage, change detection, and data flow.
Monolithic Application
Last updated Dec 2nd, 2019
An application where all the essential components are self-contained and deployed within a single process.
Anemic Domain Model
Last updated Sep 24th, 2019
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)
Last updated Sep 15th, 2019
The more stable a component is, the more abstract it should be
Stable Dependency Principle (SDP)
Last updated Sep 15th, 2019
Components dependencies should be in the direction of stability
Acyclic Dependency Principle (ADP)
Last updated Sep 15th, 2019
One of several component design principles that states that the "dependency graph of components should have no cycles"
Conway's Law
Last updated Jul 3rd, 2019
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.
Clean Architecture
Last updated May 25th, 2019
Clean architecture refers to organizing the project so that it's easy to understand and easy to change as the project grows.
Active Record
Last updated May 25th, 2019
An `Active Record` is a model that stores an in-memory representation of a database row or document.
3 Categories of Hard Software Problems
Last updated May 15th, 2019
Generally speaking, there are 3.
Abstract Factory
Last updated Apr 16th, 2019
The abstract factory pattern provides a way to encapsulate a group of individual factories that have a common theme without specifying their concrete classes.
Last updated Apr 10th, 2019
'You aren't gonna need it'
Class Invariant
Last updated Apr 9th, 2019
Invariants are a form of ensuring data integrity of an object.
Concrete class
Last updated Apr 4th, 2019
Classes that are complete with fully implemented methods.
Dependency Inversion
Last updated Apr 3rd, 2019
A de-coupling technique where both high-level and low-level classes depend on the same abstraction, inverting the dependency relationship.