Refactoring: Improving the Design of Existing Code
Unit Testing Principles Practices, and Patterns
London School vs Classical School of Unit Testing
The four pillars of a good unit test
Protection against regressions
Resistance to refactoring
Fast feedback
Maintainability
Definition test double --> overarching therm
Further divided into: mock, stub
Test Driven Development By Example
Domain Driven Design Tackling Complexity in the Heart of Software (Blue Book)
Domain-Driven Design Distilled
Definition Architecture (Chapter 15)
Goal of architecture: The goal of software architecture is to minimize the human resources required to build and maintain the required system.
Programming paradigms (Structured, OO, Functional)
all took something away not added something
Design Principles - SOLID
mid-level software structures (class - in oop, which is coupled grouping of functions and data (applies to non oop as well))
Definition Module
Definition Component
Component Principles
Component Cohesion
REP (Reuse/Release Equivalence Principle)
CCP (Common Closure Principle)
CRP (Common Reuse Principle)
Component Coupling
ADP (Acyclic Dependencies Principle)
SDP (Stable Dependencies Principle)
SAP (Stable Abstractions Principle)
Dependency Rule
Humble Object Pattern
Agile Principles, Patterns, and Practices in C#
Principles of Package and Component Design
Very nice addition to Clean Architecture as it goes into more detail and also shows dependency metrics
Clean Craftsmanship Disciplines, Standards and Ethics
Code That Fits in Your Head Heuristics for Software Engineering
Trivariate Analysis
Agile Manifesto
Small teams doing small things
Agile Movement
Software Craftsmanship Movement
https://enterprisecraftsmanship.com/online-training