也谈软件工程!

csdn中看到不错的贴子
http://blog.csdn.net/panaimin/archive/2006/07/12/907957.aspx?Pending=true
里面讨论到了软件工程方面的东东,感觉蛮有意思,于是自己也回了贴,谈谈自己的看法。

贴中原文:
关于软件工程,我并不看重。我更相信人对代码的控制能力,正常人对于正常复杂程度的代码,控制几十万行代码应该是可以的;如果软件总体上有很好的结构设计,模块之间有稳定、合理的接口,那么,仅仅依靠人的脑袋,加上良好的编程习惯,即使面对大型的软件,应该也能控制。”
---------------------------------

不太理解PAN老师写的这段话!
如果软件总体。。有好的结构设计,,XX稳定,,”
最大的前提是这些都做的比较好的情况下,再加上后面讲到的人的控制,才可能成就一个好的项目。那么我想问的是,好的架构,设计,合理稳定的模块接口那里来呢?若没猜错,应该是来自好的分析设计,包括架构的,业务的等等,对不对?好的分析设计怎么来呢?应该来自架构师,分析师吧!架构,分析师不可能在做完一个项目又一个项目之后不去思考总结吧?在架构,分析师通过对一个个项目的分析设计后,一定想找到一个统一的标准或模板以便在下面项目中能够利用以住项目经验,更好的为以后项目开发服务,说的大一些是否应该就是让软件的开发更像我们建立房屋,建立桥梁一样更工程化一些呢?

反过来讲,我也相信人脑袋创造,控制等能力,但对于越来越复杂的业务逻辑,就要求软件应该像其它行业学习,规范化,工程化。因为人的脑力在单个时间内的思考是有限的,这就需要我们有一套工程化的东西理论来指导我们工作。可能有人会说:不用工程化,理论化这些东西也能解决啊,用我的经验呗,没错,非常正确,经验非常重要,但如果从另一个层次来理解经验会是什么呢?若把多人的经验稍加改造,定成标准,写入书本,是不是就是我们说的工程化了呢(当然,前提是这些解决之道的能够值得化书本记录下来,传给后人,以备参考)?

因为我个人认为,软件工程就是一些经验的总结。解决问题或事情方面,应该没有所谓的银弹或大牛,若有,那么我宁可相信是:在解决某问题时,他会抛出n个解决方案,然后权衡各方面的利弊得出1个较为正确的
方案,经大家的验证,这的确是行之有效的解决方案,于是尊为大牛!

这样看来,软件工程,在一定情况下,一定语境中,合适的去用,是有必要的。试想,三峡大坝也不是个人拍脑袋或是个人的经验就能解决吗?
当然这些都是见仁见智的事情。

写的有些乱,希望未曲解PAN老师的意思,纯属一家之言,欢迎斧正!
另找到一篇类似但写的较好的文章:
http://www.zhangxun.com/tmpl_book.aspx?sname=cc2e

原文地址:https://www.cnblogs.com/linfuguo/p/456574.html