全是Bug
一、开始实现程序之前
1. 在文章开头给出结对使用的Github项目地址和结对伙伴的作业地址。(两个人使用同一个)
我的结对伙伴是 : 201731044205.
伙伴的作业地址: https://www.cnblogs.com/jhm12345678/p/10649766.html
我们使用的Github项目的地址:https://github.com/jmddd/WordCount
2. 描述结对的过程,提供非摆拍的两人在讨论的结对照片(一起工作编码时的照片)。
由于我们对编程的平常的练习不够多,对实现这些功能应该要去做什么还是很陌生的。
首先我们先讨论了一下,把自己会部分分工了,剩下的不会的,我们可以一起查资料重新学习去实现,相信两个人一起的能力还是比一个人的能力大的,下面是我们在进行一起编程讨论时所拍的照片。
3. 给出结对的PSP表格。
PSP表格:
PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
Planning | 计划 | 75分钟 | 90分钟 |
· Estimate | · 估计这个任务需要多少时间 | 75 | 90 |
Development | 开发 | 1005 | 1260 |
· Analysis | · 需求分析(包括学习新技术) | 75 | 90 |
· Design Spec | · 生成设计文档 | 30 | 45 |
· Design Review | · 设计复审(和同事审核设计文档) | 60 | 75 |
· Coding Standard | · 代码规范(为目前的开发制定合适的规范) | 60 | 45 |
· Design | · 具体设计 | 60 | 60 |
· Coding | · 具体编码 | 8*60=480 | 10*60=600 |
· Code Review | · 代码复审 | 1.5*60=90 | 2*60=120 |
· Test | · 测试(自我测试,修改代码,提交修改) | 2.5*60=150 | 225 |
Reporting | 报告 | 145 | 145 |
· Test Report | · 测试报告 | 75 | 65 |
· Size Measurement | · 计算工作量 | 25 | 35 |
· Postmortem&Process Improvement Plan | · 事后总结,并提出过程改进计划 | 45 | 45 |
合计 | 1225 |
149 |
4.解题思路描述。即刚开始拿到题目之后,如何思考,如何找资料的过程。
在刚开始看到这次作业,慌得一批,(对于编程能力很弱的我来说,所有的编程作业都让我慌得一批)。
需求分析的能力也很弱,只停留在需求分析的最表面,无法进行更深层次更准确的需求分析,只能按照作业的要求进行设计代码的框架结构。
- 首先弄清楚需要实现的有5个基本功能,其次分别用不同的类实现这5个不同的功能:
- 统计文件的字符数:CountCharacter.
- 统计文件的单词总数:WordNum.
- 统计文件的有效行数:YouLine.
- 统计文件中各单词的出现次数:CountWord.
- 按照字典序输出到文件txt:PutTxt.
- 分别对着这5个部分编写显示输出的5个方法。在主函数里面建立功能类的对象,再将其结果传入到相对应显示输出的函数中
将想法具体一下,基本功能的实现大概如上图
5.设计实现过程。设计包括代码如何组织,比如会有几个类,几个函数,他们之间关系如何,关键函数是否需要画出流程图?单元测试是怎么设计的?
见结对搭档的作业:201731044205
对代码的测试:
由于是实现功能的方式,对它进行实例测试,输入一句英文,预测其结果,若其输出与预期结果不符合,则其测试未通过,抓取异常。
6.给出你们制定的代码规范或链接,记录你们代码互审的情况,审查的模块名、发现的问题等。
制定的代码规范见结对搭档的作业:201731044205
我们在讨论制定了计划之后便开始我们的编程之旅,我们在把基本功能实现之后,便开始了我们一边审查、一边修改并一边实现新功能。
1.审查的时候,发现互相之间的对功能的不同的变量、方法和类的命名有点差异,于是再进行讨论让其更为规范易懂;
2. 包含基本的类和方法的功能的设计实现是否正确合理;
3. 主函数中对其他模块的方法的调用情况。
7.记录在改进程序性能上所花费的时间,描述你改进的思路,并展示一张性能分析图(由VS 2017的性能分析工具自动生成),并展示你程序中消耗最大的函数。
见结对搭档的作业:201731044205
8.代码说明。展示出项目关键代码,并解释思路与注释说明。
见结对搭档的作业:201731044205
9.结合在构建之法中学习到的相关内容与结对项目的实践经历,撰写解决项目的心路历程与收获,以及结对感受,是否1+1>2。
在这一次作业中,相对独立也相对合作,在各自编码的过程中,如若遇到问题,会互相询问,若还是解决不了会停下来去查找资料解决,这种方式有一定的优点,毕竟两个人的行动会比一个人独自思考有用的多,但是也有很大的弊端,要是问题无法解决,会耽误作业进度,同时消耗两个人的时间,还好在这次的作业中没有发生太严重的事情,希望如有下次合作,能改进一下这种方式。
但是总的来说,1个人的力量真的有限,再加上1个人之后,我明显感觉到没有一个人的时候费劲,能给提供更多的思路,和更多的解决方法。
全是Bug的更多相关文章
- LeetCode 全解(bug free 训练)
1.Two Sum Given an array of integers, return indices of the two numbers such that they add up to a s ...
- 花了几天入门Storm,上了一版,全是Bug
前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 听说过大数据的同学应该都听说过Storm吧?其实 ...
- 你知道为什么Xcode6中Swift没有智能提示和自己主动补全功能吗 ?
你知道为什么Xcode6中Swift没有智能提示和自己主动补全功能吗 ? 长沙戴维营教育将为你解开这个巨大的谜团大BUG! http://www.ubuntucollege.cn/course/29/ ...
- AI要被祭天了!删Bug,删着删着把全部代码都删了
近日,美国版的“大众点评”,本想训练 AI 来消除 bug,结果它把所有内容删除了... Yelp 在其最新更新的 App 中写道: “我们为本周使用该app遇到问题的用户致歉.我们训练了一个神经网络 ...
- bug统计分析续(一)基于SQL的Bug统计方法
本文由 @lonelyrains 出品.转载请注明出处. 文章链接: http://blog.csdn.net/lonelyrains/article/details/44225533 上一篇为 bu ...
- Extjs 疑难杂症 (LoadMark 遮罩、Panel Update无效、chrome浏览器date控件全屏)
一.在extjs gridPanel中使用LoadMark无效,三步搞定. 原代码: grid = new Ext.grid.GridPanel({ store: store, title:'资料列表 ...
- Windows 10开机的秘密在哪里
如何查看开机速度 查看开机速度,一定要安装所谓的第三方安全软件么?老子就是不喜欢被安全! Windows自带的事件查看器中记录了系统的一举一动,何必需要别人来监视? 在运行(WinKey+R)中输入e ...
- EF自动生成的(T4模板) 关联属性元数据修改
为了实现 T4模板关联属性 不要序列化的问题 就是要在具体的 关联属性上面添加一个元数据 这里利用以前的 Newtonsoft.Json 这个框架为例 效果应该为 就是要在关联属性上面添加元数据 [ ...
- BZOJ1176: [Balkan2007]Mokia CDQ分治
最近很不对啊=w= 写程序全是bug啊 ans数组开小了竟然一直不知道,小数据没问题大数据拍不过,交上去RE 蛋疼半天 这个主要把每次询问拆成3个询问. #include<cstdio> ...
随机推荐
- Browserify模块化使用教程
Browserify模块化使用教程 创建项目结构 |-js |-dist //打包生成文件的目录 |-src //源码所在的目录 |-module1.js |-module2.js |-m ...
- 2017-12-19python全栈9期第四天第二节之列表的增删改查之切片
#!/user/bin/python# -*- coding:utf-8 -*-li = ['zd',[1,3,4,5,6],'ls','ww','zl']l1 = li[0]print(l1)l2 ...
- 第十节:数据批注(DataAnnotationModel)和自定义验证(包括Model级别的验证)
一. 简介 写完上一个章节MVC中的常用特性,迫不及待将该系列补全,该章节主要介绍数据批注(也叫:注解). 一听[数据批注],好高大上的名字,但仔细一看,它们其实是[System.ComponentM ...
- 第十五节:Expression表达式目录树(与委托的区别、自行拼接、总结几类实例间的拷贝)
一. 基本介绍 回忆: 最早接触到表达式目录树(Expression)可能要追溯到几年前使用EF早期的时候,发现where方法里的参数是Expression<Func<T,bool> ...
- 前端面试题整理—JavaScript篇(一)
1.JS的基本数据类型和引用数据类型有哪些,两者区别 基本数据类型->string.number.Boolean.null.undefined.symbol 引用数据类型->array.o ...
- vsftpd启动问题简记
centos7 能以ipv6方式启动,启动只需修改配置如下 如需同时启动到ipv4跟ipv6,需拷贝配置文件,一份配置中只监听ipv4,一份配置中只监听ipv6 centos6中无法启动到ipv6,错 ...
- windows服务器基本管理及服务搭建
windows服务器基本管理及服务搭建 ****windows服务器系统版本:2000 2003 2008 2012 1.用户与组管理 用户:账户=账号/用户名+密码 每个账户有自己唯一的SID 账户 ...
- Python3:字符串的大小写和镜像字符串(swapcase()函数,chr(),ord(),translate()函数)
题目: 请编程实现字符串的转换:1. 将"adsdsfdndsdsdfsfdsdASDSDEDSFE18754"字符串大写变小写,小写变大写:2. 并且将字符串变为镜像字符串,例如 ...
- win10下maven的安装与配置
下载apache-maven-3.5.3-bin.zip并解压: 环境配置: 系统环境:添加=>MAVEN_HOME 值为apache-maven-3.5.3的路径(D:\xxx\apache- ...
- iOS 中的特殊字面量表示方法
转义字符\0(空字符).\\(反斜线).\t(水平制表符).\n(换行符).\r(回车符).\"(双引号).\‘(单引号).单字节 Unicode 标量,写成\xnn,其中nn为两位十六进制 ...