Почитайте про
DDD
Если коротко отвечать на ваш вопрос
Как обучиться модульной разработке?
Эволюционировать как программист, писать код, реализовывать сложные системы, переделывать их, повторять эти операции раз за разом, стараясь каждый раз написать систему так, чтобы она была максимально несвязанной, и в тоже время легко интегрируемой с другими модулями.
Простого ответа здесь нет. И волшебной палочки тоже.