中级实训总结

这次实训总共经历了四个星期,其中一周因为五一的原因,算是给了一个缓冲,但也算是暴风雨前的宁静,阶段三的难度可称得上是触目惊心。
四周的实训内容大致分为了三个阶段,第一个阶段主要是熟悉ant,junit和sonarqube的使用方法,以及java环境的配置。然后就是跟着步骤来运行BugBunner程序,最后是根据运行结果来回答问题。
然后是阶段二,主要内容还是理解代码和自行根据提供的函数按照要求完善类和方法,然后运行和检查之后,完成回答。
阶段三的难度则大大提高了,在查阅了不少信息和舍友的帮助下才完成。涉及到了位图的结构和读取操作,深搜和广搜等算法。
三个阶段层层递进,由简入深,是一种很好的实践方法,但是由于此前对Java的了解和接触极少,导致了在实训中遇到了许多磕磕碰碰,但所幸群里有同学和ta能解疑,舍友也会帮忙理解和构思算法,最终完成实训。除了编程上的问题,ide的选择上也让人产生了疑惑,eclipse相比于sublitm+命令行编译,有更明朗的文件结构和错误提示,但是本身不够完善,可能存在一些难以理解和解释的bug,例如main函数无法运行,而重启eclipse之后就没事的bug。虽说sublime+命令行的组合bug极少,但文件结构方面实在是一大缺点,以及没有找到合适的插件的话,对效率会有很大的影响。

其次就是对Java的感触。在许多情况下,都会给人一种感觉,那就是Java似乎已经把大多数你想要用到的函数都已经写好并且封装进类里了,例如ArrayList的toString方法,c++和c中应该是没有的,这就节省了很多的代码。再就是Java的面向对象编程的特性,将所有方法和成员变量都用类封装好了,还有包的结构,以及jar包的方式来调用,会让人觉得很方便。

这次实训是第一次接触sonarqube这类代码质量检测工具,让我意外的是,以前所认为是极其方便的代码编写方式却被检测出是低质量的,在语句之后添加注释,以及直接使用数字而不是变量。虽然还是不明白是否会影响效率,但以后肯定会更加注意。

对于ant和Junit的使用,如果使用了eclipse的话,可能ant的作用就没那么大了,因此对我来说,Junit的作用更大一些。虽然整个实训并没有完全地参透和比较深入的使用Junit,仅仅只是测试对比了一下输出的内容,应该还有更多的内容可以用得到和值得我们去学习,在查询资料的过程中,发现Junit5也发布了,应该会有更多的新功能。而ant作为一个构建工具,一开始用来调用Junit还是很方便的,后来文件结构复杂了,直接使用了eclipse之后,通过eclpise来调用Junit让我觉得更加方便和直接。虽然使用ant的话,直接在命令行下进入目录,就能很快构建好。

本次的实训过程,相比大一的初级实训,感觉侧重的方向不一样。大一的初级实训从头到尾是同一个项目,而从第一个阶段到最后一个阶段的过程,也是这个项目从底端到外部的过程,目的是为了培养工程项目的开发能力,提前熟悉一下大型项目的开发过程。而大二的中级实训更像是为了培养良好的代码习惯和侧重结果检查,以及利用一些算法。特别是在阶段三的项目中,例如MazeBug和N-Puzzle,不同的算法会在运行的结果和测试中体现出不同的效果。而sonarqube中也有和代码复杂度相关的测试。因此,中级更像是告诉我们一个好的算法的重要性。除此之外,和初级实训直接不同的感受就是,gridworld中已经有许多早已实现好的方法,你需要做的就是通过调用,继承或者重写等操作来实现新的功能,而初级实训的内容是从几乎为0开始的。我想面向对象编程的开发过程,应该会更像中级实训。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值