设计不是一件玄事
2005-11-01 16:27
267 查看
上周末写了一篇《面对高手们时的郁闷》,语气可能有点不大好。mikeshi看了貌似有些意见,还特地回应了一篇《毕竟是干同一个行业的》。而鹿鸣则认为做什么事做熟了都会倦怠,不论是Coding还是Designing。
看来我有必要再次说明一下我的观点。我一向是不太赞同所谓的“软件工程”以及与之相关的一切重方法论,因为我觉得对于绝大多数软件开发工作来说,这些并不是很有效的手段。我的观点是站在XP为代表的轻方法论和软件工艺这边的,Coding即Designing。
因
此,我不会认为Coding和Designing是对立的。但是我们现在很多情况是:相当多的Coder做的就是基本的印度式的机械化的Coding工
作,所做的只是把别人的设计翻译成代码。而问题在于,那些设计人员的设计又往往是高来高去的扯淡,脱离实际情况,二者的矛盾就必然存在。这也是为什么我一
直不太喜欢软件工程的说法。
其实设计不是什么玄事。建筑之所以需要设计是因为一旦开始建设,再要进行改动就要付出很大的代价。但软件开发不是这样的,在TDD的支持下,你可以在Coding的过程中,随时进行重构,调整设计,消除Bad smells。Designing存在于Coding中。
老生常谈没什么意思,主要还是为了澄清在《面对高手们时的郁闷》
一篇里的误会。我上面说了这么多,只是想说明,那天我们几个讨论的并非是什么高深的“设计思想”,我们也不可能谈那些高来高去的东东,而且这也与
BeLost的问题无关,我们只是谈了一下各自对此问题的实现思路,除了没有具体代码以外,并没有离开代码太远。但是他不能理解那个控件的代码,我们总不
能从Windows的消息机制开始给他讲一遍吧。再说,他出言不逊的时候,有没有想过我们的感受呢?
所以每次有人问到我关于线程的一些很基础的问题的时候,我都会建议他们去看看《操作系统原理》这样的基础教科书。因为我认为我没有义务为这些人补上他们应该在学校就学到的知识。
BTW:mikeshi又补了一篇《上一篇文章的中心思想》。不过他这篇把问题扯到决策者上去,那就扯得更远了,离题的话就不说了。
再补:令狐这篇《[技术]也谈设计》表达得更清楚。
看来我有必要再次说明一下我的观点。我一向是不太赞同所谓的“软件工程”以及与之相关的一切重方法论,因为我觉得对于绝大多数软件开发工作来说,这些并不是很有效的手段。我的观点是站在XP为代表的轻方法论和软件工艺这边的,Coding即Designing。
因
此,我不会认为Coding和Designing是对立的。但是我们现在很多情况是:相当多的Coder做的就是基本的印度式的机械化的Coding工
作,所做的只是把别人的设计翻译成代码。而问题在于,那些设计人员的设计又往往是高来高去的扯淡,脱离实际情况,二者的矛盾就必然存在。这也是为什么我一
直不太喜欢软件工程的说法。
其实设计不是什么玄事。建筑之所以需要设计是因为一旦开始建设,再要进行改动就要付出很大的代价。但软件开发不是这样的,在TDD的支持下,你可以在Coding的过程中,随时进行重构,调整设计,消除Bad smells。Designing存在于Coding中。
老生常谈没什么意思,主要还是为了澄清在《面对高手们时的郁闷》
一篇里的误会。我上面说了这么多,只是想说明,那天我们几个讨论的并非是什么高深的“设计思想”,我们也不可能谈那些高来高去的东东,而且这也与
BeLost的问题无关,我们只是谈了一下各自对此问题的实现思路,除了没有具体代码以外,并没有离开代码太远。但是他不能理解那个控件的代码,我们总不
能从Windows的消息机制开始给他讲一遍吧。再说,他出言不逊的时候,有没有想过我们的感受呢?
所以每次有人问到我关于线程的一些很基础的问题的时候,我都会建议他们去看看《操作系统原理》这样的基础教科书。因为我认为我没有义务为这些人补上他们应该在学校就学到的知识。
BTW:mikeshi又补了一篇《上一篇文章的中心思想》。不过他这篇把问题扯到决策者上去,那就扯得更远了,离题的话就不说了。
再补:令狐这篇《[技术]也谈设计》表达得更清楚。
相关文章推荐
- Android为什么要设计出Bundle而不是直接使用HashMap来进行数据传递 Android内存优化(使用SparseArray和ArrayMap代替HashMap)
- 为什么MVC不是一种设计模式?
- 应用设计细节控:让刷新成为一件有趣的事儿!
- Android为什么要设计出Bundle而不是直接使用HashMap来进行数据传递?
- 继承自TWinControl的控件不能在设计期间接受子控件,用代码设置子控件却可以(它的自绘是直接改写PaintWindow虚函数,而不是覆盖Paint函数——对TWinControl.WMPaint又有新解了)
- TDD:先使用你的设计而不是先实现你的设计
- 数据结构:有人设计以下算法用于删除整数顺序表L中所有值在[x,y]范围内的元素,该算法显然不是高效的,请设计一个同样功能的高效算法。
- 好的架构不是设计出来的,而是演进出来的
- 好的代码不是设计出来的,而是重构出来的
- 设计不是一个人就可以做出来的,集思广益通常到了中国就变成了意气之争,面子问题了
- main.xml Design显示不是设计界面,而是view属性的解决办法
- 优化网站设计(二十七):使用link而不是@import导入样式表
- 变懒了不是一件好事
- 在网上找来的几个大牛,忽然觉得自己来参加ACM倒也不是一件错误的事情,梦想总是要有的,万一成了呢。
- 生活不是一件易事
- 软件架构之——好的架构是进化来的,不是设计来的
- 不是三维——软件项目的设计、开发与管理
- 没想到做个博客也不是一件容易的事啊
- 设计模式是不是一件脱裤子放屁的事
- 微信客户服务最难的不是功能设计和开发,而是对微信客户服务运营的理解