You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
2.9 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 第二季回归 | 我带着软件设计课回来了!
你好,我是郑晔!
在这个专栏的结束语中,我说过,如果以后有机会,我会再来与你分享我对软件开发的理解。我也和编辑说过,如果这个专栏合作顺利的话,我可能会写下一个专栏。
没错,我又回来了!
我们都知道《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)