什么样的代码才是好代码

 普遍来说: 好的代码具有以下的一些特征

1. 容易被理解, 思路清晰, 表述准确无歧义

2. 稳健性好, 零错误; 或者说有一个错误处理机制, 针对不同的错误指出错误的具体信息, 更好的情况同时给出正确的建议

3. 高内聚, 低耦合

4. 核心代码的稳定性, 或者说加一层保护机制, 保证核心代码不被破坏

5. 优秀的性能

6. 可移植, 可以被轻易地嵌入到其他页面或系统, 不破坏目标站点, 保证源站点不受影响 正常执行

7. 良好的兼容, 可以运行于多个平台

8. 易扩展

......

 

个人的一些理解:

1. 组织代码的一个方式上的转变。写代码就跟说话一样, 表述清楚自己的意思, 要做什么。"语义化"你的代码,并针对业务场景设计清晰良好的结构;让别人能够轻而易举的修改而不引入错误

2. 多数情况下我们可以规避掉错误, 但也不排除意料之外的错误; 那么一旦程序某位置出错了, 怎么捕获错误? 按什么样的粒度去捕获错误? 还有对错误的记录收集, 是否需要一套备用处理逻辑;

3. 模块化便是一种很好的方案, 再运用一些技巧 (如设计模式,用多态取代表达式) 去组织代码. 并选择恰当的数据结构

4. 核心代码只读(如属性私有化,  属性定义为不可配置,或是修改或删除都是返回一个新的引用 -比如 immutable.js), 如果依赖项错误或变更,采用备选方案 ; 对修改关闭对扩展开放。

5. 存储和读取, 修改和删除, 逻辑语句的优化,等;

     缓存的使用, 但得特别注意缓存的时效性,如果伴随有IO操作,需要额外处理(防止大量的IO操作导致卡死);

     异步 + 切片 + 预缓存 + 多线程 + GPU;

     数据归一化;

     ......

6. 参考 webAssembly,借助于规范,多系统之间遵循同样的编/解码,以实现多平台之间的通用性;(内存空间)隔离,如果两者之间需要通信,可以通过传递消息的方式传送数据,传送的数据因为是"共享的", 可能还需要"锁" , 处理竞争的情况;

7. 提前检测; 或是提供一套跨平台的处理工具或方案, 以运行于多个平台

8. “插件化”你的程序

 

尽管一般开发时上线时间紧迫 , 能够在规定时间做出来就已经谢天谢地了, 但也得保证做到第一, 第二两条要求。代码做出来能够稳定地运行, 需求变更自己能马上理清原先的思路。

posted @ 2019-07-08 15:10  芋头圆  阅读(754)  评论(1编辑  收藏  举报