代码精进之路
范学雷
Oracle首席软件工程师,Java SE安全组成员,OpenJDK评审成员
立即订阅
6350 人已学习
课程目录
已完结 47 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 你写的每一行代码,都是你的名片
免费
第一模块:代码“规范”篇 (16讲)
01 | 从条件运算符说起,反思什么是好代码
02 | 把错误关在笼子里的五道关卡
03 | 优秀程序员的六个关键特质
04 | 代码规范的价值:复盘苹果公司的GoToFail漏洞
05 | 经验总结:如何给你的代码起好名字?
06 | 代码整理的关键逻辑和最佳案例
07 | 写好注释,真的是小菜一碟吗?
08 | 写好声明的“八项纪律”
09 | 怎么用好Java注解?
10 | 异常处理都有哪些陷阱?
11 | 组织好代码段,让人对它“一见钟情”
12丨组织好代码文件,要有“用户思维”
13 | 接口规范,是协作的合约
14 | 怎么写好用户指南?
15 | 编写规范代码的检查清单
16丨代码“规范”篇用户答疑
第二模块:代码“经济”篇 (14讲)
17 | 为什么需要经济的代码?
18丨思考框架:什么样的代码才是高效的代码?
19 | 怎么避免过度设计?
20 | 简单和直观,是永恒的解决方案
21 | 怎么设计一个简单又直观的接口?
22丨高效率,从超越线程同步开始!
23 | 怎么减少内存使用,减轻内存管理负担?
24 | 黑白灰,理解延迟分配的两面性
25 | 使用有序的代码,调动异步的事件
26 | 有哪些招惹麻烦的性能陷阱?
27 | 怎么编写可持续发展的代码?
28 | 怎么尽量“不写”代码?
29 | 编写经济代码的检查清单
30丨“代码经济篇”答疑汇总
第三模块:代码“安全”篇 (14讲)
31 | 为什么安全的代码这么重要?
32 | 如何评估代码的安全缺陷?
33 | 整数的运算有哪些安全威胁?
34 | 数组和集合,可变量的安全陷阱
35 | 怎么处理敏感信息?
36 | 继承有什么安全缺陷?
37 | 边界,信任的分水岭
38 | 对象序列化的危害有多大?
39 | 怎么控制好代码的权力?
40 | 规范,代码长治久安的基础
41 | 预案,代码的主动风险管理
42 | 纵深,代码安全的深度防御
43 | 编写安全代码的最佳实践清单
44 | “代码安全篇”答疑汇总
加餐 (1讲)
Q&A加餐丨关于代码质量,你关心的那些事儿
结束语 (1讲)
结束语|如何成为一个编程好手?
代码精进之路
登录|注册

29 | 编写经济代码的检查清单

范学雷 2019-03-11
通过前面十几讲的学习,我们已经把代码“经济”篇的内容学习完了。今天,我们一起把前面讨论到的观点总结一下,并探索一下编写经济代码时的最佳实践检查清单。

为什么需要经济的代码?

我在经济篇这一模块开始的时候讲过这个问题,这里再来简单回忆一遍。
1. 提升用户体验
一致性的性能体验,是软件产品赢得竞争的关键指标。复杂的,反应迟钝的软件,很难赢得用户的尊敬。
2. 降低研发成本
通过降低软件的复杂度,提高软件的复用,提前考虑性能问题,可以降低软件研发成本,缩短软件开发周期。
3. 降低运营成本
经济的代码可以降低软件的复杂度,提高计算资源的使用效率,降低运营成本。
4. 防范可用性攻击
复杂的代码和性能低下的代码,更容易成为黑客攻击的目标。如果一个服务器,需要耗费很多资源才能处理一个请求,那么数量很少的模拟请求攻击,就可以导致服务器瘫痪。

怎么编写经济的代码?

既然我们都知道编写经济代码的重要性,那么如何让自己的代码经济又高效呢?
在前面的文章中,我给你从避免过度设计、选择简单直观、超越线程同步、减少内存使用、避免性能陷阱、规模扩张能力等角度探讨了一些方法,下面我提炼了几个点,我们再来重新温习一遍。
1. 避免过度设计
我们从需求和设计两个角度探讨了代码的经济问题。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《代码精进之路》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(1)

  • 左。
    老师,我再提一个问题<可能和本栏目无关> //
    同一个类(类路径和包名都一模一样) 再两个jar包里面 ,然后一个项目引入这两个jar包. 执行这个项目用到这个类的时候 ,会选择那个类? 有什么优先级?
    我自己测试的,
    用maven项目,引入这两个jar包的时候,谁写在上面就调用谁 . 我把这个项目打成可执行文件, 也是按照maven中引入的顺序来的 . 我很奇怪 ,可执行jar里面并没有jar的加载顺序,为什么每次都调用指定的jar里面的类?
    如果老师看见了 ,希望能解惑 .
    //再stackoverflow上也提了一个单子,也是找不到答案
    https://stackoverflow.com/questions/55035461/how-jvm-load-different-jars-but-same-package-name-and-class-name

    作者回复: 有点小疑问,为什么一个类放两个Jar文件里? 既然是同一个类,应用层为什么关心调用顺序?

    具体的,这和class loader的实现方式有关。一旦一个类加载后,JVM就会使用已经加载的类。 你可以看看java.lang.ClassLoader的规范,里面有描述累加载的办法。

    由于class loader是可以被扩展的,关于从哪个包加载,应用不要依赖猜测或者测试的结果,要不然,一旦实现改变,可能就是一个坑。

    2019-03-11
    1
收起评论
1
返回
顶部