1. 数据流向图弄清楚数据流向 具化数据流程 思考当前流程是不是最优的 思考当前流程是否能优雅应对各种可能的变更 2. 弄清楚代码底层发生了什么(代码检查清单) JVM 内存中怎么分配、存储、回收的,是否对GC友好 和 OS 是怎么交互的 IO、磁盘、网络、系统调用、上下文切换、CPU、中断等等 3. 重构 代码重复时的重构 设计模式的应用 类继承结构的思考 4. 算法和数据结构 当前数据结构是否最适合的 当前方法的时间复杂度是多少,有没有改进的空间 5. 要有兜底措施 不要信任任何的第三方 可能返回null的地方使用 Option.empty() 或 Collections.emptyList() 6. BenchMark Everything