простая штука - писать код так что бы можно было расширять функционал добавляя новый код и не меняя старый. Сложное правило?
это в целом, но ведь если скажешь на вопрос "почему нельзя то-то" - чтобы можно было легко и безопасно расширять код, посмотрят как на идиота, который теплое с мягким путает, хочется более конкретные аргументы иметь... но в целом да, для себя не вижу смысла это все изучать. есть тула, которая заставляет делать хорошо - она свое дело делает. я просто буду ее юзать, да и вообще, это мое дело. а дело других - юзать или не юзать... одним словом каждый делает что хочет) и все) спорить просто не надо