词条信息

admin
admin
超级管理员
词条创建者 发短消息   

相关词条

热门词条

更多>>
什么是端口?到底是做什么的呢?
端口一般指两种,一种是硬件比如路由器或者交换机的插网线的端口,一种是软件的逻辑的概念,比如http的80端口!...
7种进阶方法让你快速测试端口连通性
Ping是Windows、Linux和Unix系统下的一个检查网络连通性的命令工具,对于大部分互联网用户来说很...
电脑开机,总需要按F1,是什么原因造成的?
一.主板掉电这个说法是行业内的叫法了,一般是主板的CMOS电池没电了导致的。也是最常见的一种提示你按F1的提示...
社保降费对个人有什么影响?
下调城镇职工基本养老保险单位缴费比例是政府给企业发的一个大红包,特别是对于企业来说是一个利好,但是对个人来说有...
车辆“出险”对下年保费的影响,到底有多大?
【出险对交强险的影响】【出险对商业险的影响】车辆“出险”对下年保费的影响,到底有多大?这里有必要先提下车险第三...

精选图集

更多>>
简易百科旧版 >>所属分类 >> 程序开发   

软件开发的核心

标签: 软件开发

顶[0] 发表评论(0) 编辑词条

  有关软件系统开发,我们谈些什么?

  我们谈过程,编码规范、开发流程、同行评审、结对编程、持续集成,从瀑布到敏捷再到极限编程。

  我们谈架构,企业级、J2EE、容器化、SOA(面向服务架构)、Microservices(微服务化)。

  我们谈规模,大容量、高并发、大数据。

  我们还谈可靠性、可用率、n个9、响应时间等等。。。

  这一切的核心是什么?

  先讲个电力行业的一个故事,电力的项目我没做过,对电厂的原理虽有所了解,但看见那些大规模的电站还是感觉挺复杂的。 故事是这样开始的:

  记得有个给我们上培训课的主讲老师是个须发皆白的老先生,进门后掏出一堆零件放在讲台上, 一盏酒精灯、一个小水壶、一个叶片、一个铜光闪闪的小电机、一盏小灯泡。 老先生往壶里倒了些水,点燃酒精灯,不一会儿水开了,从壶嘴里喷出了蒸汽,带动叶片旋转,然后小灯泡就亮了。

  他说:这就是电厂。

  他还说:如果烧的是煤炭,这就是燃煤电厂;如果烧的天然气,这就是燃气电厂;

  如果获得热能的方式是核裂变,这就是核电厂;如果带动叶片的能量来自水从高处流向低处,这就是水电厂。

  老先生说:你们或许会问 “那我们看到的电厂怎么这么复杂”,答案其实很简单, 电力项目需要复杂系统的目的,一是为了确保安全(Safety),二是为了提高效率(Efficiency)。

  安全和效率的平衡,是所有工程技术的核心。

  看完这个故事,我就感觉到所谓 “大道至简” 大概就是这样的。

  开发软件系统的根本在于满足需求,不能满足需求的系统本身是没有意义的。 就像一个再安全、有效率的电厂不能发电又有什么意义呢。 所以软件系统开发也就是围绕根本的基础上确保安全与提高效率。

  需求作为软件的根本差异很大,需求是多样,需求也是复杂的。 一个大型 ERP 系统,一个大型仓储系统,一个大型网站系统,到底谁更复杂,没有一个定量标准,甚至都不好定性分析。 所以前面我们谈软件系统开发那么多内容都是关于 “安全” 和 “效率” 这两个围绕根本的核心。

  所有软件开发的方法论,像瀑布、敏捷到极限编程围绕的是开发活动的效率问题,而编码规范、流程制定、同行评审等等则是有关开发的安全问题。 那么 SOA 化或进一步微服务化其实同时考虑到了安全与效率,服务化拆分有利于大规模开发团队的并行开发,提升了开发效率, 但上线部署复杂了降低了运维效率,但运维效率可以通过自动化来得到弥补,而开发则不可能自动化。

  同理,可靠性、可用性和容灾设计这些活动都是围绕 “安全” 这个核心,而性能优化,提升响应性则是围绕 “效率”。 有些关键的软件系统必须同时兼顾 “安全” 和 “效率”,例如用在飞机、汽车内用于控制起落、刹车、油门的软件系统, 不安全或无效率造成事故是会死人的,而另外一大部分软件系统因为不安全或无效率造成的事故则死的是钱。

  没有人去争论建设电厂到底是不是一门艺术,但肯定有人在争论软件开发(程序设计)到底是不是一门艺术, 但终究大部分的软件系统开发还是更偏向于工程技术。

 

 

附件列表


按字母顺序浏览:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

→我们致力于为广大网民解决所遇到的各种电脑技术问题
 如果您认为本词条还有待完善,请 编辑词条

上一篇分布式数据库
下一篇持续集成是什么?

0
1. 本站部分内容来自互联网,如有任何版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
2. 本站内容仅供参考,如果您需要解决具体问题,建议您咨询相关领域专业人士。
3. 如果您没有找到需要的百科词条,您可以到百科问答提问或创建词条,等待高手解答。

关于本词条的提问

查看全部/我要提问>>