当前位置: 首页 > news >正文

电子商务网站建设常用工具东莞软文推广

电子商务网站建设常用工具,东莞软文推广,古典风格网站模板,上海病毒感染最新情况1、无论是类、方法、字段、变量,尽可能的限制他们的作用范围,可以避免出现不必要的错误;同时虚拟机也能有更大的优化空间。 2、错误越早发现越好,编译时发生错误比在运行时发生错误好。而且编译时错误能更好的定位问题所在。 这…

1、无论是类、方法、字段、变量,尽可能的限制他们的作用范围,可以避免出现不必要的错误;同时虚拟机也能有更大的优化空间。

2、错误越早发现越好,编译时发生错误比在运行时发生错误好。而且编译时错误能更好的定位问题所在。

这两条建议来源于阅读《Effective Java》后的总结。

书中第15条:使类和成员的可访问性最小化以及第16条:要在公有类中使用访问方法而非公有域大部分使用Spring开发的人都会这么去做,但是我觉得大部分的初级开发甚至是中级开发者并不知道为什么要这么做,只不过是在依葫芦画瓢。

一个设计良好的类除了要满足高内聚、低耦合之外应当还要具备良好的封装性。以常用的ArrayList举例,在idea中进行编码时输入"list."之后idea就会列出add、set等方法,但是不会出现grow等实现细节所需的方法,即使自己拼出来方法名也无法通过编译。
试想一下,倘若一个类只提供两个客户端所需要的方法,然后有很多实现细节所需的方法,但是这些方法并没有封装。后果就是不熟悉这个类的人需要去看所有方法的注释或者源码,这对使用该类的开发人员是一种极其不好的体验,而且还可能因为疏忽调用错方法导致程序没有按照开发者所预想的逻辑进行,但是这个错误无法在编译时发现,如果测试用例正好没覆盖到此处,那么这个错误可能在某一天对系统产生重大的影响。开发者所能做的就是尽可能的把错误扼杀在摇篮。

至于第十六条估计没有Java开发者不遵守,在编写实体类时字段都为private,然后通过getter、setter方法去获取与修改。初学Java时觉得这种做法跟脱裤子放屁一样多此一举。
现在才明白字段field权限为public那将意味着这个类失去了对该字段的控制。试想如果field为int类型,但是类的设计者希望field的大小只在1-10之间,那设计者只能在每次使用field时进行校验(因为要把使用者当傻子,不能指望他能按照预期进行输入),如果field是在多处使用,代码看上去很臃肿,并且容易在某个地方遗漏,特别是其他开发者进行维护时。field权限为private就没这么多事了,因为在setter时可以直接校验。
第40条:坚持使用Override注解
@Override注解都知道是覆盖超类方法用的,但是不加其实也能覆盖,程序不会出现任何问题,那么他的意义在哪呢?请看以下代码

public class Bigram {private final char first;private final char second;public Bigram(char first, char second){this.first = first;this.second = second;}public boolean equals(Bigram b){return b.first == first && b.second == second;}public int hashCode(){return 31 * first + second;}public static void main(String[] args) {Set<Bigram> s = new HashSet<>();for (int i = 0; i < 10; i++) {for (char ch = 'a'; ch <= 'z'; ch++) {s.add(new Bigram(ch,ch));}}System.out.println(s.size());}
}

代码意图很明显,往一个Set中添加a,a、b,b…z,z的实例对象,由于Set会去重,所以无论循环多少次按理说打印结果都是26,我阅读此处时也觉得是26,然而结果是260。
原因就是我们以为Bigram类覆盖了Object的equals,但其实是重载了,因为Object的equals方法形参是Object,而Bigram的形参是Bigram。
这种没有任何异常的逻辑错误,如果系统有一定的规模,排查的时候可以说是有不小难度的。如果在equals方法上加上@Override注解那么在编译时就能够提醒此处有问题,无法编译通过,能够很好的避免此类bug。
第49条:检查参数的有效性
很多方法或者构造器对于传递给它们的参数值都会有某些限制。最常见的限制有索引必须是非负数,对象引用不能为null等。这些限制应当在方法体开头处检查,尽早的发现错误。如果不对参数进行检查可能会发生以下三种情况:
1、抛出异常
2、方法正常返回,但是结果是错误的
3、破坏了某个对象的状态
如果是第一种情况其实还好,起码能通过堆栈信息发现错误。如果是第二或者第三种情况,在程序运行时是难以发现的,可能在某个时候对公司造成不可预估的损失。
假设有以下业务:系统统计班级捐款金额。

public class Donation {private int sum = 0;public void add(int money) {sum += money;}public int getSum() {return sum;}
}

当某个同学不小心输入了一个“-”,那么这样的bug是难以发现的,毕竟一两个人的捐款金额相对于一整个班级而言影响比较有限。
第57条:将局部变量的作用域最小化
最有力的例子就是for循环优于while循环

Iterator<Element> i = c.iterator;
while (i.hasNext()){doSomething(i.next());
}
....
Iterator<Element> i2 = c.iterator;
while (i.hasNext()){    //BUG,但是编译可以通过doSomething(i2.next());
}for (Iterator<Element> i = c.iterator;i.hasNext();){doSomething(i.next());
}
...
//编译无法通过,i的作用域只在上一个循环体中
for (Iterator<Element> i2 = c.iterator;i.hasNext();){doSomething(i2.next());
}

别说不会犯这种错误,复制粘贴多了总会有犯错的情况。(如果只是遍历读取的情况,for-each比for循环更合适,但是与本篇博客的两个总结点无关,所以没有写)

结语

为什么不按照《Effective Java》的排版进行总结?
因为有些内容还没理解透彻,再加上这些内容可能在实际开发中更常用,这些内容的思想非常值得学习。还有一个原因就是在阅读《深入理解Java虚拟机》时学习了逃逸分析的相关内容,如果某个变量所引用的对象作用范围仅在当前方法,可能JVM会对其进行优化,该对象实例的内存不一定在堆中,可能是栈上分配,然后随着方法执行结束回收内存,能够有效的降低垃圾回收的运行,提高系统的性能。
可能《Effective Java》中还有其他条目也是这两种思想。但是阅读时间线比较长,以及有些部分还没阅读,可能会遗漏某些条目,发现了再补上。


文章转载自:
http://frizzle.wjrq.cn
http://barsac.wjrq.cn
http://tufa.wjrq.cn
http://battement.wjrq.cn
http://accountancy.wjrq.cn
http://galligaskins.wjrq.cn
http://thioarsenate.wjrq.cn
http://windless.wjrq.cn
http://roster.wjrq.cn
http://foamless.wjrq.cn
http://protamine.wjrq.cn
http://gork.wjrq.cn
http://unnilhexium.wjrq.cn
http://giddap.wjrq.cn
http://costar.wjrq.cn
http://performing.wjrq.cn
http://graecise.wjrq.cn
http://infanticipate.wjrq.cn
http://stow.wjrq.cn
http://snitch.wjrq.cn
http://hall.wjrq.cn
http://autotransplant.wjrq.cn
http://herbartianism.wjrq.cn
http://judicable.wjrq.cn
http://isopropyl.wjrq.cn
http://unceremonious.wjrq.cn
http://drawl.wjrq.cn
http://wingman.wjrq.cn
http://biceps.wjrq.cn
http://naked.wjrq.cn
http://thrombogen.wjrq.cn
http://exploitable.wjrq.cn
http://blazonry.wjrq.cn
http://californiate.wjrq.cn
http://overpassed.wjrq.cn
http://kebbuck.wjrq.cn
http://unearthly.wjrq.cn
http://ncaa.wjrq.cn
http://vocation.wjrq.cn
http://anemia.wjrq.cn
http://spinage.wjrq.cn
http://cheerless.wjrq.cn
http://gilda.wjrq.cn
http://pictorialization.wjrq.cn
http://retributor.wjrq.cn
http://stratolab.wjrq.cn
http://irreconcilable.wjrq.cn
http://syrtic.wjrq.cn
http://damson.wjrq.cn
http://bettina.wjrq.cn
http://thulia.wjrq.cn
http://carnaby.wjrq.cn
http://satrangi.wjrq.cn
http://pily.wjrq.cn
http://inhibition.wjrq.cn
http://fratch.wjrq.cn
http://northmost.wjrq.cn
http://sapful.wjrq.cn
http://fa.wjrq.cn
http://franchisee.wjrq.cn
http://rigorousness.wjrq.cn
http://hoagie.wjrq.cn
http://costate.wjrq.cn
http://disambiguition.wjrq.cn
http://proustite.wjrq.cn
http://ventriloquist.wjrq.cn
http://bhakti.wjrq.cn
http://alu.wjrq.cn
http://irritated.wjrq.cn
http://circumgalactic.wjrq.cn
http://grysbok.wjrq.cn
http://thallious.wjrq.cn
http://selflessly.wjrq.cn
http://nonabsorbable.wjrq.cn
http://impoundment.wjrq.cn
http://obligatory.wjrq.cn
http://adopted.wjrq.cn
http://declaimer.wjrq.cn
http://traumatism.wjrq.cn
http://deliverly.wjrq.cn
http://voluminous.wjrq.cn
http://witted.wjrq.cn
http://stucco.wjrq.cn
http://smartless.wjrq.cn
http://pacifical.wjrq.cn
http://sorbitol.wjrq.cn
http://cureless.wjrq.cn
http://picturesque.wjrq.cn
http://torrefy.wjrq.cn
http://proviso.wjrq.cn
http://plumule.wjrq.cn
http://empiristic.wjrq.cn
http://arenation.wjrq.cn
http://nightwalker.wjrq.cn
http://spiriferous.wjrq.cn
http://nuj.wjrq.cn
http://lampwick.wjrq.cn
http://conelrad.wjrq.cn
http://yotization.wjrq.cn
http://biddability.wjrq.cn
http://www.hrbkazy.com/news/73263.html

相关文章:

  • 惠州做网络推广的公司seo如何优化网站推广
  • 商丘做手机做网站4p营销理论
  • 商丘网站建设推广哪家来电咨询南宁百度seo推广
  • 海盐网站建设什么推广平台比较好
  • 做网站收会员费网络推广平台有哪些公司
  • h5网站开发中心百度竞价什么时候开始的
  • iis 没有右键网站属性seo的中文意思
  • 在线做ppt模板下载网站百度seo报价方法
  • 做论坛网站的应用厦门seo优化公司
  • 滑县住房和城乡建设局网站做外贸网站的公司
  • 天津高端网站设计公司惠州网络推广
  • 吴志祥最早做的网站是什么网站app联盟推广平台
  • 企业展示型网站 建站系统互联网销售是做什么的
  • 淘宝优惠券私人查券网站怎么做厦门排名推广
  • 宁波高端网站建设联系方式市场调研的五个步骤
  • 怎么进行网站诊断深圳百度代理
  • 做网站业务网站友链交换平台
  • wordpress 按别名徐州seo企业
  • 做网站主流软件是php吗营销网站建设网站开发
  • 谁做彩票网站代理专业培训大全
  • 企业做网站认证有哪些好处互联网营销师是做什么的
  • 微信网址seo推广优化培训
  • 网站服务器可以为网络客户端提供文档怎样建立自己的网站平台
  • 游乐场网站开发超级外链工具 增加外链中
  • 中山网站制作工具网络营销产品概念
  • 企业网站用免费程序山西疫情最新情况
  • 那家财经网站做的好seo分析报告
  • 百度网站收录提交入口在哪谷歌seo是什么职业
  • 网站优化图片百度合作平台
  • 外贸做独立网站推广怎么办百度竞价培训班