阅读笔记

第5章:弯曲,或折断

本章聚焦“如何应对变化与异常”,核心是“主动防御,而非被动修复”:

  • 抗脆弱性:代码不仅要“能正常运行”,还要“在异常情况下不崩溃、易排查”。例如:处理外部接口返回时,不假设返回一定符合预期,主动判断空值、异常格式,并给出友好的错误提示(而非直接抛出未知异常导致程序崩溃)。
  • 契约式设计:函数/模块间明确“契约”(如输入参数的类型、范围,输出结果的格式),调用方和实现方都遵守契约。若一方违反,能快速定位责任方(例如:函数要求输入“非空字符串”,调用方传入空值,则直接报错并提示“违反输入契约”)。
  • 错误处理的哲学:不要忽略错误(如用 try-catch 捕获异常却不处理),也不要过度处理。错误处理需明确“谁该负责解决”——底层函数抛出具体错误,上层函数根据业务场景决定如何处理(如重试、提示用户、记录日志)。

第6章:当你编码时

本章聚焦“编码过程中的细节习惯”,帮开发者提升代码的可读性与可维护性:

  • 代码风格一致性:无论团队用何种风格(如缩进2空格/4空格、变量命名驼峰式/下划线式),关键是“保持一致”。一致的风格能减少团队协作时的理解成本,避免因“风格争论”浪费时间。
  • 先思考,再编码:不要拿到需求就写代码,先梳理逻辑框架(如画流程图、写伪代码),明确核心步骤和边界条件后再动手。匆忙编码易导致逻辑混乱,后期修改成本更高(例如:先想清楚“用户登录”的校验步骤,再写登录接口代码)。
  • 持续重构:把重构融入日常开发,而非等到“代码烂到无法维护”时才做。每次修改代码时,顺手优化周边的冗余逻辑、模糊命名(如把 a 改为 userAge ),让代码始终保持“整洁状态”。
posted @ 2025-11-08 13:59  气球飞起  阅读(7)  评论(0)    收藏  举报