zoukankan      html  css  js  c++  java
  • 软件升级的意义

    在软件升级的过程中,经常有一个问题,即软件是否应该向下兼容。

    我有幸经历了组里项目引擎升级的过程。在升级引擎的过程中,我一直有这样的疑问,却没有想明白,直到于有一天,我想起一个很基本的问题:升级引擎的目的是什么?

    一般来讲,人做一件事总是有目的的。吃饭是为了吸收营养,喝水是为了解渴。软件升级也不例外,最初决定升级引擎的时候,给出的说法是这样的,“为了保持和延长项目的生命。项目开始时采用的那些技术在现在已经是落后的了,而这个项目至少还有几年的生命。如果现在不做一些软件升级的事情,将来的软件维护和升级会更加困难”。初听很有道理,乍一想却毫无道理,这好比是在说,为了升级而升级,或者说,这次升级软件的目的是模糊的。

    的确,与时俱进的软件常常有顽强的生命力。但升级软件始终应该有一个目的,有了目的,才知道一些选择应该如何取舍。通常来讲,软件升级的目的一般是为了获得某些新的特性,也就是说我们的目的不是提升软件的版本号,而是为了获取新功能。这时候,或许可以采取部分部分模块的方式,而其他部分则可以保持原样。有时会遇到一些兼容性问题,有可能新的特性是旧就功能冲突的,相信这个时候你就需要仔细考虑自己的目的,究竟孰轻孰重,应该如何取舍,新的特性是否能体现出足够大的价值,而保留旧功能是否违背了软件升级的意义。一般来说,一些程序在升级的过程中会保留旧的api,他总需要保留自己的用户。毕竟,编写软件的最终目的是为了用户的使用。反过来,如果我们最终的用户并不是程序人员,那么保留旧的api和代码还有多少意义?是否还必须保留?多数情况下,我们使用各种技术和手段来实现用户的需求,完成最终的产品。用户只是通过ui交互来使用软件,这样的情况下,也许向下兼容的意义可以理解为保留软件原有的业务功能,实际上程序是可以进行大刀阔斧的改变,前提是你得有足够的能力,你必须“不行损害之事”。而这往往是很难的,所以才有这样的说法:最好让软件保持原状。

  • 相关阅读:
    【LeetCode】-- 73. Set Matrix Zeroes
    (第三场) A PACM Team 【dp,五维背包】
    POJ 1745 【0/1 背包】
    (第三场) H Diff-prime Pairs 【数论-素数线性筛法+YY】
    POJ 2299 【树状数组 离散化】
    树状数组 && 线段树应用 -- 求逆序数
    HDU 1698 【线段树,区间修改 + 维护区间和】
    HDU 1166 【线段树 || 树状数组,单点修改 维护区间和】
    (第二场)D Money 【dp贪心】
    (第二场)A Run 【动态规划】
  • 原文地址:https://www.cnblogs.com/afraidToForget/p/9532156.html
Copyright © 2011-2022 走看看