- Полиморфизм, инкапсуляция, наследование
- Предпочтение композиции наследованию
- Программирование на уровне интерфейсов, а не реализаций
- Использование паттернов проектирования
- Юнит-тесты
- Рефакторинг
- ...и многое другое
Навеяно проэктами с просторов русских интернетов.