×

软件应用的发展演化

消耗积分:1 | 格式:rar | 大小:0.3 MB | 2017-10-12

分享资料个

 做软件开发够久的话,就会注意到模式的问题。尚未讨论透彻的一个模式就是系统如何随着时间变化。软件行业总着眼于当下的风格,让我们失去了大局观。如今,大多数的“发明”都是数十年前所创造的,我们面临的大多问题也是别人解决过的。
  软件开发者并不怎么了解我们的历史。本着这样的想法,本篇将阐述笔者对软件未来发展的看法,还有相关原因。
  综述
  开始前,我们需要定义一个术语:软件地心引力(Software Gravity),这是一种随着时间发展将功能、复杂性与资源引向软件系统的力量,正是它推动软件发展的力量。
  软件应用的发展演化
  软件会随着时间而愈加复杂,正是功能请求与用户期望构成了软件地心引力。这种地心引力为软件带来复杂性,复杂性又对资源形成需求。
  块魂效应
  我称之为块魂效应(Katamari Damacy,一款操纵王子通过不断黏住周围的物体来增加自己身前的球状物的大小),就像游戏中那样,功能持续增长,就像滚雪球一样形成了日益复杂的雪球。
  
  从小而简单的东西,无可避免地成长为庞然大物。最终,功能雪球可能会被错当成月亮。这个球定期会变得太过复杂,导致工作无法进行下去,只能通过重构来适应现有的可用资源。由于这个原因,软件是按照某种可预测的方式来发展的。
  
  软件发展阶段
  初始阶段:人、纸、excel
  第一阶段:简单的脚本
  第二阶段:一堆文件
  第三阶段:框架
  第四阶段:超越框架
  第五阶段:模块化
  第六阶段:网络系统
  
  所有的软件都处于其中的某个阶段。在阶段之间为了处理块魂效应,有一个自然发展的过程。随着系统越来越复杂,需要用不同的方式来解决问题。
  复杂性决定了系统所处的发展阶段,进化的阶段决定了代码和团队具体的形态,不可反推。在这个过程中,反复出现的主题就是分而治之,各个击破。随着复杂程度增长,最有效的方式就是将大问题拆成较小的问题。
  我经常看到程序员为了哪个工具才是最佳解决方案而争论不休。这与程序员在软件特定复杂度上的经验关系更大,而不是出于具体需求的需要。对所有系统来说,最好的语言、工具、数据库或框架并不存在。随着需求变更,方法也要产生相应的变化,否则只会浪费时间和金钱。
  初始阶段:人、纸、excel
  软件最开始并不是软件,大多数软件的存在是为了让现有的过程自动化,或者有效地沟通信息。软件最初的形态就是人们用纸和电子表格,还有其他的沟通手段来解决问题,这也是被我称为初始阶段的系统。
  

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !