读控制论的一些思考
2010-10-09 17:35
141 查看
读控制论的一些思考 收藏
"我们便在滤波器的设计工作中,把原来具有经验性的甚至有些偶然性的过程,代之以具有透彻的科学判断的过程" -控制论 by N.维纳(维纳是现代控制技术和计算机技术的创始人)
当我看到N.维纳写的这句话的时候,结合过去在做若干软件系统设计的过程中遇到的问题,有感而发,(个人的经验)
02年,我为金财工程做一个子系统开发,05年在用友做协同办公产品的设计,以及在去年为CTI软件开发流程系统的这一系列工作中,我基本上都采取着本文开头那句话的前半段"把原来具有经验性的甚至有些偶然性的过程"中的方法在处理各种需求,既是用经验和灵感在解决这些问题,这种把经验和灵感结合起来处理实际问题的办法其实很普遍,包括在其它行业里面。。。。但是随着需求的变换,随着系统的日益复杂化,甚至是应用环境的变化,这些仅仅依靠经验和灵感设计出来的系统就显示出某些困境,比如:在一个架构上面加上另外一个架构,一个重一个,一个叠一个,由很多架构搭建起来的系统,终于由于自身代码的复杂性使整个系统陷入崩溃的地步,最后只好放弃它或者就那样扔给用户勉强使用。。用户一用就BUG百出,改起来越来越困难,而且系统越改越复杂,最后连改都不敢改。。。也许我说的这种情况并不多见,但是至少我遇到过,现在看来并非水平问题,而是方法问题,其实这种问题恰恰是很多水平比较高且具有一定经验的软件工程师常常做的事情。我这里并不是要提出怎么解决这些问题,因为我还不具备这种能力,毕竟实际工作中遇到的问题很复杂,谁也不可能给用户和老板拍胸脯说“没问题”。可是怎么办呢? 为了寻找答案,我不得不回到过去(不是坐时间机器),寻找先哲们的思想。“代之以具有透彻的科学判断的过程”,这句话的意思就是说。。用经验和灵感处理问题的过程必须被彻底的科学判断方法所替代,而什么是彻底的科学判断呢? 根据我的理解,维纳所说的科学判断方法应该是一种使用非常清晰的数学语言来描述问题的方法,综合应用各种已知的数学工具把问题分析得非常清楚之后,再做出处理。。这恰恰是我们常常忽视的办法,因为项目时间紧,用户要得急,老板逼得紧这些客观原因使得我们无法这样做,但是很多情况下却是主观上我们没有往这个方面想,总觉得依靠自己的那点经验和灵感就可以解决问题,就可以完成系统的设计。。。因此在做系统设计的过程中,该做的功课,该完成的设计步骤是不能够因为时间紧而抛弃,该采用什么数学方法和工具就必须使用,不能够因为不了解和不知道就不使用,很重要的一点就是,必须自觉的把数学语言引入到系统分析和设计过程中,只有慢慢养成这种以数学语言和工具为分析与设计的基础的习惯,才能够真正使自己成长为一个合格的软件工程师,才能够真正使自己设计的软件经得起用户和市场的考验。。。。。。。
相关文章推荐
- 读控制论的一些思考
- 关于 equals 和 == 的一些思考
- 对STM32 HAL库的一些思考(一)SPI通信的数据格式问题
- 关于商品中心的一些思考
- 关于goto和switch的一些思考
- 关于sessions.ser文件的一些思考
- 一些思考,一点总结
- 【转】关于使用GUID和Identity做主键的一些思考
- node2vec的一些思考
- 关于代码质量的一些思考
- 一些逻辑问题思考
- 关于网络隐私的一些思考
- 关于团队,leader必须要思考的一些问题
- 关于产品的一些思考——(四十一)网易之有道云笔记
- IOCP的一些思考(粘包,断包的处理)
- 游戏服务器架构设计中的一些思考
- cocos2dx-lua里面class的实现的一些问题记录和思考
- Ctorrent :关于NAT 的一些思考
- sizeof()的一些思考,地址里到底存了哪些信息
- Go游戏服务器开发的一些思考(三十一):排行榜服务器设计思路(二)