Should You Follow Proven Designs or Trust Your Own Ideas? A Practical Decision‑Making Process
The article proposes a three‑step approach—study best‑practice designs, evaluate them against your specific context, and select the most suitable solution—illustrated with a comparison of using a message queue versus Spring’s event system for simple order‑notification needs.
Reference Best Practices → Contextual Evaluation → Choose the Most Suitable Solution
First stage: avoid premature innovation; study proven designs from multiple real systems, incident experience, and complex modules before creating own solutions.
Absorbing outstanding designs builds technical judgment.
Best Practices Are Conditional
Adopting a practice without checking its preconditions is ineffective. The key question is which solution fits the current scenario.
Example: after an order is created, downstream systems need notification.
Many articles recommend a message queue (MQ). MQ enables the order service to publish an OrderCreated event, with inventory, points, logistics, etc., subscribing, allowing future consumers to be added without modifying the producer.
If the application is a simple monolith with no near‑term split, introducing MQ adds:
Operational cost of the middleware
Potential reliability issues
Duplicate consumption handling
More complex exception management
Additional instance expense
For a simple notification, the MQ layer can increase overall complexity.
A lower‑cost alternative is Spring’s built‑in event mechanism: publish an OrderCreatedEvent and let other services listen, achieving decoupling without the overhead of a separate MQ system.
Choose the solution that best matches the current constraints rather than the most advanced one.
Lacking Judgment Experience
If personal evaluation experience is limited, consult senior teammates to validate a self‑derived proposal rather than asking them to decide outright.
No Senior Mentors Available
Take responsibility: implement the design, ship it, monitor behavior, and revisit when requirements change. Refactor if the design proves inadequate.
Conclusion
Engineering focuses on finding the most appropriate solution within existing constraints, not on pursuing the most complex or cutting‑edge technology.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
samdeepthink
Knowledge Planet: Old Dock's Tech Chronicles Zhihu: SamDeepThinking A technical manager who still codes heavily on the front line. From junior developer to tech lead, then tech manager, now leading the whole front‑ and back‑end development team—leveling up along the way. I have some insights on programming, career development, and tech management.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
