solid solid principles agile software development agile clean code test-driven development specification by example behavior-driven development tdd bdd property-based testing aaa stubs fakes dummies mocks test doubles first tests software testing dependency inversion principle interface segregation principle liskov substitution principle open closed principle single responsibility principle methodology software development pair programming ebi entities boundaries interactors stable abstrtactions principle stable dependencies principle common reuse principle common closure principle screaming architecture software architecture clean architecture onion architecture static analysis codestyle code metrics .net test first software technology c# unit testing gherkin specflow acceptance testing domain-driven design atdd ddd
See more