# SUMMARY * [简介](./README.md) * [开篇词 | 你写的每一行代码,都是你的名片](./docs/75516.md) * [01 | 从条件运算符说起,反思什么是好代码](./docs/75980.md) * [02 | 把错误关在笼子里的五道关卡](./docs/76349.md) * [03 | 优秀程序员的六个关键特质](./docs/76808.md) * [04 | 代码规范的价值:复盘苹果公司的GoToFail漏洞](./docs/77048.md) * [05 | 经验总结:如何给你的代码起好名字?](./docs/77301.md) * [06 | 代码整理的关键逻辑和最佳案例](./docs/77673.md) * [07 | 写好注释,真的是小菜一碟吗?](./docs/78086.md) * [08 | 写好声明的“八项纪律”](./docs/78288.md) * [09 | 怎么用好Java注解?](./docs/78674.md) * [10 | 异常处理都有哪些陷阱?](./docs/79083.md) * [11 | 组织好代码段,让人对它“一见钟情”](./docs/79306.md) * [12丨组织好代码文件,要有“用户思维”](./docs/79789.md) * [13 | 接口规范,是协作的合约](./docs/80002.md) * [14 | 怎么写好用户指南?](./docs/80740.md) * [15 | 编写规范代码的检查清单](./docs/80993.md) * [16丨代码“规范”篇用户答疑](./docs/81055.md) * [17 | 为什么需要经济的代码?](./docs/81394.md) * [18丨思考框架:什么样的代码才是高效的代码?](./docs/81608.md) * [19 | 怎么避免过度设计?](./docs/81899.md) * [20 | 简单和直观,是永恒的解决方案](./docs/82335.md) * [21 | 怎么设计一个简单又直观的接口?](./docs/82605.md) * [22丨高效率,从超越线程同步开始!](./docs/82954.md) * [23 | 怎么减少内存使用,减轻内存管理负担?](./docs/83045.md) * [24 | 黑白灰,理解延迟分配的两面性](./docs/83504.md) * [25 | 使用有序的代码,调动异步的事件](./docs/83897.md) * [26 | 有哪些招惹麻烦的性能陷阱?](./docs/84096.md) * [27 | 怎么编写可持续发展的代码?](./docs/84488.md) * [28 | 怎么尽量“不写”代码?](./docs/84904.md) * [29 | 编写经济代码的检查清单](./docs/85163.md) * [30丨“代码经济篇”答疑汇总](./docs/85561.md) * [31 | 为什么安全的代码这么重要?](./docs/85968.md) * [32 | 如何评估代码的安全缺陷?](./docs/86204.md) * [33 | 整数的运算有哪些安全威胁?](./docs/86590.md) * [34 | 数组和集合,可变量的安全陷阱](./docs/87077.md) * [35 | 怎么处理敏感信息?](./docs/87256.md) * [36 | 继承有什么安全缺陷?](./docs/87633.md) * [37 | 边界,信任的分水岭](./docs/88097.md) * [38 | 对象序列化的危害有多大?](./docs/88417.md) * [39 | 怎么控制好代码的权力?](./docs/88673.md) * [40 | 规范,代码长治久安的基础](./docs/89213.md) * [41 | 预案,代码的主动风险管理](./docs/89226.md) * [42 | 纵深,代码安全的深度防御](./docs/89616.md) * [43 | 编写安全代码的最佳实践清单](./docs/90026.md) * [44 | “代码安全篇”答疑汇总](./docs/90212.md) * [Q&A加餐丨关于代码质量,你关心的那些事儿](./docs/76666.md) * [结束语|如何成为一个编程好手?](./docs/90758.md) * [期末测试丨有关代码编写的那些准则,你掌握了多少呢?](./docs/231015.md)