Chandra Sivaraman
Programming/Software Engineering Notes

Abstraction

Systems Thinking

The Goal

Unit Testing Part 1

Unit Testing Part 2

Unit Testing Part 3

Unit Testing Part 4

Unit Testing Part 5

Naming

SOLID Principles

Single Responsibility Principle

Open-Closed Principle

Liskov Substitution Principle

Interface Segregation Principle

Dependency Inversion Principle