oo第一阶段总结

我系的重课真的是懒癌克星。

一如计组当初的警语:惰怠会导致惨剧。从寒假就抱着一本JAVA从入门到精通回家享乐了...

第一次作业:多项式加减

类图 & 度量

第一次作业相对简单,所需的类不多,逻辑上相对容易实现,重点在于正则表达式的学习使用,但是一夜速成JAVA还是正则表达式爆栈了

,虽然在提交之前有测试到这个问题,但已经来不及更改,其他没有错误。

从度量分析可以看到,因为没有将main()方法独立成一个类,并且在main()中实例化了其他类,导致快嵌套层数比较高,在小规模的工程中尚可,

但代码规模一大,即便是在后面作业的三五百行的代码量,都会因为过深的嵌套,而使得代码难以读懂和修改。

第二次作业:傻瓜调度电梯

类图 & 度量

第二次作业需要实现电梯的傻瓜调度,实现上也不难,这次作业吸取教训提前一天写,但你永远不知道你的debug需要多长时间!!,这次作业虽然

公测全过,但是仍然被查到一个点,原因是判断同质指令的条件存在考虑不周的状况,这本该在自己测试代码的阶段查出,然而当时只测试了一些短

的样例,以及临界大样例,不足以充分测试代码。还有就是对于异常触发机制的使用并不了解,这次作业中主要基本考虑了所有的情况,而没有很好

地尝试使用try-crash机制。

从度量上看,还是存在多层嵌套的问题 ,这个问题其实现在才意识到,设计上参考了课程PPT,但实际上还是按照自己的思路

在写,在对象的抽象能力上,有待加强,实际上第一、二次编程的思想还是更偏向面向过程

第三次作业:(A Little Smart)ALS 调度电梯

类图 & 度量

第三次作业的类图要复杂得多,需要满足继承、多态、接口等编程范式,难点在于ALS电梯判定捎带条件,此时我在代码测试上的不足

就体现出来了。这次作业代码规模要大得多,前期对需求文档的阅读理解不足、构思的不全面,都导致编程阶段bug的泛滥,不断测试

短样例,不断打补丁,添加限定条件,导致代码可读性极差,给debug造成一定困难(自己都不想看自己的代码),前期的准备很是不

足。然而最大的错误,却是一个低级错误,由于输出的方法从第二次作业的基础上修改,一些没有预料到的参数,在特定的情况下会被

输出,这让之前的努力白白浪费掉,极其可惜。可见,虽然编程实现上,可以磕磕绊绊把功能实现,但远没有能够完成一个完善的工程,

编程的习惯才是这些问题发生的根源。对于oo这种比较大规模的编程题,如果所有事情推得太后,往往没有给自己留下后路,也没法有

充分的时间测试优化自己的代码,最终提交的版本始终不是自己最满意的。

代码度量上看,嵌套问题还在,其他的复杂度之类的尚可。不过再审查别人的代码过程中,发现他人代码的风格极好,尤其是之前第二次作业

抽象模块封装都要高我不止一个层级,明显优化过多次,赏心悦目

自己程序中的bug

有:条件判定不涵盖所有情况的bug、爆栈的bug、输出错误的bug

主要导致bug的原因是,没有安排合理的编程时间以及粗心大意,还有就是测试驱动开发的能力不足,实际上多数错误不是编程能力上的不足

,而是编程习惯确实有待改进。包括与别人对拍的过程中,也觉得自己由于时间比较紧张,没有非常仔细寻找bug,而是追求速度。希望下次

真正将心态转换成真正在编写一个工程,而不是在赶作业。

别人程序中的bug

前两次作业中的程序没有找到bug,第三次程序存在同质电梯请求判定错误的bug,而且README基本没写,发现别人在细节的处理上更加干净

利落,类的划分更加恰当,即便会有bug,但代码风格更好,也更加容易找到bug。我想这是代码量上的差距,需要用时间来弥补。测试别人代

码主要还是对照错误分支树构造短测试样例来测试,同时阅读代码找bug,但是效率不高,这种方式容易让人厌烦,应当尝试编写脚本自动测试。

心得体会

面向对象编程的思想需要大量代码的实践来体会,就目前的感受来看,面向对象编程的思想在多对象交互的情景下非常实用,比面向过程更加容

易理清思路,而在未来的开发中面临的多数情况基本是多用户群高并发的场景。看到大佬们对作业的热情和投入,觉得自己在这门课上的付出似

乎并不足够,所以下次也要加油鸭

                            

                                                       2018-04-02

原文地址:https://www.cnblogs.com/butub/p/8688501.html

时间: 2024-08-08 17:31:29

oo第一阶段总结的相关文章

OO第一阶段纪实

$ 0 写在前面 在DDL一次次的推动下,历经三个周期的更迭,一个月的时光匆匆而过.谨撰此博文,以记录这一段见证成长的心路历程. $ 0-0 JAVA"一天速成"没有修习过传说中的"OO先导课",在学期开始之前也从未接触过JAVA编程,真正的从零开始学JAVA.有了先前课程的基础,经过了一年的积累,在短时间内学会使用一门语言并不困难,在加上JAVA天然的与C语言之间的某种相似性,也使得"JAVA一天速成"并非遥不可及. $ 0-1 "过

面向对象编程第一阶段总结

oo到目前为止也算是结束了第一个阶段,作为一个在本学期开学之前一行JAVA代码也没写过的菜鸡,这几周过得真的很艰难...一切都是从零开始摸索,全靠查资料和翻书自学orz 在这次的课程总结中,因为电梯部分的作业更加困难,我出现的问题也较多,所以主要只对第二三次作业进行分析. 第二次作业--傻瓜电梯 一.程序分析 二.个人反思 拿到第二次作业之后,当时整个人是毫无头绪的,本来是想通过画出逻辑关系类图先理清思路,但是冥思苦想了一个下午还是不太能理解课件所给出的的设计建议,于是决定按照自己的想法进行尝试

团队第一阶段绩效考核

成员 \权重 目标 实现( 25%) 工作量 (20%) 改善 创新( 10%) 完成及时 (15%) 积极性 (15%) 团队意识 (10%) 学习情况 (5%) 总分 郭庆樑 90 80 80 90 80 100 80 89 林彦汝 88 70 80 80 80 100 75 85.25 张金 80 70 70 75 100 100 90 81.5 以上是本团队第一阶段绩效考核方法及个人成绩.

S5PV210-uboot源码分析-第一阶段

uboot源码分析1-启动第一阶段 1.starts.S是我们uboot源码的第一阶段: 从u-boot.lds链接脚本中也可以看出start.S是我们整个程序的入口处,怎么看出的呢,因为在链接脚本中有个ENTRY(_start)声明了_start是程序的入口.所以_start符号所在的文件,就是我们整个程序的起始文件,_start所在处的代码就是我们整个程序的起始代码. 2.我们知道了程序的入口是_start这个符号,但是却不知道是在哪一个文件中,所以要SI进行查找搜索,点击SI的大R进行搜索

第一阶段绩效评估

以下是本团队第一阶段绩效考核方法及个人成绩. 成员 \权重 目标 实现( 25%) 工作量 (20%) 改善 创新( 10%) 完成及时 (15%) 积极性 (15%) 团队意识 (10%) 学习情况 (5%) 总分 李青 98 90 95 95 100 100 95 96 胡金辉 98 95 95 95 100 100 90 96.75 张瑶 100 96 95 95 100 100 95 96

团队项目第一阶段冲刺站立会议10

补昨天: 今天是第一阶段冲刺的最后一天,也是项目初次成果展示的一天,忙碌的一周终于要结束了,今天的站立会议并主要讲的是晚上去哪吃饭的问题,庆祝第一阶段的结束. 五一放假好好放松一下,等待第二个冲刺阶段的到来吧.最后附团队合照一张:

四则运算app第一阶段冲刺

第一阶段冲刺 [开发环境]:eclipse [开发项目]:小学生四则运算APP [开发人员]:郑胜斌 http://www.cnblogs.com/zsb1/ 孔德颖 http://www.cnblogs.com/kong21/ 李豌湄 http://www.cnblogs.com/leewanmei/ 江丹仪 http://www.cnblogs.com/JDY64/ [开发时间]:2015-11-20 第一阶段中,我们小组的人员都在学习四则运算的算法,并分别收集核心的算法,总的来说,核心算法

第一阶段总结

第一阶段的冲刺结束了,历时6天,我感觉第一阶段最大的感触就是学的没有方向感觉自己经过这十天的团队项目合作练习,我确定了好好补补以前的知识例如java还有就是团队的重要性,这里不是某一个人的英雄主义行为,一个人的力量再强大,也不如团队的力量强大,不过我们似乎没有把团队的力量发挥到极致,刚开始我们的热情还很高涨,不过经过几天的磨合,由于项目进展不大,逐渐产生了动摇的想法,想换个题目,不过后来仔细想了一下,我们的课题还是挺好的,只是没有认真分析讨论,我们的集体合作时间很少,除了每天站立会议那十几分钟,

第一阶段冲刺的总结报告(补)

第一阶段冲刺的目标:实现基本的截图任务,为实现第二阶段的冲刺奠定基础 第一阶段冲刺实际完成的任务:已基本实现冲刺目标,但是存在快捷键的冲突问题未解决,未实现与第二阶段有关的相应功能 对第一冲刺阶段的总结与思考: 第一阶段冲刺过程中,对于某些问题过于乐观,没有进行很好的团队安排,再出现问题时,没有进行详细的团队讨论,以至于造成问题遗留,团队交流进行不充分.另外,没有按照项目最初决定的方向进行开发,临时更换实现思路,导致项目的进度延迟,没有进行充分的风险评估.