教学班 罗杰、任建班周五3、4节
gitlab项目地址 Here it is.
成员 周远航(3004) 李辰洋(3477)

结对编程体验

感受

  • 在前期设计时,两人合作可以收集更多资料,提供更多想法,有利于设计更完备的架构。
  • 一人写代码、一人领航员的配合方式及时对于能肉眼辨别的错误进行纠正,例如笔误、空指针错误等。

照片

设计阶段:对指导书进行精读,设计整体逻辑架构和类。

编程阶段:一人主笔,一人领航,交替进行。

在后期由于课业原因不方便同时在线时,我们还选择了分工协作的方式,每人负责相对独立的方法实现,push后对方对其进行检查。

设计思路

在初期设计时,我们充分融合了linux哲学核心思想:一切皆文件,并参考了Google开源java7文件系统实现源码,对于本次结对任务的初期架构进行了如下设计:

  • MyFileSystem

    文件系统核心类。记录了root和currentPosition两个目录入口。

  • DirectoryEntry

    目录入口类。用于管理目录下的所有文件(包括目录文件、普通文件)以及文件树的上下级关系。

  • File

    抽象类,“一切皆文件”中的“文件”,所有文件的父类,定义了一些文件的统一属性。

  • RegularFile

    普通文件,继承File抽象类。

  • Directory

    目录文件,继承File抽象类。

在完成本次任务的架构设计后,我们尝试使用TDD(测试驱动开发)的开发流程,使用JUnit4模块为MyFileSystem类需要实现的接口方法建立测试。通过基本设计框架的确定,以及测试模块的搭建,更好地指导了本次任务的开发和功能实现。

时间规划

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟
Planning 计划 90 90
Estimate 估计这个任务需要多少时间 360 600
Development 开发 270 300
Analysis 需求分析 (包括学习新技术) 30 30
Design Spec 生成设计文档 10 10
Design Review 设计复审 (和同事审核设计文档) 10 10
Coding Standard 代码规范 (为目前的开发制定合适的规范) 0 0
Design 具体设计 30 30
Coding 具体编码 120 120
Code Review 代码复审 120 300
Test 测试(自我测试,修改代码,提交修改) 120 300
Reporting 报告 60 60
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 20 20

整体来看,设计和主要代码的编写过程比较顺利,后期的测试花费了比想象中更多的时间。

最新文章

  1. iOS之访问权限以及跳转到系统界面
  2. 进制转换( C++字符数组 )
  3. html_02之表单、其它
  4. Android开发环境部署
  5. A.Kaw矩阵代数初步学习笔记 6. Gaussian Elimination
  6. SDE+ORACLE优化配置
  7. Android 高级UI设计笔记11:Gallery(画廊控件)之Gallery基本使用
  8. POJ 2151 概率DP
  9. 最近在折腾VPS(持续完善)
  10. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(44)-工作流设计-设计表单
  11. JAVA-反射-getGenericSuperclass()
  12. CountDownLatch与CyclicBarrier
  13. BASE64、MD5、SHA、HMAC几种加密算法
  14. HDU 1880 魔咒词典 (Hash)
  15. python自动化开发-[第十四天]-javascript(续)
  16. McQueenRPC源码阅读
  17. HTTP 协议基础概念和报文结构
  18. 峰Redis学习(1)Redis简介和安装
  19. mybatis学习八 事物
  20. 《转》Python学习(14)-对文件的操作(一)

热门文章

  1. Dart: puppeteer库
  2. 【python接口自动化】- 对接各大数据库
  3. redis源码之SDS
  4. Echars统计图的使用
  5. vue高级
  6. Python2和Python3编码的区别
  7. 基于SaaS平台的iHRM项目的前端项目介绍
  8. 大家最常用的编程论坛是哪个呢,欢迎评论!!掘金16 juejin 简书41 jianshu 博客85 csdn137 csdn
  9. C# smtp邮件发送
  10. IDEA中便捷内存数据库H2的最简使用方式