代码精进之路
范学雷
前 Oracle 首席软件工程师,Java SE 安全组成员,OpenJDK 评审成员
38234 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 48 讲
结束语 (1讲)
代码精进之路
15
15
1.0x
00:00/00:00
登录|注册

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

hashCode()和equals()方法
资源释放
内存泄露
线程同步
内存管理
实例的使用
可重用的代码
规模水平扩张能力
异步编程
接口依赖关系
单一职责的接口
简单直观的设计
使用现存接口
下一个版本实现
最小要求
需求的分解和简化
需求的重要性
问题的存在性
需求的真实性
Effective Java
重新定义公司——谷歌是如何运营的
动手
习惯
代码评审
设计评审
需求评审
规模扩张能力
规避性能陷阱
减少内存使用
超越线程同步
选择简单直观
避免过度设计
防范可用性攻击
降低运营成本
降低研发成本
提升用户体验
参考文章
小结
经济代码的检查清单
怎么编写经济的代码?
为什么需要经济的代码?
编写经济代码的检查清单

该思维导图由 AI 生成,仅供参考

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

为什么需要经济的代码?

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

怎么编写经济的代码?

既然我们都知道编写经济代码的重要性,那么如何让自己的代码经济又高效呢?
在前面的文章中,我给你从避免过度设计、选择简单直观、超越线程同步、减少内存使用、避免性能陷阱、规模扩张能力等角度探讨了一些方法,下面我提炼了几个点,我们再来重新温习一遍。
1. 避免过度设计
我们从需求和设计两个角度探讨了代码的经济问题。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

编写经济代码的检查清单是一篇系统性总结了编写经济代码的重要性以及方法的文章。首先强调了编写经济代码的重要性,包括提升用户体验、降低成本以及防范攻击。接着从避免过度设计、选择简单直观、超越线程同步、减少内存使用、规避性能陷阱和规模扩张能力等角度探讨了编写经济代码的方法。最后,给出了经济代码的检查清单,包括需求评审、设计评审和代码评审等方面的具体检查点。这篇文章为读者提供了一套完整的指导方针,有助于读者在编写代码时更加高效和经济。文章还提到了两个好习惯,即尽早考虑性能问题和积累性能实践经验的重要性。作者鼓励读者根据自己的实际情况修改、完善、丰富检查清单,并推荐了两本相关书籍。整体而言,这篇文章为读者提供了编写经济代码的重要性、方法和检查清单,是一篇有益的技术指南。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《代码精进之路》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • 左。
    老师,我再提一个问题<可能和本栏目无关> // 同一个类(类路径和包名都一模一样) 再两个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
    3
  • ifelse
    第一个习惯是,要尽早地考虑性能问题。第二个习惯是,性能的实践经验需要日积月累。--记下来
    2022-07-27
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部