《代码大全》里的编程思想

设计是一个险恶(wicked)的问题

险恶的问题就是那些只有通过解决或部分解决才能被明确的问题。
你必须首先把这个问题「解决」一遍才能明确的定义这个问题。
书中有一个大桥被风吹垮的例子。
因而你无法推算完成一个项目需要花费多少时间,除非你做过一遍。

管理复杂度

  1. 用简单且正确的方法解决简单的问题
  2. 用复杂且正确的方法解决复杂的问题

代码优化策略

  1. 一些错误的刻板印象:
    代码行数越少,性能越高——错误
    特定运算可能比其他的快,性能更好——错误!你应该测量
    开发者应该不断的优化代码——错误
    程序的运行速度同其正确性一样重要——错误
  2. 编译器的优化可能比你写得代码更好

代码优化技巧

  1. 逻辑
    在知道答案后停止判断
    按照出现频率来调整判断顺序
    要做性能测试,不要盲目相信结论
    用表代替复杂分支(表编程)
    惰性求值

  2. 循环
    将不需要重复计算的逻辑外提
    使用哨兵值加速循环
    把最忙(循环次数多)的循环放在最内层

  3. 其他
    削弱运算强度:用移位运算代替乘2或除2
    将一些值初始化:如一天是 86400 秒
    对每一次改进进行量化

程序规模对构建的影响

  1. 程序员的交流路径与程序员数量的关系
  2. 采用文档交流

注释

  1. 复述代码——无聊,多此一举
  2. 解释代码——改进代码,使代码更易读
  3. 标记——可能用的到的地方进行标记
  4. 概述代码——有用
  5. 代码意图说明——指出要解决的问题
  6. 传达代码无法表述的信息——非常重要

你可能感兴趣的:(coding思维(侃侃而谈))