Atiitt 兼容性提升的艺术 attilax总结 目录 1. 兼容性产生的原因 2 1.1. Api变化 2 1.2. 需求的资源不满足 2 2. 兼容性的分类 2 2.1. Web方面的兼容性

Atiitt 兼容性提升的艺术 attilax总结

 

 

目录

1. 兼容性产生的原因 2

1.1. Api变化 2

1.2. 需求的资源不满足 2

2. 兼容性的分类 2

2.1. Web方面的兼容性(jshtml,相同源码不同项目的实现 5 2

2.2. 8. 数据库表兼容性 7 2

2.3. 5. Api兼容性 3 2

2.4. 6. 接口兼容性 4 2

2.5. 9.2. 3.1. 完美的后向兼容性  vs  与前向兼容 2

3. 兼容级别 3

3.1. Abi兼容 3

3.2. Api兼容 3

4. 实现前向兼容 面向未来的兼容 3

4.1. 搜集新特性 未来基础版本api很可能实现这些新特性 3

4.2. 考虑草案api的兼容性 3

4.3. 多编码文字 3

5. 常见的出现兼容性的地方 4

5.1. 多字节编码的文字 ascii文字 4

5.2. 没有考虑汉字路径 空格路径等 4

5.3. 当前用户权限不足 4

5.4. 连续调用 4

6. 方法总结 4

6.1. @Deprecated模式   标注过期,但不删除 4

6.2. Try catch throwable 4

6.3. ,shimpolyfill.机制 4

6.4. 策略器模式 5

6.5. 适配器模式 5

6.6. 9.7. 6. 专门处理的软件列表 9 特殊判断 5

6.7. 谨慎修改 5

6.8. 冗余api备份机制,最起码同一个操作,使用俩个不同的api实现, 5

6.9. 兼容性api 5

6.10. 增加新api说明 5

6.11. method加版本号数字日期版本号 6

6.12. 统一 api  多语言 6

6.13. 使用中间库隔离层来兼容 6

6.14. 只新增,少修改,莫删除 2 6

6.15. 5.2. 增加新api  而不是  修改旧的api 4 6

6.16. 5.3. Threadlocal 参数兼容 6

6.17. 6.2. 修改接口(应该发布一个新接口,固化老接口 5 7

6.18. 8. 数据库表兼容性 7 7

6.19. 8.1. 2. 扩展表模式 7 7

6.20. 9. 兼容性策略 7 7

6.21. 兼容模式只针对开发者不愿意或者无法提供升级的场合 7

6.22. 兼容性补丁 8

7. 最佳实践总结 8

7.1. 兼容性文档与流程 8

7.2. 兼容性sdk 8

8. Ref 8

 

 

1. 兼容性产生的原因

1.1. Api变化

1.2. 需求的资源不满足

比如新环境jar包不足

2. 兼容性的分类

2.1. Web方面的兼容性(jshtml,相同源码不同项目的实现 5

2.2.  8. 数据库表兼容性 7

2.3.  5. Api兼容性 3

2.4.  6. 接口兼容性 4

2.5.  9.2. 3.1. 完美的后向兼容性  vs  与前向兼容

 

3. 兼容级别

3.1. Abi兼容

3.2. Api兼容

4. 实现前向兼容 面向未来的兼容

4.1. 搜集新特性 未来基础版本api很可能实现这些新特性

4.2. 考虑草案api的兼容性

4.3. 多编码文字

 

5. 常见的出现兼容性的地方

5.1. 多字节编码的文字 ascii文字

5.2. 没有考虑汉字路径 空格路径等

5.3. 当前用户权限不足

5.4. 连续调用

6. 方法总结

6.1. @Deprecated模式   标注过期,但不删除

6.2. Try catch throwable  

6.3. ,shimpolyfill.机制

JavaScript的世界里,有两个词经常被提到,shim和polyfill.它们指的都是什么,又有什么区别?
一个shim是一个库,它将一个新的API引入到一个旧的环境中,而且仅靠旧环境中已有的手段实现
一个polyfill就是一个用在浏览器API上的shim.我们通常的做法是先检查当前浏览器是否支持某个API,如果不支持的话就加载对应的polyfill.然后新旧浏览器就都可以使用这个API了.术语polyfill来自于一个家装产品Polyfilla:

Polyfilla是一个英国产品,在美国称之为Spackling Paste(译者注:刮墙的,在中国称为腻子).记住这一点就行:把旧的浏览器想象成为一面有了裂缝的墙.这些[polyfills]会帮助我们把这面墙的裂缝抹平,还我们一个更好的光滑的墙壁(浏览器)

shim 的概念要比 polyfill 更大一些,可以将 polyfill 理解为专门兼容浏览器 API 的 shim 。简单的说,如果浏览器X支持标准规定的功能,那么 polyfill 可以让浏览器 Y 的行为与浏览器 X 一样。

6.4. 策略器模式

6.5. 适配器模式

6.6.  9.7. 6. 专门处理的软件列表 9 特殊判断

Jq就是这么搞得 提示兼容性

 

6.7. 谨慎修改

6.8. 冗余api备份机制,最起码同一个操作,使用俩个不同的api实现,

避免了某个api变动造成影响。。。最好把他搞成一个兼容性api库,方便使用。

 

6.9. 兼容性api

6.10. 增加新api说明

在调用旧的api的时候,增加注释以及输出,表明此api已经过时,显示最新的api提示

 

6.11. method加版本号数字日期版本号

 

 

6.12. 统一 api  多语言 

6.13. 使用中间库隔离层来兼容

 

 

 

3. 3. 同时运行模式 1

3.1. 3.1. 完美的后向兼容性 2

3.2. 3.2. 虚拟机模式 2

3.3. 3.3. 版本兼容性模式 2

4. 4. 向前兼容(为升级预留足够余地) 3

5. 5. “向前兼容”理念 3

6. 6. 专门处理的软件列表 3

7. api  vs  修改旧的api

 

6.14.   只新增,少修改,莫删除 2

 

 

5. Api兼容性 3

5.1. 创建新的api应该使用什么标准??? 4

6.15.  5.2. 增加新api  而不是  修改旧的api 4

6.16.  5.3. Threadlocal 参数兼容

6. 接口兼容性 4

6.1. 新的接口去继承原来的接口,把新增的方法在子接口中声明。这样可以保持100%向前兼容 4

6.17.  6.2. 修改接口(应该发布一个新接口,固化老接口 5

7. Web方面的兼容性(jshtml,相同源码不同项目的实现 5

7.1. 15.1. 不同的项目与不同的实例启动 5

7.2. 15.2. 不同的项目与实例配置文件 6

7.3. 15.3. Web.xml怎么办?? 6

7.4. 15.4. 跳转到同一功能spec的不同实现 6

7.5. 15.5. 不同项目的同一功能就实现可以放在同一上级模块package 6

6.18.  8. 数据库表兼容性 7

6.19.  8.1. 2. 扩展表模式 7

6.20.  9. 兼容性策略 7

9.1. 3. 同时运行模式 7

9.2. 3.1. 完美的后向兼容性 8

9.3. 3.2. 虚拟机模式 8

9.4. 3.3. 版本兼容性模式 8

9.5. 4. 向前兼容(为升级预留足够余地) 9

9.6. 5. “向前兼容”理念 9

9.8. Atitit.兼容性的“一加三”策略(不推荐) 10

 

6.21. 兼容模式只针对开发者不愿意或者无法提供升级的场合

对于销量很大而用户忠诚度很高的软件中的影响用户升级的软件bug,微软提供兼容模式,模拟旧版本的Windows的部分行为,作为面向最终用户的临时解决方案。但是微软不可能一直这样惯着有bug的程序,这对提高整个生态环境中的软件质量没有帮助,比如不必要地要求管理员权限的程序造成用户较难不用管理员身份登录系统,增加用户被攻击的风险


 

 

,而且并不能解决所有的兼容性问题。

6.22. 兼容性补丁

 

7. 最佳实践总结

7.1. 兼容性文档与流程

7.2. 兼容性sdk

8. Ref

Atitit.软件兼容性原理与实践   v5 qa2.docx

 

atitit 软件架构高扩展性and兼容性原理与概论实践attilax总结 v2q0f.docx

Atitit.提升api兼容性的方法 v2 q326.docx

jq 如何解决兼容性的

JavaScript术语:shimpolyfill_搜狐科技_搜狐网.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目:– JavaScript 中的患者数据管理系统 患者数据管理系统是为医院开发的 node JS 项目。通过使用此系统,您可以轻松访问患者数据,它具有成本效益,可改善患者护理和数据安全性。不仅如此,它还减少了错误范围。在运行项目之前,您需要下载 node.js。 这个患者数据管理项目包含 javascript、node.js 和 CSS。我们必须让服务器监听端口 3000,并使用 JSON 在客户端和服务器之间交换数据。这个项目会不断询问您有关插件更新的信息,因此请保持互联网畅通。此系统允许您执行 crud 操作。在这里,您是系统的管理员。您还可以添加所需的员工人数。此外,您还可以更新患者记录。该系统功能齐全且功能齐全。 要运行此项目,您需要在计算机上安装NodeJS并使用现代浏览器,例如 Google Chrome、  Mozilla Firefox。ReactJS项目中的此项目可免费下载源代码。有关项目演示,请查看下面的图像滑块。 对于手动安装 1.将主项目文件夹解压到任意目录 2.从 cmd 设置项目目录的路径 3. 输入命令“npm install” 4.完成后输入命令“npm start” 5.现在,您将获得一个 localhost:portnumber,并转到该 URL 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值