代码库更新的障碍【笔记】

前言:

1、代码库这里重点指现在或者未来被广泛复用的代码库

2、代码这里重点指像js这样的动态语言(C#和Java不存在本文提到的问题)

以js为例,

可以给原生对象或代码库对象扩展功能,利用prototype特性。

Array现在(2014年)没有Sort函数,你现在可以给他扩展,Array.prototype.Sort=function(p1,p2){}

假设相关协议在三年后(2017年)发布标准说,Array有一个Sort的函数并且只有一个参数。那么你的项目在2017年的时候势必出现bug。

目前typeof null=='object'

如果未来有一天修复了这个bug,势必项目会出现Bug。

所以,我们能做的是有两点,第一不要扩展原生对象和库对象;第二应用公共规范

原文地址:https://www.cnblogs.com/langu/p/4048075.html