如何编程

重构是程序员的主力技能。
  • 工作日志能提升脑容量。
  • 先用 profiler 调查,才有脸谈优化。
  • 漫山遍野的注释实际背景噪音。
  • 普通程序员 + Google = 超级程序员。
  • 写单元测试总是合算的。
  • 不要先写框架再写实现。最好反过来,从原型中提炼框架。
  • 代码结构清晰,其它问题都不算事儿。
  • 管理行不行,就看工作流。
  • 编码不要畏惧变化,要拥抱变化。// 任何地方都适用啊
  • 常充电。程序员只有一种死法:土死的。
  • 使用声明式编程,提供 DSL,屏蔽底层结构

  • 优雅的代码:
    • 逻辑应该是清晰的,bug 难以隐藏;
    • 依赖最少,易于维护;
    • 错误处理完全根据一个明确的策略;
    • 性能接近最佳化,避免代码混乱和无原则的优化
    • 整洁的代码只做一件事
    可读的代码
    • 逐句翻译成自然语言能看懂
    • 遵循约定
    • 文档和注释 // TODO,FIXME,XXX(待商榷),NOTE,HACK,BUG
    可发布的代码
    • 处理异常,单元测试里可以模拟简单的情况
    • 处理并发
    • 优化性能(算法的时间复杂度,单步操作耗时)
    • 日志(包括异常,外部调用等。显示方式已经内容)
    可维护的代码
    • 避免重复(模块间、模块内、信息重复无法分辨)
    • 模块划分(模块内高内聚与模块间低耦合)
    • 简洁与抽象,一种思维方式

    代码风格包括:
    • 基本格式(缩进、行宽、命名规则等等)
    • 注释格式
    • 语句和表达式
    • 变量、函数、操作符

    编程常识:
    • 保证 UI 层的松耦合
    • 控制全局变量
    • 添加事件处理逻辑
    • 参数要明确,不要修改参数
    • 检测数据类型
    • 分离配置数据
    • 抛出自定义错误
    • 尊重对象所有权
    • 进行浏览器检测