在做项目的过程中,有很多“奇怪”的缺陷:本地好好的,到了测试环境(换个机器、换个浏览器……)就不行,有时都快冒火了,缺陷愣是解决不了;过后呢,不经意的又弄好了。。。而且,越是新手,越容易碰到这种问题。这里面有很多是由于未遵守开发规范导致的。
————————————记忆的分割线————————————
有时,我们会质疑规范的必要性和用意,感觉不够灵活、无所谓;其实不然。这些规范、要求,都是前辈们用时间与智慧换来的。每条规范都有背景、有上下文。当我们不遵守规范,而且也没有出现问题时,需要认识到一点:我们违反了某些规范也没出现问题,渐渐地可能会对这些规范不以为然。这也许会埋下一个BUG,特定情况下便会触发!
比如,公司有一条JavaScript规范:body中不要写script标签。有一次我违反了这条规范,开发中也没有发现问题。后来,需要在页面上添加一个排序功能,通过按钮向上或向下调整顺序。我是通过jquery的before、after方法来实现的。但是,出现了一个奇怪的问题,有些本应只在页面初始化时执行的方法,点击按钮调整顺序时竟然也执行了。找了好长时间才发现,原来被调整的元素中包含script标签,调整元素顺序时相当于先在document中删除此元素,然后再新增一个同样的。元素中的script标签会被document重新加载一次,里面的JavaScript代码也会再次执行,于是就出现了上述的怪问题。分析完这个问题,我发现这很low,处理这种问题简直是浪费时间。也许当初制定body中必须要写script标签的规范,并不是为了解决这个问题,但是这确实能帮我们开发出质量更高的代码,避免一些本不应出现的问题。
————————————未来的分割线————————————
规范,有时觉得高深、有时觉得古板,但这是安全快速开发的第一步。第二步才是不断的去改进和完善规范。