代码精进之路
范学雷
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讲)
结束语|如何成为一个编程好手?
代码精进之路
登录|注册

28 | 怎么尽量“不写”代码?

范学雷 2019-03-08
最有效率的编码就是少编写代码,甚至不编写代码。前面,我们讨论过避免需求膨胀和设计过度,就是减少编码的办法之一。这一次,我们讨论代码复用的问题。商业的规模依赖于可复制性,代码的质量依赖于可复用性。
比如,Java 提供了很多的类库和工具,就是为了让 Java 程序员不再编写类似的代码,直接拿来使用就可以了。

不要重新发明轮子

“不要重新发明轮子”,这是一个流传甚广的关于软件复用的话。如果已经有了一个轮子,可以拿来复用,就不用再重新发明一个新轮子了。复用,是这句话的精髓部分。
如果没有现成的轮子,我们需要造一个新的。如果造的轮子可以复用,那就再好不过了。造轮子的过程,就是我们设计和实现复用接口的过程。
我刚参加工作的时候,从事的是银行综合业务系统的研发工作。银行的业务,牵涉到大量的报表。每一个报表的生成和处理,都是一个费力的编码环节。需要大量的代码,反复调试,才能生成一张漂亮的报表。那时候,市面上也没有什么可以使用的解决方案。我有一个同事负责这方面的工作,刚开始的辛苦程度可想而知。
过了几年,我们再聊起报表业务的时候,发现他已经在报表处理方面建立了巨大的优势。这个优势,就是报表处理代码的复用。他把报表的生成和处理,提炼成了一个使用非常简单的产品。用户只要使用图形界面做些简单的配置,就能生成漂亮的报表。编写大量代码、反复调试的时代,已经一去不复返了。传统的方式需要几个月的工作量,使用这个工具几天时间就搞定了。而且,客户还可以自己定义生成什么样的报表。生成花样报表的需求依然存在,但是再也不需要大量的重复劳动了。这个产品的优势,帮助他赢得了很多重要的客户。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《代码精进之路》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(5)

  • 王子瑞Aliloke有事电联
    原来传的是List的子集,JDK 10 里传的是Collection的子集,并且明确要求非空。

    扩展了适用范围,增加了非空要求。
    基于向下兼容的功能,所以没有在原有方法上修改,而是增加接口。
    2019-03-08
    2
  • sovran
    我想说,如果烂代码影响了新功能开发时,就是不得不改的时候了,要果断改掉,长痛不如短痛,否则只会越来越烂,后期维护成本会很大。

    没有问题的烂代码就不要轻易修改。
    2019-12-08
  • 丁丁历险记
    感觉老师在复述google 整理术,代码大全,代码简洁之道
    2019-10-14
  • 轻歌赋
    看接口的描述,似乎是形参传入子集的问题,不知道对不对
    2019-03-08
  • 往事随风,顺其自然
    扩展功能更好,不改变原来方法有可能向下转型错误,为了更好兼容以前版本
    2019-03-08
收起评论
5
返回
顶部