oo 第一次博客作业

早在大一就听说了oo的各种传奇故事,大二下学期终于也开始了我的oo之旅。

基于度量来分析自己的程序结构

第一次作业

  • 类图分析

  • 耦合度分析

可以看出在第一次作业中,我的耦合度非常高,还停留在面向过程式的设计。

第二次作业

  • 类图分析

  • 耦合度分析

可以发现在第二回作业中虽然我有意识的拆分类,但组织结构仍然不好,耦合度仍然很高。

第三次作业

  • 类图分析

  • 耦合度分析

可以分析发现,这次的作业有了一些oo的样子,对input, output, terms有了各自的package,并且耦合度较前两次降低了一些。但设计的架构仍然不够优秀,有很大的进步空间。

自己程序的bug

在前两次作业中,我在互测中有bug。

  • 第一次作业出现bug的原因是没有读懂指导书,在ddl截至前才明白非法空格的含义,在改动代码时过于慌忙,没有处理字符串开头和结尾的非法字符。

  • 第二次作业产生的bug在优化中,因为是熬夜写的,没有进行充分的测试,且是面向过程式的思考结果。

如何发现别人的bug

对于找到别人的bug,我主要有两个思路。

  • 首先是针对指导书的边界样例进行总结和测试。

  • 其次是编写自动化测试。

其他

前三次作业我有不少进步,但总体不算满意。

下面分为收获和不足两部分来总结。

收获:

  • 有了面向对象的基本概念,对继承和接口有了初步的认识。

  • 开始学会先设计再写代码的思维方式,明白了设计结构对完成代码的重要性。

  • 在阅读别人代码的过程中学习到一些java编程的技巧和方式。

不足:

  • 时间规划上有很大不足,有过熬夜到很晚的经历。

  • 设计仍然不够简洁和精巧,写的代码结构复杂,不够明了。

  • 测试不足,有两次互测中被测出bug的经历。

  • 对多态和设计模式等了解不足,应用不足。

  • 我对自己的自学和探索能力不太满意。

之后规划内的改进:

  • 有献血计划,所以oo作业绝对要及时完成,不在晚上十一点半后编程。

  • 多阅读优秀的项目代码,提高姿势水平。

  • 补充课外阅读读物,扩展设计模式知识。

对整体oo学习的感想:

  • 对作业内容不算满意,感觉没有展现足够的oo思想。

  • 对课堂内容不太满意,这里举两个例子。第一是某节课讲到的clone函数,老师并未提到任何关于深拷贝和浅拷贝的内容,只强调了和=直接赋值的区别,但直接使用clone()是浅拷贝,和直接=赋值有同样的改变其中之一的值,另一个随之改变的问题,这才是编程中常遇到的坑。第二是关于接口,首先我先说明这节课由于我赶一个ddl没有特别认真的听课,但课后看ppt的过程,接口部分举的例子是同一层的全部类使用接口,这让我产生了极大的困惑,这和实现继承父类的抽象函数有什么区别吗?在系群中提问后才明白了接口的真正意义所在,解决除简单的树形结构外其他组合的可能性。我认为这是ppt设计非常不好的一个典型例子,举一个特别不typical的例子,而不展现重点。

  • oo还是更多是一个自学的过程,讨论也很重要。

  • 由上可见我在第三次作业中的设计仍然非常别扭,不是最佳的表达式,项和因子的形式。预计重构递归下降的过程,参考助教提供的enum写法。

oo 第一次博客作业的更多相关文章

  1. OO第一次博客作业

    OO第一次博客作业 一.三次作业的bug反省 1.自己发现别人的问题 (1)输入处理的问题,比如第一次作业,主要就是处理输入的字符串,然后有同学的正则表达式有问题,则对于一些错误输入就不能正确判断. ...

  2. OO第一次博客作业--第一单元总结

    OO第一单元总结 面向对象设计与构造的第一单元,对“面向对象”的概念还根本不理解不熟悉,只觉得需要“分模块”,但不知道怎么分,分多少模块,怎么根据需要的模块的功能建立类.学习的进度又太慢,根本跟不上出 ...

  3. OO第一次博客作业总结反思

    使用了masteruml插件来生成类图和metrics插件分析代码 第一次作业 1.UML类图 >在第一次作业中,使用了两个类,代码中有没有使用的变量与函数,为平衡两个类的内容,我将输出函数放在 ...

  4. OO第一次博客作业(第一单元总结)

    Q:菜是绿的,鸡是黄的,那菜鸡是什么颜色的? A:红的,强测全WA了,能不红么. 菜不菜的问题先不说了,认真研究一下这次的题目,以及WA的原因吧. 程序结构简析 三次实验的核心结构都是差不多 第一次的 ...

  5. [BUAA OO]第一次博客作业

    第一次作业 第一次进行面向对象的编程,不论是针对数据设计类还是对方法进行合适的归于不同类中,都不是很熟悉.所写出来的程序还是面向过程+有函数的类(虽然现在很大程度上感觉起来也是这样).索性作业难度并不 ...

  6. [BUAA软工]第一次博客作业---阅读《构建之法》

    [BUAA软工]第一次博客作业 项目 内容 这个作业属于哪个课程 北航软工 这个作业的要求在哪里 第1次个人作业 我在这个课程的目标是 学习如何以团队的形式开发软件,提升个人软件开发能力 这个作业在哪 ...

  7. Java第一次博客作业

    第一次博客作业 目录 三次作业题目详情 作业中的错误分析 感想与心得 题目详情 题目1:第一次作业: 类图: 题目2 类图: 题目3 类图: 题目4 题目5 题目6 类图: 题目7 类图: 题目8 第 ...

  8. OO第一次博客总结

    虽然早在开学之前就已耳闻过OO这门课的威力,也在寒假自学了一些java的语法,但在真正面对OO这样的工程训练时才发现寒假所学的那点语法简直不值一提,也深刻的感受到在这个过程中自己的提升确实很快,毕竟d ...

  9. 第一次博客作业 <西北师范大学| 周安伟>

     1.助教博客链接:https://home.cnblogs.com/u/zaw-315/ 2.本周点评的作业数:3份,有留言互动. 3.本周点评有困难的地方: https://www.cnblogs ...

随机推荐

  1. 不同组的id列表的汇总对比

    需求: 三个不同的dfs中存在不同的多个节点id,现在需要求出不同的dfs之间的节点对应关系,比如,哪些节点在某一个dfs,但是不在另一个dfs中 思路: 一. 如果是单纯计算dfs中节点数量,则可以 ...

  2. java第二章总结与感想

    本章主要介绍Java程序设计环境,下面一节一节的记录: 2.1 安装java工具箱(JDK): 2.1.1, 下载JDK: 这一节主要介绍了以下知识点: (1)jdk的下载地址: (2)一些java术 ...

  3. hnsdfz -- 6.20 -- day5

    今天子贞的题...... 比前两天充实多了……肝了一个线段树,还玩了一个题答…… 虽然线段树不知道为什么50->25,题答题数据太水全场90+... 感觉也没想出来啥思路,无脑肝线段树,无脑玩题 ...

  4. javaEE十三种核心技术

    郭晨 软件151 1531610114 java的大方向就是JavaEE,JavaEE不仅仅是socket编程,具体包括13中核心技术. JAVAEE的核心API与组件 JAVAEE平台由一整套服务( ...

  5. PythonStudy——闭包

    # closure:被包裹的函数,称之为闭包 # 完整的闭包结构:1.将函数进行闭包处理:2.提升函数名的作用域 # 案例:延迟加载 def get_site(url): #url='https:// ...

  6. Tempset 暴风射击

    发售年份 1980 平台 街机 开发商 雅达利(Atari) 类型 射击 https://www.youtube.com/watch?v=AMto2HJJSSA

  7. webpack-dev-server --inline --progress --config build/webpack.dev.conf.js

    vue 项目 npm run dev 运行时报错: npm ERR! xxx@1.0.0 dev: `webpack-dev-server --inline --progress --config b ...

  8. 1、编写一个简单Makefile模板

    一.Makefile简介 一个工程中的源文件不计其数,其按类型.功能.模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译, ...

  9. Qt控制流简析

    前言: Qt库及其绑定python语言的PySide库.PyQt库在圈中已经是TD的标配了,Qt提供了多种快速绘制图形窗口的方式.但正是因为这个原因,导致很多TD局限在设计窗口外观的桎梏中,而忽略了Q ...

  10. ROS多根adsl叠加负载均衡PCC的做法

    命令行: / ip firewall mangle1.保证访问局域网IP的时候不被PCC了.add chain=prerouting dst-address=10.1.1.0/24 action=ac ...