Почему все книги учат, что нужно отделять гуй, usecase, бизнес сущности и т.д.
- Зачем я должен отделять sql код от бизнес сущности если, исходя из требований, никогда не будет меняться метод сохранения в бд? Почему я должен вносить не оправданную сложность?
- Почему я не могу из виджета выполнить Http запрос, зная, что это никак не повлияет на сложность внесения дальнейших изменений.
Сам я так не делаю, но и объяснения «почему бы и нет» я найти не могу. Другое дело, когда мы заранее видим вектор изменений и готовим нашу архитектуру к будущим изменениям. Но если, например, у меня Android проект, и там для сохранения в базу я могу юзать только sqlite, зачем придумывать какие-то абстракции и усложнять себе жизнь? Например, я вижу только один кейс, зачем я должен придумать абстракцию в виде DAL для SQL кода. Просто что бы это все гуано лежало в одном месте ))). Но если удобно и без DAL, но зачем его писать.
У кого какие мысли по-этому поводу? Как вы делаете на работе или в своих проектах? Интересует мнение опытных разработчиков, прошедших все эти сложности. Сам я работаю еще только 6 лет. Единственное почему я придерживаюсь архитектур из книжек, это потому, что вроде как так принято что-ли. Даже Фаулер пишет о том, что не везде нужно запиливать какую-то мощную архитектуру, но тем не менее сам так делает. Странно.