这是用户在 2025-4-15 15:28 为 https://www.16elt.com/2024/09/14/design-it-twice/ 保存的双语快照页面,由 沉浸式翻译 提供双语支持。了解如何保存?


Why you should "design it twice"?
为什么要“设计两次”?

Eliran Turgeman 3 minutes
艾利兰·图尔格曼3 分钟

Designing software is tough. I think we can all agree on that. No matter how much experience you have, your first idea about how to structure a module or system is usually not the best one. I had to learn this lesson the hard way, and I really wish I knew about the “design it twice” concept earlier in my career.
软件设计很艰难。我想我们都认同这一点。无论你经验多么丰富,你对如何构建模块或系统的第一个想法通常都不是最佳的。我经历了惨痛的教训,真希望我早点知道“二次设计”这个概念。

In Chapter 11 of A Philosophy of Software Design, the author introduces a simple but powerful idea: “design it twice”. The core message is that you shouldn’t just go with the first design that comes to mind. Instead, come up with at least two different designs even if you have to force yourself. No matter how confident you are, you’ll make better decisions when you compare options side by side.
在《软件设计哲学》的第11章中,作者提出了一个简单却强大的理念:“设计两次”。其核心思想是,你不应该只采用第一个想到的设计。相反,即使不得不强迫自己,也至少要想出两种不同的设计。无论你多么自信,当你并排比较各种方案时,你都会做出更好的决策。

By comparing these different design, you can find the best approach. Sometimes, the final design will combine ideas from both. And the extra effort up front? It’s worth it. It’s a lot quicker than fixing things later on.
通过比较这些不同的设计,您可以找到最佳方案。有时,最终的设计会融合两者的理念。前期的额外努力是值得的,这比事后再修复要快得多。

The Time I Got It Wrong
我犯错的时候

Let me tell you about a time when I got this wrong. I was tasked with designing a new feature for our system. I thought I had it all figured out and spent a whole week preparing. I came into the high-level design meeting, diagrams and everything, feeling confident. But then, a few critical questions came up—questions I hadn’t even thought about. My whole design fell apart right there.
让我来告诉你我曾经犯过的错误。我被委派为我们的系统设计一个新功能。我以为自己已经把一切都想好了,花了整整一周的时间准备。我带着图表和所有东西参加了高层设计会议,感觉信心满满。但后来,一些关键问题出现了——这些问题我甚至从未想过。我的整个设计就此崩塌。

Looking back, if I had designed it twice—if I had taken the time to think of alternatives—I would have been much better prepared. I could have answered those questions or even had a backup design ready. It was a big lesson in how easy it is to overlook important details when you rush with the first idea.
回想起来,如果我设计了两次——如果我花时间思考替代方案——我的准备会更加充分。我本可以回答这些问题,甚至准备好备用设计。这件事给了我一个深刻的教训:仓促做出第一个想法时,很容易忽略重要的细节。

Why It Matters  为什么重要

The point is, design isn’t just about getting something to work—it’s about getting it right. The “design it twice” idea helps you avoid bad decisions and spot better solutions. And the best part is, this approach doesn’t take a lot of extra time, but it improves the quality of your designs and sharpens your skills.
关键在于,设计不仅仅是为了让某个东西能用,更在于让它完美无缺。“两次设计”的理念能帮助你避免错误的决定,并找到更好的解决方案。最棒的是,这种方法不需要花费太多额外的时间,却能提升你的设计质量,磨练你的技能。

Recently, I summarized this chapter in my Telegram channel, Byte-Sized Tech, where I regularly post summaries of tech books and share interesting blog posts. I started summarizing this book because it’s full of valuable lessons I’ve picked up (sometimes the hard way) over the years.
最近,我在我的 Telegram 频道 Byte-Sized Tech 上总结了这一章。我定期在这个频道上发布科技书籍的总结,并分享一些有趣的博客文章。我开始总结这本书,是因为它充满了我多年来(有时是通过艰苦的方式)积累的宝贵经验。

This “design it twice” idea really hit home for me. If I had applied it earlier, I could’ve saved myself from some embarrassing moments. So, if you’re like me, trying to improve your design skills, this chapter—and my channel—might just help you avoid those pitfalls too.
“设计两次”这个理念真的让我深受触动。如果我早点运用它,或许就能避免一些尴尬的时刻。所以,如果你像我一样,正在努力提升自己的设计技能,那么本章——以及我的频道 ——或许也能帮助你避免这些陷阱。

The next time you’re working on a design, don’t just settle for the first idea. Take the time to come up with alternatives. You’ll make better choices, and you’ll feel a lot more confident walking into that next design meeting.
下次进行设计时,不要只满足于第一个想法。花点时间思考其他方案。你会做出更好的选择,也会更有信心地参加下一次设计会议。


Looking for a powerful, self-hosted backend for forms?
正在寻找功能强大、自托管的表单后端?

I’m building Collecto — a production-ready tool designed to handle your forms with ease and security. Check it out here and be part of its journey!
我正在开发 Collecto—— 一款可立即投入生产的工具,旨在轻松安全地处理您的表单。 点击此处了解详情 ,加入我们的旅程!

Get notified when a new post comes out
发布新帖子时收到通知

Enter your email and we’ll shoot you a message whenever something new is published.
输入您的电子邮件,一旦有新内容发布,我们就会向您发送消息。