极客时间Java业务开发常见错误100例
【课程介绍】
- 代码篇:包含开发层面近20个方面的坑,涉及多线程、数据访问、池技术、日志异常、日期时间、IO和序列化、Spring框架等。这个模块,不仅会分析一些代码的错误写法,还会涉及对基础知识理解不透导致的踩坑。
- 设计篇:讨论项目技术设计时的一些坑点或误区,涉及接口、缓存、异步、生产就绪、代码重复、数据存储等六个方面的设计。通过场景化的案例、针对可能实际遇到的问题,给出设计思路和最佳实践。
- 安全篇:介绍后端开发最容易忽略、却又是从开发层面来防控效果最好的四个安全问题。包括客户端数据可信问题、数据和代码的隔离问题、资源防刷兜底问题,以及敏感数据的处理。
【课程目录】
开篇词 (1讲)
开篇词 | 业务代码真的会有这么多坑?
代码篇 (23讲)
01 | 使用了并发工具类库,线程安全就高枕无忧了吗?
02 | 代码加锁:不要让“锁”事成为烦心事
03 | 线程池:业务代码最常用也最容易犯错的组件
04 | 连接池:别让连接池帮了倒忙
05 | HTTP调用:你考虑到超时、重试、并发了吗?
06 | 20%的业务代码的Spring声明式事务,可能都没处理正确
答疑篇:代码篇思考题集锦(一)
07 | 数据库索引:索引并不是万能药
08 | 判等问题:程序里如何确定你就是你?
09 | 数值计算:注意精度、舍入和溢出问题
10 | 集合类:坑满地的List列表操作
11 | 空值处理:分不清楚的null和恼人的空指针
12 | 异常处理:别让自己在出问题的时候变为瞎子
答疑篇:代码篇思考题集锦(二)
13 | 日志:日志记录真没你想象的那么简单
14 | 文件IO:实现高效正确的文件读写并非易事
15 | 序列化:一来一回你还是原来的你吗?
16 | 用好Java 8的日期时间类,少踩一些“老三样”的坑
17 | 别以为“自动挡”就不可能出现OOM
18 | 当反射、注解和泛型遇到OOP时,会有哪些坑?
19 | Spring框架:IoC和AOP是扩展的核心
20 | Spring框架:框架帮我们做了很多工作也带来了复杂度
答疑篇:代码篇思考题集锦(三)
设计篇 (7讲)
21 | 代码重复:搞定代码重复的三个绝招
22 | 接口设计:系统间对话的语言,一定要统一
23 | 缓存设计:缓存可以锦上添花也可以落井下石
24 | 业务代码写完,就意味着生产就绪了?
25 | 异步处理好用,但非常容易用错
26 | 数据存储:NoSQL与RDBMS如何取长补短、相辅相成?
答疑篇:设计篇思考题答案合集
安全篇 (5讲)
27 | 数据源头:任何客户端的东西都不可信任
28 | 安全兜底:涉及钱时,必须考虑防刷、限量和防重
29 | 数据和代码:数据就是数据,代码就是代码
30 | 如何正确保存和传输敏感数据?