Software Engineering

Overview

Architecture

Abstractions

Refactoring

Reuse

Reversibility

Dependency Injection

Working with Nulls