论坛首页 综合技术论坛

软件产品的四维立体分解法

浏览 4839 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-11-16  
ideafrog 写道
真是不好意思,在另外一个贴里面(闲聊软件过程),在请教o...z,在这里缺需要提不同意见:
1.我认为楼主的划分还是有一定的道理的,书本来就是薄到厚,又从厚到薄的过程。你是因为过了这个阶段,才认为其是忽悠。我认为是不错的总结。
2.第二维的引入,试图去解决软件实现优化的问题,即更好的实现某个功能。
3.第三维的引入,已经上升到了注重积累、强调复用的阶段。
4.第四维的引入,我觉得你好像没有理解楼主的意思(也许是我没有理解你,你的文字说实在还是比较难以读懂的),我认为他说的是技术方面持续改进的规划,对于产品中的核心模块、组件等来说,我觉得这是非常重要的。

上面是我对楼主四维论的理解,话又说回来,当这些都成为常识后(并不是人人都具有的),基本也没有多大的价值,就向对o..z。

我不觉得这个是理解深浅的问题,也不是理解的阶段性的问题。而是看问题的角度,和研究问题的方法的问题。实际上最近我在做一个FDD方法讲座的筹划的工作,在这其中我发现我的世界观和方法论都同以前有了很多的改变。而追究原因,并非是因为我对问题研究的更加深入,而仅仅是我能够更多的从自己是的实际经验出发去思考问题,而更少的受书本和他人学说的约束。

实际上我是经过分层理论的热烈传播起的,里面的来龙去脉还是比较清楚的。这里其实是一个历史观的问题。其实我们都应该清楚,历史上很多事情现在看起来充满来偶然和必然的结合,并且事后分析相关人貌似神秘的存在着深谋远虑的可能。而实际的情况是,当时的当事人仅仅是按照当时的情况被逼无奈,选择了一条当时看来最可行的路。这样逐步发展,造成了一个他神秘的深谋远虑的印象。但这仅仅是一个印象,这整个印象说成是实际发生的现实,那就是一种忽悠。

而更加关键的是第三维多引入存在诸多的问题,特别是如果和你所认为的第四维结合就更加说不通。这里我抛开企业级的复用和总结积累的关系不大的问题不谈(其实以前企业复用失败的根本原因就在此,也就是大家都误以为总结和积累才是复用的基础),就假设其复用的核心模块和组件是来自总结和积累。而实际上大家都会有体验,总结和积累存在一个量变到质变的问题,这一点是不以你意志为转移的。也就是说你无法计划好,你的总结和提炼在什么时候才能发生质变,从而去带动所谓的节奏化。而显然如果是你的持续化改进来自总结和积累,实际上如果保持测试的完整和构建技术的协调,你的改进就可以做到均匀进行,而不需要考虑节奏。另外还必须考虑到,既然来自总结和积累,外部环境的改变就会成为一个非常重要的要素。而外部环境的改变,我如何要看不出可规划性(除非他自己高呼:我就是上帝),这个时候又如何谈什么节奏性呢?

其实说实际的,楼主想要做的就是想找到一条线索把程序设计思想的发展趋势从前到后连续的构成一个链条。可惜的是,世界的发展是非线性的。这个是世界观的根本问题,而不是认识的深度问题。只要不建立起这个思维方式,你研究的再久再深入,依然没有啥大的进步。
0 请登录后投票
   发表时间:2007-11-17  
鄙人第一次在JavaEye上面发帖,说实话,做软件也不少年了,但一直属于潜水者,但对于灌水这件事情还是比较生疏。

本文写的比较匆忙,在写的过程中,还遇到JavaEye把内容丢失的情况,后来好像是他们将这个内容恢复过来,而后没有再添补什么就直接选了一个论坛发表了。

其实关于这块东西,还有很多实例可以补充,但由于本人工作比较忙,没能写那么翔实。

非常感谢o...z同学着墨如此之多的回复在下的愚见,我同意你的观点,不过,这篇文章并不是一篇讲架构的方法论,而是讲软件的认识论(不过,认识也会指导行为的方向),尝试提供一个简单的方法,来剖析软件,我的本意是咱们拿出四把刀,遇到一个软件,看看能不能直接用这四把刀把它给切了,从第一维的刀开始切,一直到第四维,有些软件比较简单,不需要那么复杂,可能切到第二刀,第三刀就可以了。

PS:o...z兄的文字实在是多,我看完有点晕,觉得被你忽悠了才是:D
0 请登录后投票
   发表时间:2007-11-17  
kadvin 写道
鄙人第一次在JavaEye上面发帖,说实话,做软件也不少年了,但一直属于潜水者,但对于灌水这件事情还是比较生疏。

本文写的比较匆忙,在写的过程中,还遇到JavaEye把内容丢失的情况,后来好像是他们将这个内容恢复过来,而后没有再添补什么就直接选了一个论坛发表了。

其实关于这块东西,还有很多实例可以补充,但由于本人工作比较忙,没能写那么翔实。

非常感谢o...z同学着墨如此之多的回复在下的愚见,我同意你的观点,不过,这篇文章并不是一篇讲架构的方法论,而是讲软件的认识论(不过,认识也会指导行为的方向),尝试提供一个简单的方法,来剖析软件,我的本意是咱们拿出四把刀,遇到一个软件,看看能不能直接用这四把刀把它给切了,从第一维的刀开始切,一直到第四维,有些软件比较简单,不需要那么复杂,可能切到第二刀,第三刀就可以了。

PS:o...z兄的文字实在是多,我看完有点晕,觉得被你忽悠了才是:D

首先,我觉得还是一个认识方法问题。恰恰就在于你试图用一个线索了解释软件开发思路的变迁,而实际上这个事情应该是多线索的。
其次,你讲的应该是思路的发展历史。按照时间顺序就可以了,究竟是以什么为规律,还是交给听者自己体会。
最后,我们遇到一个软件究竟该如何分析,并且随着环境的变化以及系统的变化修正自己的分析方法,这不是一个简单的事情。而你试图用简单的方法分析复杂的问题,在大多数情况下都是会失败的。
我文字确实比较多,而且很多部分不是针对你的,分清楚就不晕了。这年头我已经学油了,骂人都是在说其他的事情的时候骂的,所以你也不要对号入座。不过我确实觉得你可以以前是埋头干活太多了,自己思考总结的时间太少了。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics