代码最简化

在重构的过程当中,站在我我的的角度,针对代码开发的细节,说一说关于代码最简化的小经验。css

一、    同一个页面上js/css可能被你引入屡次?

Ajax已被你们普遍应用,经常用来加载一些html的片断。Html片断可能有js的处理,这个时候可能在html片断中写一些js操做或者引入一些js文件,你可有检查,当前页面是否已经加载了该js。若是同一个页面没有被从新加载,无论之前在页面中有的,仍是后来html片断中加载的,都会在当前页面生效。而不是片断中的js做用域只是这个片断。因此js不要重复引入,重复引入颇有可能充掉你的全局变量,覆盖原来的同名js方法,也可能形成死循环等等问题。例如jquery文件,若是被屡次引用就可能形成js死循环,不少原生的jquery方法很差用。html

针对这些问题,咱们并非要彻底避免在ajax加载的html片断中不写js。而是根据实际状况作合理的安排。第一,千万不要重复加当前页面的js;第二,若是ajax加载的片断只会被当前页面加载一次,而且你写的js只是为当前片断服务,那你能够只在片断中引入;第三,当页面中的js超过20行或者会被多个页面使用的js,建议提取到单独的js文件中;第四,若是js方法是全局的,命名又很大众化像search(), find(),你可要当心了,极可能被别人的js覆盖,你也可能覆盖别人的,怎么办?那就了解一下js面向对象编程吧。建议改为Student.search(),Student.find()等等java

二、    为何a元素也要写一个onclick,然而它只是一个简单的跳转?

这样写累吗?一个简单的跳转操做,标签自己的功能不能遗忘。用什么标签就应该让它作什么样的事。每当我翻阅这样的代码的时候,都是从连接处着手,而后顺着onclick事件,找到onclick对应的方法,而后再看作了什么操做。你会发现最后一行是“location.href=’xxxx/xxx.do?a=” + a + ....”。不以为有点坑爹吗?我真不知道这种写法的好处。首先这样拼接url若是没有对参数作encodeURIComponent极可能形成参数丢失;再者让人找的好费神。若是直接写在a标签上href上是否是很清晰呢。若是要在新窗口打开加上“target=”_blank””就够了。jquery

三、    url上为何是一堆参数?去掉无用的参数吧

可能你会说,我为了下个页面少作查询,我就多传了一些参数。可是这样真的带了好处吗?ajax

暂不说传中文可能乱码的问题,其实这样严重增长了之后维护的难度。明知道下个页面只须要某个参数就够了,然而仍是要考察每一个参数都是要干吗用的。思前想后,明明只须要考虑一个参数的问题,一会儿变成了考虑四五个参数,工做量翻了几翻。可曾有感触呢?若是下个页面只是一个经过id的查询就不要再附加的各类冗余的信息了。除非咱们要的内容在当前页面已经有了,而下个页面本身获取真的很影响性能,咱们才真的有必要这么作。算法

四、    为何要加那么多id在html的元素上?为何还有重复的?

我想你们都清楚在js里查询某个dom元素使用id是最快的,可是id真的不要用泛滥了。满页都是id,甚至有重复的。这个真的不是好习惯。当维护的人员想添加一个真正有必要用的id时,发现你已经使用了,换用别的名字又感受不合适,那些无用的还不敢删除,得费死维护人员多少脑细胞。不要庆幸之后修改的人不是咱们本身。作为一个有责任的开发人员,咱们就要对本身写的代码负责。sql

五、    无用的sql查询,无用的java方法,无用的http请求,这是要闹哪样?服务器会消化不良的。

通常出现这样的问题是由于修改代码的人添加了新的代码,而没有检查之前的代码是否有用形成。曾记得之前浙师项目就有一个无用的ajax请求,页面一加载就请求一个公告全表的json数据,有几M那么大,并且没有一点用处。可想而知,得有多么影响性能。要想减小这样的问题发生,就要咱们更认真更细心,修改代码的时候,务必思前想后,去除干净无用的代码。时常检查http请求是否都是你意料之中的请求。编程

六、    不要继承不应继承的类,也不要实现没有必要实现的接口,而是当须要的时候才这么作,或者你预知到了什么。除非真的有必要这么作。

七、    不得不说的方法命名。

在java的代码中不要轻易使用get和set开头的方法。除非以为这个方法是当前类的一个属性。一个好的命名方法赛过那堆臭长的注释。别误解,我可不喜欢开发者不写注释,注释该写仍是要写的。写注释给人一种安全感,你不以为吗?json

八、    避免长代码文件。

Jsp,js,java都要避免代码太长。对于jsp文件可使用include进行拆分,若是是tab页每一个tab的内容还不少,建议作成两个jsp页,切换时直接是两个请求。处理问题也就变简单了。对于js的拆分,直接在合适的位置分红多个文件便可,若是是面向对象的js代码,能够考虑使用继承,直接追加属性等方法解决。Java能够添加辅助的工具类,或者辅助的子类等方法解决。安全

九、    通用模块设计的时候,应该注意的小问题。

有些通用模块,让调用者用的好辛苦,。通用模块的代码,要合理的设计入口参数。根据调用方的需求合理设计入口参数,不传多余无用的参数。要尽量的让调用者作的更少,除了少传参数,你还可让用户不写html片断,js初始化操做等等。还有就是考虑代码是否会和别人的代码冲突,像html中的id,js代码(命名要特别注意,最好使用面向对象的方法开法这样的模块),样式表等等。

 

 

总结:

这些都是小问题,或许你不以为什么,可是放在一块儿就真的不是小问题了。多一个id,多一个参数,多一个无用查询,多一个无用的请求都会严重的增长之后维护人员的工做。咱们不能彻底避免这些小问题,可是只要咱们每写一个方法,每写一个sql,每写一个ajax请求,每写一句代码,都想想它的必要性,不写无用的变量定义、无用的判断、无用的循环,这样我能够在很大程序的减小这些小问题的发生。我不是在说最短的代码就是好代码可是臭长的代码绝对不是好代码。写代码前务必保证本身的思路是清晰的。不要使用怪异的方法,没有绝对的提升性能,甚至连本身都不清楚其中的奥妙,真的就没有必要这样作了。在易懂的前提下保证代码最优。当性能真的出现问题时再作深度的算法等一系列的优化。

 

本文为做者原创,转载请注明出处,与你分享个人快乐
http://www.cnblogs.com/weirhp

相关文章
相关标签/搜索