如何写出优质的程序/代码

123 阅读3分钟

写出好的代码,是每个程序猿应该具备的基本素质,写出优质的代码会心情愉悦,像在创作一般,而对于阅读者来说更是舒畅,那么什么是优质的代码/程序 或 怎么写出优质的代码/程序呢?下面 据这些年来开发的经验总结谈谈我的看法。

推荐原则、规范或方法论

从代码可读性、扩展性、健壮性 三个维度阐述。

1.单一原则

一个函数或方法只做一件事。业务函数视情况而定,工具函数尽可能粒度化到最细。

优点:可移植性、重用性、便于重构。

2.变量、函数命名

避免无意义变量或函数名。尽可能清楚具体的描述出你的意图,见名知意,做到代码与人交流。

常见约定:常量全大写、变量小驼峰、函数小驼峰;描述列表 后缀加 s 而非 xxxList,详情是具体名词而非 xxxInfo,后缀通常 冗余。

模板:

变量:名词(例:name)、副词(isDeleted)、形容词+名词(deletedName)

函数:动词(delete)、动词+名词 (getUser) 如果有抽象性,那么最好给出相应的注释,注明抽象维度等。

3.注释使用

不可滥用注释。 当程序或代码难以解释时,可使用注释来描述。比如 逻辑的特殊性、抽象度、业务变更changelog,如果注释太多,那么到底是读代码还是读注释?

4.慎用设计模式

设计模式 可以改善程序复杂度,清晰度,但也不可滥用。使用设计模式同样页预示着程序的复杂度,使用不是为了展示你会,更希望是为了解决问题。具体视情况而定。

5.保证代码的可测试

从测试角度 编写代码,尽可能的让你的代码 可测试,而不是简单的能跑通,保证代码的健壮性。

6.可扩展

尽可能的少改动源代码,改源代码的就有兼容等风险,所以设计时,要考虑扩展能力,通过继承、实现或其他手段注入。可扩展的代码 决定 你程序的 弹性。

7.约定规范

要约定统一规范和风格。避免出现 同一段、同一块内容出现多种风格,比如 if 判断 有 单行,有多行,有三元表达式,有 逻辑运算符(||、&&)等

8.迭代器最好选用函数式

能用函数式遍历不用 命令式。如遍历数组 实现 可以是 for i、for in 、for of、forEach,最好选用forEach。函数式迭代器的好处是 逻辑清晰,看到 .filter() 就知道是条件过滤 返回值是数组,否则你什么都用for ,不知是遍历的 字符串 还是 数组 还是 对象,也不知道 里面进行了什么操作 返回什么。

暂时只想到这些,有不同意见或有要补充的欢迎评论!