20145335郝昊《java程序设计》第三次实验报告

实验目的与要求

  • 以结对编程的方式编写一个软件,Blog中要给出结对同学的Blog网址,可以拍照展现结对编程 情况,可以参考一下其他学校的作业。
  • 记录TDD和重构的过程,测试代码不要少于业务代码,Eclipse中refactor菜单下重构技能不少于5个。
  • 团队代码要使用git在实验中托管,要使用团队中另一个同学的代码托管。
  • 程序要有GUI界面,参考用户界面和用户体验。
  • 实验报告中统计自己的PSP时间(Personal Software Process)。

实验内容

(一)敏捷开发与XP

  • 学习软件工程的标准和流程,其中主要以敏捷开发流程为主,而其中有一极限编程作为学习流程的主要软件开发方法。包括:编码,测试,倾听,设计,作为学习者,我主要关注和研究了编码标准、结对编程、代码集体所有、测试、重构等。

编码标准

  • 编码是一个即主观又客观的过程,每个程序员都有他自己的编程风格,但是不管到底是怎么编程,都要有一个良好的编程风格,而这个风格,就是编程标准,让代码具有了良好的可读性。

  • 其次通过百度知道Idea是自动格式化代码的。而我采用Idea编译了代码,所以会简便许多。

  • 但还是参照实验指导书给手动给代码添加空格,这样显得更美观许多。

重构过程

  • 在现代IDE中,Refactor几乎是一项标配功能。当我们编好程序,但却发现程序的命名有问题,或者发现有需求改名可以使用如下的方法。为改善既有代码的功能。我们可以使用如下方法.

  • 因为我使用Idea编辑代码,或许一些细节操作过程会与Eclipse的有些出入。

  • 在下面的程序中,不仅可以对文件名进行重构,还可以对一些其他项目进行操作。以上一个例子选中buffer,执行Refactor

Git的使用

  • 在传代码方面学会使用git会非常方便,git可以成量的有顺序的上传代码。

  • 在使用git上传代码的时候除了之前的直接利用git addgit commitgit push等命令行外还可以用这次实验指导里的方法上传代码。

  • 首先在某个文件夹下单机鼠标右键Git Bash Here会弹出来git 的命令行,实验命令行git clone在中输入命令git clone + 项目地址git clone https://git.oschina.net/java-besti-is-ljp然后git会自动网络连接,并下载这个https://git.oschina.net/java-besti-is-ljp项目里的所有文件,并在当前的文件夹下形成一个新的文件夹。

  • 之后打开这个下载的文件夹,将所需要的文件,或者文件夹放入这个文件中。

  • 继续使用Git软件,一步步在git命令行内执行命令。首先在用git clone下载的文件夹下右键Git Bash Here然后一次执行命令行。



  • 使用命令操作

    1.git status

    2.git add如果是文件夹,直接输入文件夹即可,如果是文件需要加上后缀,如asd.java

    3.git status

    4.git commit -m"XXXX"引号内的的东西是推送标签,如exp3实验三

    5.git push origin master

    6.这一步为输入账户和密码,以完成最后一步的代码上传。

  • 使用这个git命令行操作感觉有些投机取巧之意,没有很完整的按照直接上传的步骤,而是先下载,在上传。因为使用命令行git clone可以下载所有已知的项目的文件,但是在上传的时候确只能传回自己的账户信息内,所以有投机取巧之意。如果在开源中国的网站上将团队的队友添加至开发者,这样的话不仅可以下载代码,在上传的时候也可上传至团队队友的账户内,实现对同一个代码的不同修改,也是这次实验最终目的。



实验总结:

  • 通过本次实验,从java程序开发方式到代码重构都有了新的认识,同时在结对编程中体会到了团队协作的优点,在整个编程过程中对于程序整体设计理念有了更新的认识。

  • 在试验过程中,出现了vim指令操作不明,无法保存退出的情况,之后通过查找vim指令集,得知“:wq”为保存退出指令。后经使用,并未保存退出,之后经过仔细查阅其他博客园博主的帖子,发现先要通过“ctrl+c”或者“esc”进行退出,之后进过退出操作,成功完成。

实验PSP (Presonal Sowftware Process)时间

步骤 耗时 百分比
需求分析 5 6.25%
设计 10 12.5%
代码实现 50 62.5%
测试 10 12.5%
分析总结 5 3.25%

20145335《java程序设计》第三次实验报告的更多相关文章

  1. 20145330《Java程序设计》第二次实验报告

    20145330<Java程序设计>第二次实验报告 实验二 Java面向对象程序设计 实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承多态 3.初步掌握UM ...

  2. 20145320《Java程序设计》第二次实验报告

    20145320<Java程序设计>第二次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.12 15: ...

  3. 《Java程序设计》第二次实验报告

    20145220 <Java程序设计>第二次实验报告 课程:Java程序设计 指导教师:娄嘉鹏 实验日期:2016.04.12 实验名称:Java面向对象程序设计 实验内容 初步掌握单元测 ...

  4. 20145333 《Java程序设计》第二次实验报告

    2014333 <Java程序设计>第二次实验报告 课程:Java程序设计 指导教师:娄嘉鹏 实验日期:2016.04.12 实验名称:Java面向对象程序设计 实验内容 初步掌握单元测试 ...

  5. 20145240 《Java程序设计》第二次实验报告

    20145240 <Java程序设计>第二次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1452 指导教师:娄嘉鹏 实验日期:2016.04.12 实验 ...

  6. Java程序设计第四次实验报告

    北京电子科技学院(BESTI) 实     验    报     告 课程:java程序设计 班级:1352  姓名:何伟钦  学号:20135223 成绩:            指导教师:娄嘉鹏 ...

  7. 20145216史婧瑶《Java程序设计》第二次实验报告

    实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...

  8. 20145231《Java程序设计》第二次实验报告

    实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD: 理解并掌握面向对象三要素: 初步掌握UML建模: 熟悉S.O.L.I.D原则: 了解设计模式: 实验要求 实现并体会例子中代码的 ...

  9. 201521123008<java程序设计>第三周实验总结

    1.本周学习总结 2.书面作业 1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; pub ...

随机推荐

  1. LeetCode 笔记系列七 Substring with Concatenation of All Words

    题目:You are given a string, S, and a list of words, L, that are all of the same length. Find all star ...

  2. angular4 checkbox复选框的全选,反选及个别选择

    <label><input type="checkbox" name="" [(ngModel)]="master"> ...

  3. [ Office 365 开发系列 ] Graph Service

    前言 本文完全原创,转载请说明出处,希望对大家有用. 通过[ Office 365 开发系列 ] 开发模式分析和[ Office 365 开发系列 ] 身份认证两篇内容的了解,我们可以开始使用Offi ...

  4. Openstack实现共有云多flat网络

    首先给两台虚拟机添加网卡,模式为仅主机模式 配置控制节点IP /etc/sysconfig/network-scripts/ifcfg-eth1 TYPE=Ethernet BOOTPROTO=sta ...

  5. Delphi开发的服务在Windows2003 64位注册方式。

    1.在sysWoW32目录下找到cmd.exe,右键运行方式选择administrator,输入密码后.2.TrainServer.exe -install  安装服务.

  6. POJ3150—Cellular Automaton(循环矩阵)

    题目链接:http://poj.org/problem?id=3150 题目意思:有n个数围成一个环,现在有一种变换,将所有距离第i(1<=i<=n)个数小于等于d的数加起来,对m取余,现 ...

  7. Design and Architectural Goals

    w动态实例化-轻量级,组件间依赖程度.专一性-复用性.灵活性. https://www.codeigniter.com/userguide3/overview/goals.html http://co ...

  8. CentOS下调整home和根分区大小的方法

    解决外挂硬盘的问题. 目标:将VolGroup-lv_home缩小到20G,并将剩余的空间添加给VolGroup-lv_root 1.首先查看磁盘使用情况[root@jb51.net~]# df -h ...

  9. 剑指Offer——机器人的运动范围

    题目描述: 地上有一个m行和n列的方格.一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子. 例如,当k为18时,机器人 ...

  10. Java 8 : Predicate和Consumer接口

    1.consumer jdk 1.8 的 Iterable 接口中的 forEach 默认方法: public interface Iterable<T> { default void f ...