您的位置:首页 > 其它

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

2014-03-14 22:24 483 查看
反思前行——工作后第一个模块复盘总结 
        近四个月的忙碌即将划上句号,毕业后第一个参与的项目即将发布。将近4个月的工作梳理总结思考如下。
        项目涉及网页脚本编程、Linux编程、Windows编程等方面内容,我主要负责Windows端程序的编写,需要为浏览器提供接口,需要给另一端Linux设备端进行网络通信。
        简化逻辑如下:        


一、总体流程        


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



        以上是我负责模块中的一小块逻辑,但是当时就思考了好久(访问入口、访问权限、信息获取等几个方面)。细思整个编码过程,以下几点很重要。
       (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的能力,这点只有从实践中积累锻炼才能提高,别无他法。
         一些不熟悉的内容经典书中的某个角度获取给了详尽的答案(如内存映射的手动释放)书要常读常新。

四、常用工具
  
1.SuperFinder.exegrepWin.exeEverything.exe
2.FileZilla 文件服务器
3.Hash_1.0.4.exe
4.Beyond Compare 3 5.Foxit Reader6.Windows覆盖工具 TestCocoon7.WinMD5Sum8.Linux工具 SecureCRTPortable.exe xshell.exe pshell.exe
9.Windows进程查看器procexp.exe
Windows数据流查看器Tcpview.exe
10.文本查看器Uedit32.exe notepad++.exe
11.编码SourceInsight.exe 以及
12.代码工具检查cppcheck.exe c++test.exe
13.Bug跟踪TDExplorer8.exe
14.虚拟化平台工具VMware vSphere Client 5.5 6.0
15.PHP查看工具Sublime Text 2
16. www.cplusplus.com 2014-3-14 pm22:29
作者:铭毅天下
转载请标明出处,原文地址:http://blog.csdn.net/laoyang360/article/details/21256209
如果感觉本文对您有帮助,请点击‘顶’支持一下,您的支持是我坚持写作最大的动力,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: