【软件工程】随想录——高质量代码开发

编写代码本身不是一件很复杂的事情。按照一定的逻辑,配合一定的ide工具,撸起袖子马上就可以干起来。但是不可否认,任何人开发代码的质量还是有差别的。有的同学虽然写代码写了很长时间,但是常常眉毛胡子一把抓,要结构没有结构,要逻辑没有逻辑,更谈不上扩展、测试和性能分析了。那么,个人怎么写出质量还可以的代码呢?

结构分析和设计


谈到写代码,大家都喜欢一边code一边思考。按照我个人的经验来说,这不是一种很好的方法。要写出质量还可以的code,必须在逻辑上是经受得起考验的,无论是状态机还是异常情况的考虑上都必须是完备的。因为在写code的时候,你的精力常常是分散的,根本没有办法考虑清楚每一种情况。所以,在code之前还不如把数据结构拆开来,好好分析一下代码的逻辑和流程,至少做到手到、笔到才可以。相关的一些工作都可以在这段时间完成

1.设计清楚代码的流程和状态机

2.将流程、图标用markdown标记出来

3.分析清楚将来代码的部署环境

编译代码之前再好好阅读一遍


编写好code之后,很多同学都喜欢马上运行,恨不得马上就见到效果。但是,一步到位的情况是很少发生的。或多或少,你的代码会有这样那样的问题,与其在将来才发现这些问题,还不如从头到尾阅读几遍,自己讲给自己听。如果觉得不好意思,可以改成默念的形式,买一只小挂件放在电脑旁边也可以。读个几遍之后,一般的编译错误都可以被你发现的,或者说逻辑十分简单的错误也是逃不了你的法眼的。做好了这一步,就可以开始编译调试了。

学会用pclint等代码检测工具检查你的code


一般的编译工具都会对不合理的code给出告警,但是这种告警是非常weak的。所以,我们还会使用第三方工具来帮助我们检测目前的代码中还有什么风险。windows上用的比较多的就是pclint,linux上用splint比较多。

学会单元测试

各个编程语言都有自己的编程框架,c有cunit,cpp有cpp unit,java有junit。编写单元测试的目的就是测试function对各种输入的相应情况,有没有异常的情况发生。随着测试用例,其实我们对code的信心也会越来越强,不然每一次发布软件的时候,其实我们都是胆战心惊的。单纯的黑盒测试是根本没有办法从coverage上面覆盖到所有情况的,所以除了dump功能的function之外,配套的单元测试是十分有必要的。

检测内存泄漏

对于一般的上层软件来说,打交道最多的就是内存,设备空间它也访问不了,中断也没法做,异常也没法处理。所有的资源都需要通过syscall向os申请才可以,这时候检测内存泄漏就十分必要了。一般的客户端程序对于内存泄漏可能看得没有那么重,但是server确实避免不了的,毕竟它是需要长时间运行的。好在现在有现成的工具可以帮助我们检测内存泄漏的相关情况,linux上用的比较多的就是valgrind。还不清楚的同学可以去好好试一试。

性能分析


按照我个人的经验,软件的性能分析其实是十分伤脑经的,但是也是有规律可循的。一般来说,对于app来说,花费时间最多的地方就是memory copy,lock,database, socket这几个方面。当然,如果这几个方面如果都做得还可以,不妨可以从业务本身的角度去进行分析和优化,这常常也会有不错的收获。好在现在有很多的工具可以帮助我们分析一下软件的瓶颈究竟在哪,windows下用的比较多的就是vtune,linux是gprof。

自动化集成测试工具

像jenkins这样的自动化集成测试工具在企业连用的比较多。如果自己写的软件比较大,也可以用这种方法。如果只是几千行的小代码,不妨写一个bash脚本,把所有用作的动作用脚本串起来,效果也很不错。

不停重构


很多时候,代码是需要不停重构的,这时候只要按照上面的逻辑不停迭代就可以了,当然测试用例也开发发挥它的作用了。

本文转自:CSDN博客

微信号:IdeaofSE

来源:软件工程之思,本文观点不代表自营销立场,网址:https://www.zyxiao.com/p/100596

发表评论

电子邮件地址不会被公开。 必填项已用*标注

侵权联系
分享本页
返回顶部