# 第二季回归 | 我带着软件设计课回来了! 你好,我是郑晔! 在这个专栏的结束语中,我说过,如果以后有机会,我会再来与你分享我对软件开发的理解。我也和编辑说过,如果这个专栏合作顺利的话,我可能会写下一个专栏。 没错,我又回来了! 我们都知道,《10x程序员工作法》这个专栏,本质上是在讲如何有效工作,尽量地排除外部干扰,**不让别人给我们添麻烦**,把精力放在值得做的事情上。然而,当我们真正开始做值得做的事情后,我们做得又怎么样呢? * 别人修改了他的程序,结果你的代码崩溃了,因为你们在底层共用了一个变量。 * 不同的项目组竞争公共的测试环境,测出来的常常是一些可以在单元测试里就解决的小问题。如果问他为什么不自己做好单元测试,他的回答常常是不好测。 * 为了提高一段代码的处理性能,我们使用了多线程处理。结果,更多的Bug随之而来。 * …… 是不是有一种熟悉的感觉扑面而来?在我的职业生涯里,我接触过的许多项目都会不停地出现类似的问题。事后究其原因,很大一部分都是软件设计没做好所造成的。换句话说,都是程序员自己给自己挖的坑。 **如何避免给自己找麻烦**,这就是我要在新专栏里讨论的内容。 所以这次,我准备和你聊一下软件设计。 或许你会好奇,这些东西和软件设计有关系吗?软件设计不就是设计模式吗?我会在新专栏里告诉你,软件设计可比你想的内容多得多。它不仅可以教会我们如何组织代码,还会给我们提供一把尺子,用以衡量我们的设计。 学会了软件设计,我们甚至可以把许多问题消灭在萌芽阶段,不会让它们为害人间。 如果说**这个专栏是在告诉你要做正确的事**,做有价值的需求,别把时间浪费在不该做的事情上。那[软件设计专栏](http://gk.link/a/10iul)就是告诉你如何把事做对,**如何建立有效的模型,划清模块之间的边界**。所以,二者可谓一脉相承。 这个专栏是我工作之外的思考,新专栏则是我本职工作的深思。来吧!加入我的软件设计课,和我一起继续扫除障碍,让我们的开发之旅更加顺畅! 为了感谢老同学,我还准备了一个「专属优惠」: 5 月 25 日,专栏上新时,我会送你一张 10 元专属优惠券,可与上新优惠同享,有效期截止 6 月 5 日,建议尽早使用。 **点击下方图片**,立即免费试读新专栏。 [![](https://static001.geekbang.org/resource/image/e0/37/e0651b2b18a5f584b6798792e6bcb337.png)](https://time.geekbang.org/column/intro/313?utm_term=zeusBE50C&utm_source=app&utm_medium=10xjiacan&utm_campaign=presell-313&utm_content=yinliu)