事实上在现代软件开发中我认为根本不应该存在详细设计这一步骤。
或者说这一步骤可以直接用代码写了……
因为现代编程语言早就已经具备了直接做详细设计的能力了。
事实上详细设计,就是用另一种语言,或者说看起来像是自然语言的一种语言写代码罢了。
之所以传统的软件开发过程中需要进行详细设计,是因为传统的软件开发过程被认为是一个系统性的工程工作,其中每一步都被无限细化,出具详细设计文档之后再进行编码工作可以无限降低对程序员的要求(是的没错,早期的程序员就是输入员而已)。
事实上我认为严格按照格式编写的详细设计文档是可以直接用计算机直接编译出结果来的。
在现代软件开发中,看起来我们省略了设计的步骤,但实际上我们并没有省略。敏捷软件开发的理念,其具体而言就是专注于有价值的事情。如果我们可以用接口设计代替概要设计,用现代代码和基础类库的调用代替详细设计。那我们纠结于文档的形式做什么呢?
我就不能把接口写完了让计算机给我生成出接口设计的文档出来?
用单元测试代替设计文档,不仅可以节省纸张,节能环保,还能使你的软件质量得到更好的保证。作为现代程序员,应该充分利用电脑来自动化处理繁琐的重复低效劳动。而不是将传统行业的所谓经验奉为圭臬。
至于UML这种史前时代的遗老遗少,老实讲我直接把代码敲完让VS帮我生成出来比自己画还快。
然后问题来了,我代码都敲完了,画这鸟玩意儿干甚?要看的自己找个工具生成去不就好了。
不存在详细设计。或者说,能够无歧义地表达“详细设计”这么细的粒度,只有代码。 所以详细设计好了,软件也实现了。
如果谁告诉你要用某种文档或者建模语言比如UML来做详细设计然后再叫程序员实现,那么可以断定这货是个骗钱的“架构师”。叫他滚