20145320《Java程序设计》第三次实验报告

本文档介绍了在Java程序设计课程中进行的敏捷开发与XP实践实验。内容包括使用Git进行代码托管的过程,以及如何通过重构改进代码结构,提高代码质量。实验还涉及到了团队合作中的代码拉取和推送。

20145320《Java程序设计》第三次实验报告

北京电子科技学院(BESTI)实验报告

课程:Java程序设计

班级:1453

指导教师:娄嘉鹏

实验日期:2016.04.22 15:30-18:30

实验名称:敏捷开发与XP实践

实验内容:

    1. git的使用
    1. 项目的相互修改
    1. 学会使用重构

      使用Git

      虽然不知道是哪个人搞出这个git,就感觉自己用了这个,逼格都上升一大波。

使用Git托管代码流程
.ssh -T git@git.oschina.net->git config --global core.autocrlf false(敲过一次就不用敲第二次)
->git init->git add .->git commit -m" "->git push origin master

就知道你们想看截图,闪亮亮的结果如下

885438-20160424223449366-1726279227.png

既然要搞合作,就要从别人那pullpush,大家看这个

885438-20160424222420116-651063004.png
885438-20160424222415210-461791141.png

我从20145319上pull下来,在push也是往20145319推
885438-20160424224641460-234294572.png

大家看

885438-20160424224810507-912798709.png

程序被我改啦哈哈哈

重构

我们先看看重构的概念:

重构(Refactor),就是在不改变软件外部行为的基础上,改变软件内部的结构,使其更加易于阅读、易于维护和易于变更 。

重构中一个非常关键的前提就是“不改变软件外部行为”,它保证了我们在重构原有系统的同时,不会为原系统带来新的BUG,以确保重构的安全。如何保证不改变软件外部行为?重构后的代码要能通过单元测试。如何使其更加易于阅读、易于维护和易于变更 ?设计模式给出了重构的目标。

重构重要吗?你看看Netbeans菜单中有个重构菜单就知道了,重构几乎是现代IDE的标配了:
885438-20160424221200413-1965588577.png

我们在编码标准中说“给标识符命名”是程序员一项重要技能,以前没有这个意识,现在知道了怎么办?没问题,上图中重构的第一项功能就是Rename,可以给类、包、方法、变量改名字。
例如这有个hello类:

885438-20160424221207413-585807208.png

重构完的效果如下:

885438-20160424221529741-194186399.png

学过C语言的学生学Java时常犯的毛病是不会封装,该用类的地方都用了结构体。比如要定义一个类Student,会出现这样的代码:

885438-20160424221218648-1337612765.png

Netbeans中菜单中的 重构->封装字段 如下图:
885438-20160424221212804-1513489537.png

注意分析一下重构前后的代码变化:
885438-20160424221224538-723315777.png

同样可以封装id和age两个成员变量

还是有问题的,每次打印学生信息都这么写代码违反了DRY原则,造成代码重复,可以这么干

由于Java中所有的类都有个专门的toString方法,我们使用给Student类产生一个toString方法,如下图:

885438-20160424221229085-1607552139.png

我们要修改软件,万变不离其宗,无非就是四种动机:

  • 增加新功能;
  • 原有功能有BUG;
  • 改善原有程序的结构;
  • 优化原有系统的性能 。

最后附上搭档的博客

http://www.cnblogs.com/20145319zk/p/5427907.html

转载于:https://www.cnblogs.com/zqh20145320/p/5428723.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值