49

写代码的四个境界

 5 years ago
source link: http://www.techug.com/post/4-lever-of-programmer-write-code.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
YBreU3I.jpg!web

作为一个软件开发工程师,写代码必然是第一技能。写代码,不应该只是一份工作,而是在为社会创作一件流芳百世的艺术品。艺术创作,就一定会有境界,那么一个人写代码的境界,这儿总结一个简单的从低到高梯度。

“我的代码写完了”

接到任务,便开始和一个生产线上的工人一样,一行一行的写,没有计划,想到哪写到哪,什么代码风格,算法是不是最优,别人能不能看懂,都不管了。写完了,编译通过了,能运行了,告诉老板,“我的代码写完了”,就匆匆交差。质量怎么样,那是测试的事情。大不了,有了bugs,再来fix。看着快,反反复复,实际上是慢。这是最低层次的境界。

“我的代码写好了”

接到任务,首先计划一下,有几个模块,有几个功能,然后按照规定的代码风格,一个一个模块的完成,也会尝试选择好的优化算法,会加上注释以便自己和别人能够读懂和维护,写完后自己会多看几遍有没有什么问题。毕竟人很难一次把事情都搞对,检查是必不可少的一个环节。编译的时候,会注意每一个warnings,fix它们。也会自己想几个测试用例跑跑,感觉没有问题,就提交,告诉老板,“我的代码写好了”。这个境界高了不少。

“我的代码能用了”

接到任务,除了按上面的方式来写代码。还会在写代码的过程,加入各种白盒测试,也就是说,每写完一个函数,一个功能,会写一段单元测试,来验证自己的代码在各种正常和边缘情况,都能正确无误的运行。同时还会注意测试的代码覆盖率,也就是说,每一行代码都会有测试场景跑过。如果是使用了别的服务,会将别的服务mockup起来,让自己的系统能正确的运行。对于之上的模块,系统,有集成测试,有回归测试。虽然在写代码的过程中,加大了工作量,但是这样的代码,出错的概率明显减少,中间需要的来来回回修复的次数明显减少,实际上是减少了总的工作量,节约了项目的时间。这是一种负责任的态度,也是一个工程师本应具备的基本素质。这个境界就很高级了。

“我的代码还在用”

代码就像艺术品,好的艺术品,流芳百世,好的代码,也应该如此。那么,工程师对代码也应该像创作一个艺术品,深思熟虑,精雕细刻,期望它们能够在产品中永生下去。当你老了的时候,还能骄傲的告诉人们,“我的代码还在用”。这样就要求代码写的好,写的质量高,考虑全面,运行效率高,几乎没有bugs,而且容易读懂,容易维护,容易使用,千锤百炼。举个例子,如果实现一个功能,有不同的算法,会写代码实验不同算法在此场景下的性能,对比优缺点,选择一个合理高效的算法使用。这样的工作,除了后人发明了更好的算法,否则是不容易被替换掉的。写代码是一门艺术,写出来的代码就是一个艺术品。这样的境界,是每个程序员应该追求的最高目标。

只有心底里有“对自己的代码负责”的思维,才能达到最高的境界“我的代码还在用”。而“对自己的代码负责”应该是每一个工程师的基本素质。这样,写出的代码,才有可能成为一件艺术品,流芳百世。

“What is your legacy?”,代码,可能会是程序员给社会留下的一份资产。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK