大作业生存指南
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
好好做完前六次实验理解每一个模块都做了什么,你可以反复阅读这篇文章来验证自己是不是真的很明确的理解了模块的作用。
(选做)在大作业框架里提供的解析class文件的部分中,有一个非常重要的知识点是“属性的解析“,我们希望你能够了解一下属性表是什么,它能做到什么,这会让你对JVM本身有更好的理解。
相信在第五次作业中大家都靠着一个可视化界面和控制台输出相当轻松的就通过了OJ。而在第六次的作业中,我们已经取消了这些辅助工具,也许很多人的debug过程会变得格外痛苦。
那么想必你也体会到了,一个强大的debug工具能够帮助我们在写代码时快速解决问题。
尽管IDEA的debug工具已经提供了十分丰富的支持,但是在面对大量需要定制输出的信息的时候它还是会显得有些乏力。你可以通过一些方法让输出、中间状态变得更可读,例如shell脚本、规格化的printf、log日志或者更强大的前端应用,它们的本质都是过滤掉干扰信息提供更多有效的内容用于debug
查看,这是我们推荐的实现顺序(你也可以先留出接口然后按自己喜欢的顺序去实现)。在每一个模块实现后你都应该对已有的模块来进行一定的测试,逐步扩展功能。否则最后很有可能一个bug就能让你崩溃。
助教们曾经也合作过非常多的项目,我们在第一次正式合作时采取了大爆炸式集成,简单的说也就是每个人写完了自己的部分然后拼到一起,最后试图一次性把整个系统跑对。结果当然是毫不意外的整个项目都大爆炸了(其中曜铭xgg写的各种bug功不可没(x
不要吝啬花在测试上的时间,我们非常理解那种“我已经花了这么长时间来写了居然还要我测试“的心情。但是测试的用处是巨大的,它能够给你继续推进工作的信心。测试的越充分,埋下bug的可能性就越低,出bug的时候你需要检测的范围也就越小
注意好边界条件的测试
当出现if-else的时候尽量设计用例使得不同的分支都能够被执行到
junit5比4提供了更好用的接口,可以直接学5,对之后的课程也会有帮助。我们在之前的测试用例里使用4只是因为平台不支持5(
仔细设计用例,免得出现测试用例写错导致把源码也改错的尴尬情况
多写注释,整个大作业开发周期相对较长,不写注释很有可能中间出去旅游几天回来就看不懂自己写的是什么东西了。另外请谨慎命名,不要使用例如value1,str2这样的不具备含义的名字,或者用中文拼音来命名,这会给你自己回顾代码带来巨大的麻烦。好的代码应该是能够自解释的。
不要让一个方法变得过长,尽可能让每一个方法拥有一定的指责,这在debug的时候能够让你快速step-in step-out