正想着团队项目中数据该如何解析,就收到了来自软工课程组的一件小黄衫,真是意外之喜。详问其来源,竟是因结对项目做的“较好”而来,顿感受之有愧。

结对项目是两人对文件系统的一个小模拟,尽管也有多人合作、需求分析、架构设计及优化、代码实现和测试、进度管理等多个组成部分,与传统的 OO 题目不甚相同,但与真实的团队软工还是相差较远的。这种题目的需求是相对明确、能够进行近乎严格的正确性测试的,而在团队项目中,我深刻地体会到真实项目的需求分析远远难于此。

团队项目不是一个问题的需求分析,而是多个问题:比如我们团队近取 Key ,在后端需要单词数据以及单词间关系的数据,这些数据有的可以直接从 mdx 等字典文件解析而得,有的需要从网络上爬取、搜集各种类型格式的文件而得,但最终都需要以统一的格式存入数据库中,其中每一部分文件的解析都需要进行需求分析和设计,以及错误设计:因为很多数据都是经过了人手,必然会存在一些错误(比如 submit 写成 sumit 等),如何尽量少地避免因为数据的错误而导致推荐的不准确、如何将获取数据中用户所感兴趣的数据提取出来,每一个任务都需要一个较为完整的流程,甚至任务之间可能是并行的。因此,为了防止处理失误,在开发时我不得不在 issue 中明确每一步的处理、完成状态(如这一个 issue),并撰写详细的需求分析和设计文档以备查看。奇怪的是,并不是课程组要求我们做 issue、要求我们写文档,而是这些问题都是我们开发过程中理所当然要做的,我们需要做,那么自然而然的就会去做。部分方法的单元测试也是,认为可能出错,那么就去做,而有一些逻辑过于显然的方法,我们也暂且没有做测试,不知这样处理是否得当,最后的结果就是单元测试的覆盖率较低。

个人博客、结对和团队开发的过程都是非常紧张而愉快,同时又收获颇丰的,非常感谢课程组能够为我们提供这么一个实践软工的机会;但同时在团队开发初期,课程组似乎下偏了功夫,导致我们团队需求分析很明确的情况下还需要受到较大的来自奇怪主观判断的压力,因此收到黄衫后也一直没有时间写这篇感言;不过总体的感觉是很棒的。希望能够在 Beta 阶段更加丰富自己的软工实践经历,更加深刻地认识和实践软工。

btw,搜索黄衫全是倚天屠龙记里的黄衫女子,不知道课程组是否有此隐喻,哈哈。黄衫上的 Learning By Doing 蛮赞的。

最新文章

  1. ADO.NET操作数据库(一)
  2. 用Java计算某个日期100天后的日期
  3. [汇编] 将字符串里的一个'&'字符换成空格
  4. 如何利用花生壳和VisualSVN Server建立远程代码仓库
  5. ecmall widgets 挂件开发详解
  6. iOS开发— Socket编程
  7. Linux 命令 - ps: 显示当前进程的快照
  8. 【JavaScript设计模式系列---开篇预览】
  9. 发布WebService到IIS和调用WebService
  10. android中使用surfaceview+MediaPlayer播放视频
  11. js便利关联数组 及数组定义方式 分类
  12. 控制流之break
  13. apache: eclipse的tomcatPluginV插件下载
  14. htmlDOM操作1
  15. Zabbix3.4-RHEL 7.4 X64 YUM联网安装
  16. winform 仿web 滑块验证
  17. FineUIMvc的分部视图连接器 --VS-- FineUIPro的用户控件连接器
  18. layui table默认选中指定行
  19. ionic2自定义radio样式
  20. ionic2程序调试

热门文章

  1. [hash-bfs]USACO 3.2 Magic Squares 魔板
  2. java面试一日一题:mysql事务是如何实现的
  3. 01_pytorch和tensorflow的区别
  4. Dynamics CRM9.0更新了Chrome后菜单按钮变形
  5. 用递归求出n的全排列
  6. [源码分析] 分布式任务队列 Celery 多线程模型 之 子进程
  7. JS 中一些高效的魔法运算符
  8. Java双刃剑之Unsafe类详解
  9. 【新手/零基础】Hexo+Gitee个人博客搭建教程--详细版
  10. 关于width的继承和获取