虚拟磁盘实践小结
用四周时间完成了虚拟磁盘项目,项目过程中遇到许多困难,也学到许多东西。现总结如下:
1.软件开发流程
软件开发流程为:需求分析->详细设计->代码编码调试->测试和修改。
需求分析:
基于鲁棒图和用例图,对需求进行分析,确定软件功能。这一步非常重要,决定了后续详细设计,并绝对软件最终实现。因此,需求分析需要细致,需要绘制出尽可能详尽的用例图和鲁棒图。
详细设计:
基于类图进行软件详细设计,确定需要的类、类的职责、类之间的关系以及设计原理,需要和需求分析相对应,确保包含所有需求用例。详细设计过程中,应当尽可能详细,尽可能确定需要的方法和属性,并基于用例图,分析用例是否可以实现。
代码编码和调试
应当注重命名规范、以及一些重要的注意事项:
- 对象创建出来时,对象的属性应当是全部被初始化的
- 对于一个参数的构造函数,应当使用explicit
- 函数的入参应当尽量采用常引用const&、引用&、指针,对于不需要改变的参数必须用const,对于需要改变的参数,必须加注释说明*
- 函数的入参为容器时,必须传const&或者&
- 应当尽量避免if else,因为程序可读性较差,且容易出错
- 优先选用vector而非list,除非有明确的理由
- delete后,不要把指针置空,让可能的问题暴漏出来
- new和delete要成对使用
- 代码编码一定要和设计一致,若有需要更改的地方,应当先更改设计
- 代码编码一定要使用代码管理工具SVN或者Git
测试和修改
测试按照测试用例进行,务必全面准确。
2.软件开发过程中的问题
- 缺乏沟通:有任何问题都要及时和领导沟通,特别是方案改动
- 技术能力欠缺:对容器不很熟悉,对c++语法掌握不够,缺乏编码经验
3.软件结构
4.收获
收获很多:
- 代码规范
- c++语法
- STL使用
- c++编程中的一些好的编程习惯
- 工具使用:SVN、Git、Enterprise
- 内存泄漏检查方法
最后:万分感谢炜哥的耐心指导!