Skip to content
On this page

高质量代码的特点

注:文本小节

软件工程师日常工作主要就是写代码,工作产出也是代码。代码是我们的一张亮,能写出高质量的代码,本身就应该是我们自己对自己的要求。

对于企业来讲,更希望能招聘到产出高质量代码的员工。企业的软件产品都是多个程序员合作写出来的,如果一旦有一位程序员产出代码质量不高,则会严重影响整个软件产品的质量。

很多同学面试完了之后,觉得自己写的代码也都对,正常执行也都没问题。但是最后面试没有通过,就很纳闷,觉得自己非技术方面有问题。其实不然,也许是你的代码是对的,但质量不高。

规范性

记得前些年和一位同事(也是资深面试官)聊天时,他说到:一个候选人写完了代码,不用去执行,你打眼一看就知道他水平怎样。看写的是不是整洁、规范、易读,好的代码应该是简洁漂亮的,应该能明显的表达出人的思路。

代码规范性,包括两部分。
第一,就是我们日常用 eslint 配置的规则。例如用单引号还是双引号,哪里应该有空格,行尾是否有分号等。这些是可以统一规定的。

第二,就是代码可读性和逻辑清晰性。 例如变量、函数的命名应该有语义,不能随便 x1 x2 这样命名。再例如,一个函数超过 100 行代码就应该拆分一下,否则不易读。 再例如,一段代码如果被多个地方使用,应该抽离为一个函数,复用。像这些是 eslint 无法统一规定的,需要我们程序员去判断和优化。 再例如,在难懂的地方加注释。

PS:发现很多同学写英文单词经常写错,这是一个大问题。可以使用一些工具来做提醒,例如 vscode spell checker

完整性

代码功能要完整,不能顾头不顾尾。例如,让你找到 DOM 节点子元素,结果只返回了 Element ,没有返回 Text 和 Comment 。

要保证代码的完整性,需要两个要素。第一,要有这个意识,并且去刻意学习、练习。第二,需要全面了解代码操作对象的完整数据结构,不能只看常用的部分,忽略其他部分。

鲁棒性

“鲁棒”是英文 Robust 的音译,意思是强壮的、耐用的。即,不能轻易出错,要兼容一些意外情况。

例如你定义了一个函数 function ajax(url, callback) {...} ,我这样调用 ajax('xxx', 100) 可能就会报错。因为 100 并不是函数,它要当作函数执行会报错的。

再例如,一些处理数字的算法,要考虑数字的最大值、最小值,考虑数字是 0 或者负数。在例如,想要通过 url 传递一些数据,要考虑 url 的最大长度限制,以及浏览器差异。

PS:使用 Typescript 可以有效的避免类型问题,是鲁棒性的有效方式。

总结

高质量代码的特点:

  • 规范性:符合代码规范,逻辑清晰可读
  • 完整性:考虑全面所有功能
  • 鲁棒性:处理异常输入和边界情况

Released under the MIT License.