写出优秀的代码是我们每一个程序员的毕生追求,毕竟写代码本身就是个技术活,代码的 好坏,其实也就是我们工艺的好坏。作为一个技术类的工种,我们没有理由不去思考如何 写出优秀、让人惊叹的代码。
作为一个程序员,每天都在和代码打交道,但是在写代码的时候我们一部分是在完成任务,大多数的时候我们都会在想如何将代码写的漂亮,易于维护。中国程序员有一个问题,那就是“不会写代码”。我们自以为将某某语言的 API 学习了一遍,通过一些教程将框架搭建了起来然后写了一个 Hello World,或者是在公司的框架上完成了某一个复杂的功能点就算是会写代码了。
但有没有定下心想一想我们真的会写代码吗?
我想很多刚刚入门这一行的朋友大多都是不会的,有的时候我们连最基本的 API 都没有学全就这样上“战场”了。这样写出来的代码必然是千疮百孔、满目疮痍的;是充满坏味道的代码。
有的时候我们还回去追求一些简短的方式写代码,认为越少的代码就是越好的代码。诚然这里面有一定的“炫技”的成份在里面。从某某网站上面看到一些生僻的方法,或者是某一些独特但是功能强大的 API 放到代码里面使用。一方面是证明自己写的代码很厉害,另一方面是对学习的巩固。
但是绝大多数的时候坚持使用 最直观的编码方式,而不是追求代码简短,真的可以避免很多不必要的错误。减少错误、节省时间,是我们现在选择编码方式的一个最基本的原则。
“好”的代码应该:
- 容易理解;
- 没有明显的安全问题;
- 能够满足最关键的需求;
- 有充分的注释;
- 使用规范的命名;
- 经过充分的测试。
“坏”的代码包括:
- 难以阅读的代码;
- 浪费大量计算机资源的代码;
- 代码风格混乱的代码;
- 复杂的、不直观的代码;
- 没有经过适当测试的代码。
所以,关于优秀代码的特点,我想用“经济”这一个 词语来表达。这里的“经济”,指的是使用较少的人力、物力、财力、时间、空间,来获 取较大的成果或收益 。或者简单地说,投入少、收益大、投资回报高。
有的时候我们也会面临过度或者提前优化的问题。比如一个接口存在 N + 1 的问题,但是真的需要在当前这一阶段解决这个问题吗?或许这个接口还没有在使用时就被新的需求替代了。亦或是一个比较慢的 SQL 查询,与其在 SQL 上面死扣那几百毫秒,还不如想想业务能不能优化优化呢。当然这不是绝对的,最适合当前现实环境的代 码,才是最优秀的代码。
最近在极客时间上看到——代码精进之路,这一个栏目,由 Oracle 首席软件工程师编写,教大家如何写出优秀的代码。或许在学习框架的时候,如何写代码也应该好好学习学习。