“Perfect” Is the Enemy of“Good Enough”

编程入门 行业动态 更新时间:2024-10-06 20:25:07

“<a href=https://www.elefans.com/category/jswz/34/1754361.html style=Perfect” Is the Enemy of“Good Enough”"/>

“Perfect” Is the Enemy of“Good Enough”

“Perfect” Is the Enemy of“Good Enough”

Greg Nyberg

SoFTWARE dESignERS, and architects in particular, tend to evaluate solu- tions by how elegant and optimum they are for a given problem. Like judges at a beauty contest, we look at a design or implementation and immediately see minor flaws or warts that could be eliminated with just a few more changes or refactoring iterations. Domain models simply beg for one more pass to see if there are any common attributes or functions that can be moved into base classes. Services duplicated in multiple implementations cry out their need to become web services. Queries complain about “buffer gets” and nonunique indexes, and demand attention.
My advice: don’t give in to the temptation to make your design, or your imple- mentation, perfect! Aim for “good enough” and stop when you’ve achieved it.
What exactly is “good enough,” you might ask? Good enough means that the remaining imperfections do not impact system functionality, maintainability, or performance in any meaningful way. The architecture and design hangs together. The implementation works and meets the performance require- ments. Code is clear, concise, and well documented. Could it be better? Sure, but it is good enough, so stop. Declare victory and move on to the next task.
The search for perfection in design and implementation leads, in my opin- ion, to overdesigned and obfuscated solutions that are, in the end, harder to maintain.

A number of the axioms in this book caution designers to avoid unnecessary abstraction or complexity. Why do we have problems keeping things simple? Because we are seeking the perfect solution! Why else would an architect introduce complexity in a workable solution except to address a perceived imperfection in the simpler design?
Remember that application development is not a beauty contest, so stop look- ing for flaws and wasting time chasing perfection.
Greg Nyberg is currently an independent J2EE computer consultant with 18 years’ experience designing, building, testing, and deploying large, high-volume, transactional applications such as reservation systems, call centers, and consumer websites. He is the author of the WebLogic companion workbook for Enterprise JavaBeans, Third Edition, (O’Reilly), and the lead author of the book Mastering WebLogic Server (Wiley).

更多推荐

“Perfect” Is the Enemy of“Good Enough”

本文发布于:2024-02-07 11:20:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1756696.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Perfect   Enemy   Good

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!