第三次作业:结对编程

第三次作业:结对编程

GitHub地址https://github.com/Yanyixiao/PairProgramming.git
伙伴的作业地址帝国の伙伴

一、结对的过程

在结对编码的日子里,我们在学校激情讨论,放假了也不忘激情讨论。我和严一笑各司其职,扬长避短,发挥出各自的优点完成了这次作业。(可是没看到博客要求要照片,然后我又回家了,所以只能大概描述一下)

在学校的第一次讨论

在学校的第二次讨论

放假后我们只好通过电话来完成剩下的作业,求求助教不要扣分,这对我和严一笑真的很重要

1786547-20191001001406819-2071335161.jpg

二、PSP表格

PSP2.1Personal Software Process Stages预估耗时(分钟)实际耗时(分钟)
· Planning· 计划1010
· Estimate· 估计这个任务需要多少时间55
Development开发6055
· Analysis· 需求分析 (包括学习新技术)1015
· Design Spec· 生成设计文档510
· Design Review· 设计复审 (和同事审核设计文档)1010
· Coding Standard· 代码规范 (为目前的开发制定合适的规范)2015
· Design· 具体设计3020
· Coding· 具体编码6080
· Code Review· 代码复审1010
· Test· 测试(自我测试,修改代码,提交修改)1010
Reporting报告3030
· Test Report· 测试报告2020
· Size Measurement· 计算工作量1010
· Postmortem & Process Improvement Plan· 事后总结, 并提出过程改进计划1010
合计315320

三、代码规范

1. 注释规范

1.1 类型注释
/// <summary>
/// 老师类
/// </summary>
public class Teacher {}
1.2方法和属性注释
/// <summary>
/// 根据id查找人的名字
/// </summary>
/// <param name="id">人的id</param>
/// <returns>人的名字</returns>
public string GetPersonName(int id)
{
    return "";
}
1.3 单行注释
// 我是注释
1.4 多行注释
/*
多行注释
多行注释
*/

2. 命名规范

2.1 基本命名规范
  • 在命名时需要使用有意义的名称
  • 优先使用英文,如果英文没有合适的单词,- 可以使用拼音,如城市名称等
  • 禁止使用中文命名
  • 命名不能使用缩写,如必须写成 person,不能写成 per
2.2 使用Pascal风格(单词手写字母大写)命名
  • 命名空间
namespace MyApp{}
  • 类型
public class Person {}
  • 枚举类型、枚举值
public enum Colors
{
    Red = 1,
    Green = 2,
    Yellow = 3
}
  • 事件
public event WorkEventHandler OnWork;
  • 属性
public string Name { get; set; }
  • 方法名
public void Method(){}
  • 常量
const int Value = 10;

布局规范

3.1 使用 Tab 缩进,缩进大小为 4

Visual Studio 2017 中设置方法:菜单工具-选项-文本编辑器-C#-制表符,把制表符大小和缩进大小设置成4,选中“保留制表符”,点确定。

3.2 左右花括号必须独占一行,括号内容为空时可在一行

Visual Studio 2017 中设置方法:菜单工具-选项-文本编辑器-C#-代码样式-格式设置-新行

public void Method(int id)
{
    int i = 1;
    int j = 2;
}
public void Method(int id) {}

4.编码规范

4.1 不能出现公有字段

如果需要公有字段,使用属性包装。

4.2 类型名称和源文件名称必须一致

当类型名称是 Person 时,其源文件名称必须是 Person.cs。

4.3 类型成员的排列顺序

类型成员的排列顺序自上而下:

  • 字段:private、protected
  • 属性:private、protected、public
  • 事件:private、protected、public
  • 构造函数:参数越多,排的越靠前
  • 方法:参数越多,排的越靠前
public class Person
{
    private int _field1;
    protected int _field2;

    private int _property1 { set; get; }
    protected int _property2 { set; get; }
    public int Property3 { set; get; }

    public Person(int param1, int param2) {}
    public Person(int param1) {}
    public Person() {}

    public string GetPersonName(int param1, int param2) {}
    public string GetPersonName(int param1) {}
    public string GetPersonName() {}

}

四、代码设计

详情见严一笑的博客

严一笑负责学生姓名读取的部分,我负责随机点名的部分。

五、代码复审

代码复审基本没有什么异议,因为

  1. 老师给出了一些具有参考意义的代码,让我们思路清晰;
  2. 我们在同一个寝室,不懂就问;
  3. 写的代码少,就可以保证出错的几率小;
  4. VS2019会很明确的提出代码的错误之处,甚至还会帮你补正。

六、核心代码

  1. 我在fork下来的仓库里找到partner写好的.sln文件并编入我的代码
    1786547-20191001014521572-1400795484.jpg

  2. 运行结果
    1786547-20191001014620364-126107168.jpg

七、代码合并

写好代码之后,用git bush上传到我的仓库里
1786547-20191001014928983-1896320625.png

然后请求把我的仓库合并到partner的仓库里。
1786547-20191001015032821-1464523753.jpg

八、总结

这次的结对编程让我感觉1+1>2了,真的。

转载于:https://www.cnblogs.com/shiki510/p/11603964.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值