反思前行——工作后第一个模块复盘总结

反思前行

——工作后第一个模块复盘总结

 

        近四个月的忙碌即将划上句号,毕业后第一个参与的项目即将发布。将近4个月的工作梳理总结思考如下。

        项目涉及网页脚本编程、Linux编程、Windows编程等方面内容,我主要负责Windows端程序的编写,需要为浏览器提供接口,需要给另一端Linux设备端进行网络通信。

        简化逻辑如下:

        反思前行——工作后第一个模块复盘总结_第1张图片

一、总体流程

        反思前行——工作后第一个模块复盘总结_第2张图片

        只说《软件工程》书本上学习不到的:

        第一点:预先研究,确立并选出可行性的方案,预先研究的成果直接影响项目的进度,整个开发中最难的点,预先都要研究出大致的思路和方案。

        第二点:编码的审查,工具扫描主要扫描出编译器编译后不能发现的一些低级错误,如:笔者遇到函数共四个参数,类型也完全相同,笔者把第四个和第三个写成一样了。代码覆盖工具,主要通过自己测试案例检测代码的哪些逻辑分支没有跑到。覆盖率越高,说明你的案例越详尽;反之说明你代码中的有些逻辑案例没有覆盖,可以进一步思考其中的原因。如内存分配失败、读取注册表失败、读取系统盘用户路径(如C:\Users\Administrator),这种异常就会很难跑到。这些终究是自己参照代码审查、修正代码的白盒测试。个人白盒测试功能完善后转交测试人员进行黑盒测试。

二、编码反思

反思前行——工作后第一个模块复盘总结_第3张图片

        以上是我负责模块中的一小块逻辑,但是当时就思考了好久(访问入口、访问权限、信息获取等几个方面)。细思整个编码过程,以下几点很重要。

       (1)依照需求,又要高于需求

         需求及设计文档是设计参考的核心依据,也是审核编码是否达成要求的依据。需求上内容要达成,在设计中发现的确需求有问题,要提出来大家评审看是否需要需求变更

       (2)场景考虑越全面越好

        笔者涉及模块要考虑Windows系统的兼容性(Winxp32位,win7 32位、64位,win8),Windows的所有用户(Administrator用户、标准用户、Guest用户),浏览器要涵盖所有的IE浏览器(IE6——IE11)。比如以下几个点就需要特别关注:

        第一:Windows用户的权限,Vista系统后如Win7对不同的用户就有不同的权限,标准用户、Guest账户的一些文件是不允许写入的;

        第二:32位、64位地址空间的不同,不同的数据类型的长度是有区别的,所以开发时候,不要写死,必须使用sizeof( )求类型的长度;

       (3)异常处理考虑越全面越好

        如在逻辑处理中,如果读取到边界值,使用断言ASSERT判定,还是弹出消息给用户提示,还是其他处理?这点要考虑清楚,否则越到bug会很难排查。

        对于一个独立的传参进程,必须传入参数才能跑到我们写的逻辑;要考虑用户如果不输入参数的情况的处理。

        一些难查bug往往都是异常场景考虑不足导致的,如一些在特定环境可以运行,但是换台机器或者环境就不能出现的非必现的bug举例:DLL加载问题、机器配置系统版本兼容性问题、配置文件删除问题等。

       (4)对外的接口尽量处理的再完美一些

        笔者遇到了从浏览器获取指定的串,以弹窗口反馈给用户的情况,取值的边界值如果设定考虑的足够多,那么只要符合要求的串都能取出。

        还遇到从浏览器下载文件(URLDownloadToFile,Windwos API)出现浏览器卡死的情况,网上的解决方案时通过单独线程负责下载。

 

三、阶段小结

         考虑的越全面会避免返工,虽然多花费了时间,但节省了后续改动bug的时间,还为未来的程序扩展提供了方便。

         发现与大牛效率、思考、分析问题还有很大差距,尤其快速定位bug的能力,这点只有从实践中积累锻炼才能提高,别无他法。

         一些不熟悉的内容经典书中的某个角度获取给了详尽的答案(如内存映射的手动释放)书要常读常新。

 

2014-3-14 pm22:29

作者:铭毅天下

转载请标明出处,原文地址:http://blog.csdn.net/laoyang360/article/details/21256209

如果感觉本文对您有帮助,请点击‘顶’支持一下,您的支持是我坚持写作最大的动力,谢谢!

你可能感兴趣的:(工作,模块,小结,第一个)