软件构造--Lab1小结

软件构造–Lab1小结

目前距离Lab1的结束已经有一段时间,下面对Lab1进行简单的总结。

IDEA

首先,是要感慨一下IDEA的强大。
作为一个IDE,它对于用户来说可谓非常友好。尽管对Java语言不算熟悉,但是IDEA能够帮助我们发现代码中潜在的问题、显示存在的问题。例如,while循环在一定条件下,IDEA以waring的形式提醒我们可以增强为for循环;在当前配置的JDK版本下,某些方法可以被新方法替代,如Integer.valueOf()会被以waring的形式被提醒可以用Integer.parseInt()替代,等等。对于代码中的出现的错误,IDEA也可以实时地提示给我们;还有些到达不了的语句、冗余的代码等等,都会智能地提示给我们。
在这里插入图片描述
(方法替换的示例)
在这里插入图片描述
(尽管不会这么写,但是在复杂的模块中,这种自动检查还是很有用的)
IDEA能够自动生成某些方法,如get、set、测试方法框架等,一定程度上为我们提供了便利。
在这里插入图片描述
IDEA同样继承了一些工具、插件、框架等,都是便于程序员开发的东西。
因此,我们要充分利用IDEA,提高编写代码时的“舒适度”。

版本控制

其次,版本控制是十分重要的。
通过版本控制,可以将完成项目的一步步过程通过每一步保存在远程仓库中,清晰地显示出来,也便于后续查看。如果某个步骤发生了不可逆转的错误,也能够通过回滚等操作,回复到近期的版本,重新完成这一步骤。因此,完成一个模块、步骤之后需要及时的提交。
当今版本控制工具以Git为流行,在以后的工作中,肯定会用到Git(不考虑新兴的版本控制工具在近期流行的情况)因此,需要熟练地掌握Git,为后续铺好道路。

基础知识

最重要的,要牢固基础知识。
在P2的社交网络实现中,getDistance需要使用图搜索的某些算法(这里使用的是DFS深搜,当然BFS宽搜也不错),由于这部分基础知识有些遗忘,上手有些生疏,如果是半年前(当时有数据结构与算法课程),写这个还是没什么问题的,但是现在,还需要及时地去复习才能够完成。

Queue<Person> queue = new LinkedList<>();//DFS深搜,找最短路径
Map<Person, Integer> DFS = new HashMap<>();
DFS.put(a, 0);
queue.offer(a);
while (!queue.isEmpty()) {
	Person head = queue.poll();
	List<Person> friends = head.getFriends();
	for (Person key : friends) {
		if (!DFS.containsKey(key)) {
		queue.offer(key);
		DFS.put(key, DFS.get(head) + 1);
        if (key == b) {
        	return DFS.get(key);
        	}
        }
    }
}

因此,一些基础的知识还是要牢固掌握,以免用到的时候有麻烦。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深海质粒ABCC9

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值