2345技术员联盟

软件应用的发展演化

  • 来源:未知 原创
  • 时间:2018-04-15
  • 阅读:
  • 本文标签:

    做软件开发够久的话,就会注意到模式的问题。尚未讨论透彻的一个模式就是系统如何随着时间变化。软件行业总着眼于当下的风格,让我们失去了大局观。如今,大多数的“发明”都是数十年前所创造的,我们面临的大多问题也是别人解决过的。软件开发者并不怎么了解我们的历史。本着这样的想法,本篇将阐述笔者对软件未来发展的看法,还有相关原因。综述开始前,我们需要定义一个术语:软件地心引力(Software Gravity),这是一种随着时间发展将功能、复杂性与资源引向软件系统的力量,正是它推动软件发展的力量。软件会随着时间而愈加复杂,正是功能请求与用户期望构成了软件地心引力。这种地心引力为软件带来复杂性,复杂性又对资源形成需求。



   块魂效应我称之为块魂效应(Katamari Damacy,一款操纵王子通过不断黏住周围的物体来增加自己身前的球状物的大小),就像游戏中那样,功能持续增长,就像滚雪球一样形成了日益复杂的雪球。从小而简单的东西,无可避免地成长为庞然大物。最终,功能雪球可能会被错当成月亮。这个球定期会变得太过复杂,导致工作无法进行下去,只能通过重构来适应现有的可用资源。由于这个原因,软件是按照某种可预测的方式来发展的。软件发展阶段初始阶段:人、纸、excel第一阶段:简单的脚本第二阶段:一堆文件第三阶段:框架第四阶段:超越框架第五阶段:模块化第六阶段:网络系统所有的软件都处于其中的某个阶段。在阶段之间为了处理块魂效应,有一个自然发展的过程。随着系统越来越复杂,需要用不同的方式来解决问题。




    复杂性决定了系统所处的发展阶段,进化的阶段决定了代码和团队具体的形态,不可反推。在这个过程中,反复出现的主题就是分而治之,各个击破。随着复杂程度增长,最有效的方式就是将大问题拆成较小的问题。我经常看到程序员为了哪个工具才是最佳解决方案而争论不休。这与程序员在软件特定复杂度上的经验关系更大,而不是出于具体需求的需要。对所有系统来说,最好的语言、工具、数据库或框架并不存在。随着需求变更,方法也要产生相应的变化,否则只会浪费时间和金钱。初始阶段:人、纸、excel软件最开始并不是软件,大多数软件的存在是为了让现有的过程自动化,或者有效地沟通信息。软件最初的形态就是人们用纸和电子表格,还有其他的沟通手段来解决问题,这也是被我称为初始阶段的系统。



   例如:复式记帐始于以纸张为基础的阶段。会计师会保存两套记录,并互相比对、去除错误。这也是我们称之为复式记账的原因。软件借用了这种形式,将它搬到电子表格、数据库和在线事务处理中。基本上这两者是一回事。电子记账系统速度更快、价格更低,不过结果是一样的。无论系统有多复杂,都是在解决同一个问题。在很多情况下,初始系统比复杂的软件系统更可取。例如:有100万个todolist应用。对我来说,要记录每日目标,没什么比得上一支笔、一个笔记本了。软件必须提供重要的沟通功能,或将非软件解决方案自动化的益处,否则就不应该存在。要记住我们所处的行业就是改善沟通与自动化的行业,而不是写代码的行业,这样才能聪明行事。

本文来自电脑技术网www.it892.com),转载本文请注明来源.
本文链接:http://www.it892.com/content/opapp/software/20180415/87797.html

无觅相关文章插件,快速提升流量