普遍来说: 好的代码具有以下的一些特征
1. 容易被理解, 思路清晰, 表述准确无歧义
2. 稳健性好, 零错误; 或者说有一个错误处理机制, 针对不同的错误指出错误的具体信息, 更好的情况同时给出正确的建议
3. 高内聚, 低耦合
4. 核心代码的稳定性, 或者说加一层保护机制, 保证核心代码不被破坏
5. 优秀的性能
6. 可移植, 可以被轻易地嵌入到其他页面或系统, 不破坏目标站点, 保证源站点不受影响 正常执行
7. 良好的兼容, 可以运行于多个平台
8. 易扩展
......
个人的一些理解:
1. 组织代码的一个方式上的转变。写代码就跟说话一样, 表述清楚自己的意思, 要做什么。"语义化"你的代码。这一步尤为关键
2. 多数情况下我们可以规避掉错误, 但也不排除意料之外的错误; 那么一旦程序某位置出错了, 怎么捕获错误? 按什么样的粒度去捕获错误? 还有对错误的记录收集, 是否需要一套备用处理逻辑;
3. 模块化便是一种很好的方案, 再运用一些技巧 (如设计模式) 去组织代码. 可以参考 redux 中的理念
4. 核心代码只读, 修改或删除都是返回一个新的引用. 参考 immutable.js 中的设计理念:
5. 存储和读取, 修改和删除, 逻辑语句的优化等等, 细节处的优化点太多, 可以参考 asm.js 中的设计理念;
缓存的使用, 但得特别注意缓存的时效性;
......
6.
7. 提前检测; 或是提供一套跨平台的处理工具, 以运行于多个平台
8. “插件化”你的程序
尽管一般开发时上线时间紧迫 , 能够在规定时间做出来就已经谢天谢地了, 但也得保证做到第一, 第二两条要求。代码做出来能够稳定地运行, 需求变更自己能马上理清原先的思路。