编码是每个程序员每天都在做的事情。写好代码是很重要的!
写好代码不是那么容易的
0->40
- 代码是由字母组成。所以请确保单词拼写正确。可以借助辅助的单词检查插件进行检查。
- 命名最好简单明了,谷歌翻译是个好东西。
- 变量命令请用名词,如果不清楚其可数、不可数名次的拼写形式,建议后面加上集合的名称。例如 nameList、nameArr。动作函数请用动词。
- 减少变量。尽可能的少用局部变量、哨兵变量。
- 函数的形参列表,参数超过 2 个,最好将形参变成对象。
- 多尝试封装。即使不能复用,也便于阅读。
- 函数尽可能的简单。理解起来简单,做一个简单功能,行数精简,腾讯代码规范中一个函数的代码行数不要超过 80 行。
- 代码分成段落。类比写文章,每个段落想说的东西是不一样的。
- 扎实的语言语法。
40->60
写代码的套路:
- 请求参数校验。
- 空、错误处理。
- 业务(层层调用)。
- 数据整理并返回。
60->70
- 避免请求参数暴露数据库信息,比如一些状态的枚举值。
- 避免因为主键而导致的数据量的泄漏。
- 避免数据结构暴露数据库表结构。
- 使用德摩根定理。( !a && !b) === !( a || b ) 。
- 必要的注释,在复杂的业务功能的接口上写上完整的操作步骤。
- 尽可能的避免 if 嵌套。可以采用提前 return。
- 熟练使用一些成熟的模块的方法,比如 lodash 等。
- 报错应该统一,并且错误级别应该明确。
- 联调之前一定要自测。
- 善用弱类型语言中一些语法。比如说:解构、展开、继承。
- 尝试用管道操作(filter、map)去替换 for 循环。代码会更加清晰。
- 复杂的条件逻辑可以封装成一个带有说明的函数。这样在阅读时见文知意,一目了然。
- 分离查询函数与修改函数。查询函数只是提供一个值,函数没有任何的副作用,可随意操作。修改函数显然就要慎重对待了。明确分离“有副作用”和“无副作用”两种函数是一个很好的想法。
- 以【卫语句】取代嵌套条件表达式。卫语句的精髓就是给予某条分支特别的重视,它告诉阅读者,这种情况并不是本函数的所关心的核心逻辑,如果它真的发生了,会做一些必要的工作然后提前退出。
- 面向对象编程。
70
- 编写单元测试。
- 同业务方、产品进行及时的沟通,一旦需求不明确就要确认,将已经确认的信息进行记录。