11.21 程序员的修炼之道:从小工到专家 第六章 当你编码时
第31至35节聚焦编码阶段的核心原则与实践,打破“编码是机械劳动”的误区,强调编码中主动决策与深度思考的重要性。
“靠巧合编程”是编码大忌,即代码虽能运行却不明其理。面对存疑代码,重构十分必要:其可能只是表面可用,依赖的边界条件或许是巧合,冗余调用还会降低性能、滋生漏洞。深思熟虑的编程需做到:明确自身操作、遵循设计计划、依赖可靠依据、验证假定而非仅测试代码,并保持重构准备。
算法效率是编码核心考量,实效程序员常估算时间、内存等资源。时间复杂度(O())定义算法效率,常见类型从高效的O(1)、O(log(n)),到中等的O(n)、O(nlog(n)),再到低效的O(m*n)、O(2^n),数量级增长后差异显著,需优先优化复杂度的阶。但最优算法并非万能,数据量小时其效率优势可忽略。
重构涵盖重写、重做与重新架构,当代码出现重复(违反DRY原则)、设计非正交、知识过时或影响性能时,就应启动重构。“早重构、常重构”是核心原则,时间不应成为借口,因拖延会导致后续更大损耗。重构需遵循“不增新功能、先保障测试、小步迭代”的准则。
易于测试的代码是高质量软件的基础,可借鉴“软件IC”理念,像测试集成电路那样测试软件。TDD(测试驱动开发)、编写单元测试、构建完善测试装备(记录状态、分析结果)至关重要,同时需推进测试文化,避免让用户承担测试工作。
“邪恶的向导”指自动生成代码的工具,其风险在于开发者易使用自己不理解的代码,陷入“靠巧合编程”。我们并非抵制向导,而是需明晰其机制;底层依赖(如系统库)虽不必精通,却与应用内的向导代码不同,不属于“邪恶”范畴。

浙公网安备 33010602011771号