阅读代码的一些心得体会
2017-03-29 17:09
218 查看
据说,作为一个优秀的程序员,他是在阅读/调试/删除--代码。目前,就阅读代码而言,我写一下我目前的一些心得体会吧。(高手绕道)
2017/3/29 16:56 此时,我正弄音视频流媒体直播传输的一个东东,跟队友合作,写一个循环缓冲区,为的是我把视频码流写入缓冲区里面,他就从里面读取出来。
反正,我写了一个测试用例:读写函数都是一个,直接封装,没有子函数,包括出错/异常处理都在一个函数里面,边界检测:满/空直接封在里面。然后他喷我一脸。
他也写了一个,测试用例:读写函数也是一个,不过,是作为底层调用,明显地比我简洁。
额,在这里不是为了对比两者,而是:我将要修改他的代码,调试出我之前的测试用例的效果:数据长度随机(读写对应),而他的是固定一个长度(100字节吧)
显然,我的测试用例更具备一般化,但是,他的函数封装却比我的具备更强的移植性。
那我要阅读他的代码,是有前提条件的:
我理解循环缓冲区的机制(也就是读写过程)、并且能够合理使用库/系统API等工具、能够明白当前我所需要的测试用例(也就是最终要的使用效果)。
在上面的条件下,我才去阅读他的代码,显然,20分钟完成任务,并且理解(也不用太多调试,就是静态阅读代码即可知道运行结果那种),所以,我可以知道他的接口存在哪些缺陷(边界满不对:当我需要写入100字节的时候,是需要判断是否能够容纳100字节,而不是仅判断缓冲区已经被占满datalen==buflen),还有一个是锁的位置)
嗯,暂时不给示例代码,毕竟有点过,不过可以总结:
静态阅读代码,是需要自己也有一定理解调节(上面)才能够完成任务的,如果不知道代码的实现效果(目的),那就需要引入深入的调试/bug过程,通过查看运行输入/输出的差别/或其他,来理解代码的目的。
2017/3/29 16:56 此时,我正弄音视频流媒体直播传输的一个东东,跟队友合作,写一个循环缓冲区,为的是我把视频码流写入缓冲区里面,他就从里面读取出来。
反正,我写了一个测试用例:读写函数都是一个,直接封装,没有子函数,包括出错/异常处理都在一个函数里面,边界检测:满/空直接封在里面。然后他喷我一脸。
他也写了一个,测试用例:读写函数也是一个,不过,是作为底层调用,明显地比我简洁。
额,在这里不是为了对比两者,而是:我将要修改他的代码,调试出我之前的测试用例的效果:数据长度随机(读写对应),而他的是固定一个长度(100字节吧)
显然,我的测试用例更具备一般化,但是,他的函数封装却比我的具备更强的移植性。
那我要阅读他的代码,是有前提条件的:
我理解循环缓冲区的机制(也就是读写过程)、并且能够合理使用库/系统API等工具、能够明白当前我所需要的测试用例(也就是最终要的使用效果)。
在上面的条件下,我才去阅读他的代码,显然,20分钟完成任务,并且理解(也不用太多调试,就是静态阅读代码即可知道运行结果那种),所以,我可以知道他的接口存在哪些缺陷(边界满不对:当我需要写入100字节的时候,是需要判断是否能够容纳100字节,而不是仅判断缓冲区已经被占满datalen==buflen),还有一个是锁的位置)
嗯,暂时不给示例代码,毕竟有点过,不过可以总结:
静态阅读代码,是需要自己也有一定理解调节(上面)才能够完成任务的,如果不知道代码的实现效果(目的),那就需要引入深入的调试/bug过程,通过查看运行输入/输出的差别/或其他,来理解代码的目的。
相关文章推荐
- 阅读一些关于软件开发本质和开发方法的文章的体会与心得
- 什么是一本出色的linux内核书籍(我的代码阅读心得体会)
- 《.NET大局观》的一些阅读感悟与心得体会
- 关于代码的一些心得体会(大神勿喷)
- 《.NET大局观》的一些阅读感悟与心得体会
- 开发培训体会——写好代码的一些编码规则和设计原则
- VHDL编程的一些心得体会(转载)
- 学习Xhtml+CSS2的一些心得体会
- VC8.0中的一些心得体会——打开位图
- 开发培训体会——写好代码的一些基本原理
- VHDL编程的一些心得体会
- 分享代码阅读心得(C#)
- 选购国外虚拟主机的一些心得体会
- 研究PHP源代码的一些心得体会
- 学习SQL的一些心得体会!
- 阅读Java代码的的一些收获
- 阅读Martin Fowler的The New Methodology的心得体会---乌托邦式的开发
- tomcat5.5.9+sql2000数据库连接池配置的一些心得体会
- 写一些心得体会2007.1
- 系统部署交流会上,项目经理们共享的一些心得体会