成长总是很痛苦的,每天总是不舒适的,尤其是被问到一层又一层的点时,很多人总是说自己精通这个精通那个,实际飘的很,最表面的东西,谁都想得到,能在表象之上想通一个局部,也是很费功夫,如果能从系统上和全局上考虑的认少之又少。每一行代码的用意的揣摩,每一个细节的深挖,都是需要很痛苦的折腾。你不去深入理解,只是浅层次的实现某个功能,在很多时候,并不能得到别人的认可。因为任何东西写出来后,希望以后尽量都是少的改动,这样才有时间做其他事情,否则永远陷入在恶性循环中,Bug永远解不完,代码永远是那样千疮百孔。修也修不过来,下个来维护的人,只能是重写。所以,如果你在代码非常苛刻的公司,恭喜你,你是幸运的。因为当下你确实很痛苦,心也累。但是长远看,你是受益的。因为你的代码可以承受住各种压力和并发测试。这样的代码会永远保留下去,而那种一次性代码,不到几天就到垃圾站去了。优秀的代码总是惊人的相似,不好的代码有是不谋而合。学习优秀代码本身就是很费功夫的事。优秀代码有它的思想,原则,界限,范围。能做什么,不能做什么。什么可以暴露,什么不可以暴露,函数/方法的命令,规范及风格。很多人在进度的压力下潦草应付,只要测试通过就算搞定。表面上看,开发速度很快,进度有保障;但实际上,这样的程序连开发者自己都很难读懂,一旦有bug,很难调试,将来维护升级都非常困难。这样的代码多半只能重写,浪费自然严重。如果每个人写程序的时候当艺术品来写,写每行都认认真真、干干净净的,虽然速度略微慢了一点,但综合的开发成本会低很多。如何写像诗一样美的代码呢?雷布斯曾用到过几个方法:

一、买几本经典的编程书,把书上所有例程全部重新写一遍,逐个比较和书上范例的差距,一步一步改善自己编程的风格和技巧。时间长了,自然就能写出象书上例程一样的代码,甚至可以比书上写得好。

二、基础扎实后,多看看Linux 等系统级的源代码,看看高手是如何写的,就有感觉了。

三、通读一下MSDN中所有的资料,这样,“读书破万卷,下笔如有神”。

还有,一定要牢记软件工程的铁律:可能出错的地方一定会出错。每个变量都做初始化,引用每个参数都会做有效性检查,在可能出错的每个地方都会做边界条件检查,这样开发出来的程序一定会稳固很多,就是出错也会很容易修改。野路子出来的高手,一般开发速度很快,但做完后bug很多,经常需要很长时间修改。而真正的高手,追求的境界是 bugfree code(零缺陷代码)。

我也有一些总结如下:

1、看那些Bug很少的人代码,他们的代码,每行逐字的读,用了什么技巧?有哪些思想?我自己来写,会想到这些么?想不到的原因是什么?基础不够扎实?还是有知识黑洞?为什么要用某个API,而

不用另外一个相近的API?if条件里的判断是否也可以想到?重复代码巧妙用过变量或求同存异的方式抽离走了。

2、记下别人review后批评点,做人有韧性。批评你的代码恰恰说明要有很多要改的地方。当时尽管不爽,过一段时间,review你的代码,问题越来越少了,说明你也得到提高了,但是我知道很多公司很少有人逐行逐字代码review,出现问题,还是由写代码的人去修。隐式隐藏了潜在的问题以及可能会遇到的问题。

3、对于一个简单系统API,如Android或是C++库函数,要去搞清楚局限,场景,包括参数的边缘测试。正常逻辑往往不会出问题,都是一些边缘性导致,如nullptr,越界,单元测试方法健壮性,至少传入4种以上不同场景参数。有时还伴随多实例,并发等。是否能顺利通过。这样写出来的才有自信。系统的API,没有理解背后的局限和优缺点,也可能误用而出问题。

4、字字如刺,每一步都是一步一步淬炼,成长也是一刀一刀削在心底。然后不断变得更好。

如何追求高质量的代码?相关推荐

  1. 写高质量的代码,永不言晚!

    作者 | Nitesh sharma 译者 | 弯月 责编 | 郭芮 出转载自 CSDN(ID:CSDNnews) 以下为译文: 在如今这个时代,每个人都在努力提升资源能力.在Web应用程序方面,我们 ...

  2. 《编写高质量Python代码的59个有效方法》——第10条:尽量用enumerate取代range

    本节书摘来自华章社区<编写高质量Python代码的59个有效方法>一书中的第10条:尽量用enumerate取代range,作者[美]布雷特·斯拉特金(Brett Slatkin),更多章 ...

  3. 表示python代码块的是_编写高质量Python代码的59个有效方法,你用过几个

    欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.PDF电子文档.面试集锦.学习资料等. 这个周末断断续续的阅读完了<Effectiv ...

  4. iOS 编写高质量Objective-C代码(六)

    级别: ★★☆☆☆ 标签:「iOS」「Block」「Objective-C」 作者: MrLiuQ 审校: QiShare团队 前言: 这几篇文章是小编在钻研<Effective Objecti ...

  5. 编写高质量的代码--基础:结构和样式,行为的分离

    实现高质量的代码需要我们在结构和样式,行为的分离的基础上做到:精简,重用,有序. 精简:尽量减小文件的大小,提高页面加载速度. 重用:提高代码的重用性,减少冗余代码,提高开发速度. 有序:提高代码的结 ...

  6. 编写高质量的代码,改善c#程序的157个建议_之1~10

    //编写高质量的代码,改善c#程序的157个建议 # 1.正确操作字符串 ## 1 * 确保尽量少的装箱 * 避免分配额外的内存空间 1. 会进行一次装箱 ````C# string str1=&qu ...

  7. python编写代码_用 Python 编写干净、可测试、高质量的代码

    用 Python 编写干净.可测试.高质量的代码 Noah Gift 2010 年 12 月 20 日发布 简介 编写软件是人所承担的最复杂的任务之一.AWK 编程语言和 "K and R ...

  8. 如何在面试时写出高质量的代码

    摘要:有些程序员由于平时没有养成良好的编程习惯,在面试时写出的代码质量不高,最终遗憾地与心仪的公司和职位失之交臂.如何在面试时能写出高质量的代码,是很多程序员关心的问题. 程序员在职业生涯中难免要接受 ...

  9. 扎实的基础知识、高质量的代码

    扎实的基础知识.高质量的代码.清晰的思路.优化代码的能力.优秀的综合能力是编程技术面试的五大要点. 找工作一直是一个热门话题.要想找到心仪的工作,难免需要经过多轮面试.编程面试是程序员面试过程中最为重 ...

  10. 用Python编写干净 可测试 高质量的代码

    用Python编写干净 可测试 高质量的代码 您不必听信我的观点,也不必直接研究代码,可以通过其他方法明显地看出这两种风格之间的差异.第一种方法是实际度量得到测试的代码行数.Nose 是一种流行的 P ...

最新文章

  1. Django+Bootstrap+Mysql 搭建个人博客(五)
  2. 比特币现金压力测试结果:处理210万笔交易 费用不增反降
  3. AdventureWorksBI.msi 和 AdventureWorksDB.msi 的官方下载地址及安装方法
  4. Python 赋值、浅拷贝、深拷贝的区别?
  5. 【复习】---【noip2009 普及】细胞问题 (1)
  6. Java之反射--练习
  7. Apache Tez介绍,术语,安装,监控等
  8. Tortoise SVN使用方法,简易图解
  9. JDBC初学者的basedao工具类
  10. net4.0 程序没反应_笔记本触摸板没反应原因 笔记本触摸板没反应解决方法【详解】...
  11. elfutils库交叉编译
  12. 使用 json-server 作为 mock 数据
  13. arm-linux cannot find -lgcc_s,arm-linux-gcc编译avrdude时报错: cannot find -lncurses
  14. 人一生的8种朋友(看看身边的朋友属于哪种)
  15. Inventory文件扩展
  16. WMS系统(二)盘点之“核对库存”
  17. 江苏无锡14岁女孩被推荐上北大(图)
  18. 微信小程序使用全套指南
  19. 串口通信USART_ReceiveData(USARTx)接收串口 数据类型
  20. 基础SQL-DQL语句-SELECT查询的简单使用以及IFNULL函数

热门文章

  1. EasyUI:Parser 解析器
  2. 分布式架构之缓存系统
  3. 深度学习_pytorch中的forward()的使用与解释
  4. OpenGL学习笔记_图形渲染管线及典型渲染流程(绘制一个三角形)
  5. 企业架构-发布在线文档【企业架构框架-TOGAF v0.2.pdf】
  6. 浅谈FFT、NTT和MTT
  7. 《团队作业第三、第四周》五小福团队作业--Scrum 冲刺阶段--Day1--领航
  8. 80)PHP,扩展工具类
  9. (void __user *)arg 中__user的作用
  10. FREERTOS 手册阅读笔记