Это — фрагмент вымышленного приложения, с помощью которого пользователи могут:
- отправлять заявки в банк
- искать отправленные заявки
При разработке приложения был намеренно допущен ряд ошибок, в первую очередь — архитектурных, которые затем постепенно исправлялись (см. история коммитов).
Приложение было изначально спроектировано с нарушением принципов SOLID. Ключевые моменты, на которые стоит обратить внимание:
- насколько хорошо выполнено разделение приложения на слои?
- существует ли зависимость слоёв верхнего уровня от слоёв нижнего уровня?
- как можно решить эту проблему?
- есть ли в приложении компоненты, которые используются несколькими клиентами?
- есть ли ситуация, когда одна часть методов нужна клиенту A, а другая часть – клиенту B?
- как можно решить эту проблему?
- есть ли в приложении компоненты, которые заключают в себе несколько абстракций?
- используются ли они разными клиентами?
- как можно решить эту проблему?
- насколько легко можно расширять приложение?
- нужно ли при этом вносить правки в существующий код?
- как можно решить эту проблему?
- какие правки можно внести в приложение, чтобы "поломать" его с точки зрения этого принципа?
- как можно решить эту проблему?