In fact, if you have enough business knowledge, you will understand that these are two business domains, and you will know that product design should be separated, and different domain events should be decoupled. This is not redundant but a Refined.
Let's briefly analyze:
First, we have to have basic business knowledge:
Everyone should know that for e-commerce scenarios, orders are the carrier of transactions, and transactions are generally three-in-one, such email list as business flow, also known as business flow or cargo flow, capital flow, and invoice flow.
Obviously,
Therefore, the two face different business scenarios, of course, they should be decoupled, and the products should also be focused.
Stepping back 10,000 steps, the payment information can be redundantly entered in the course order, but it must be two fields, which must be decoupled. The course order must be the order status, and the payment order must be the payment status. Of course, strictly speaking, The payment order should be called payment flow.
We should also keep two points in mind:
Products are the carrier of business and commerce, and business scenarios must be considered when designing products.
Different business scenarios have boundaries, and different fields need to be decoupled to avoid technical debt in the future.
So you see, on the basis of sufficient business domain knowledge, it is necessary to learn to decouple the business domain, which is the key to designing a good product.
In fact, for software development, the product manager is the key source role, and we should be in awe . In fact, only when we have mastered enough knowledge and have the thinking of the field and boundaries, can we avoid technology from the source generation of liabilities.
All of this may require us to have excellent product thinking in specific product design, to have the awareness of decoupling and the ability to structure. Of course, the most important thing is to have the concept of boundaries and the courage to break the boundaries.