oo 第一次博客作业
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 第一次博客作业的更多相关文章
- OO第一次博客作业
OO第一次博客作业 一.三次作业的bug反省 1.自己发现别人的问题 (1)输入处理的问题,比如第一次作业,主要就是处理输入的字符串,然后有同学的正则表达式有问题,则对于一些错误输入就不能正确判断. ...
- OO第一次博客作业--第一单元总结
OO第一单元总结 面向对象设计与构造的第一单元,对“面向对象”的概念还根本不理解不熟悉,只觉得需要“分模块”,但不知道怎么分,分多少模块,怎么根据需要的模块的功能建立类.学习的进度又太慢,根本跟不上出 ...
- OO第一次博客作业总结反思
使用了masteruml插件来生成类图和metrics插件分析代码 第一次作业 1.UML类图 >在第一次作业中,使用了两个类,代码中有没有使用的变量与函数,为平衡两个类的内容,我将输出函数放在 ...
- OO第一次博客作业(第一单元总结)
Q:菜是绿的,鸡是黄的,那菜鸡是什么颜色的? A:红的,强测全WA了,能不红么. 菜不菜的问题先不说了,认真研究一下这次的题目,以及WA的原因吧. 程序结构简析 三次实验的核心结构都是差不多 第一次的 ...
- [BUAA OO]第一次博客作业
第一次作业 第一次进行面向对象的编程,不论是针对数据设计类还是对方法进行合适的归于不同类中,都不是很熟悉.所写出来的程序还是面向过程+有函数的类(虽然现在很大程度上感觉起来也是这样).索性作业难度并不 ...
- [BUAA软工]第一次博客作业---阅读《构建之法》
[BUAA软工]第一次博客作业 项目 内容 这个作业属于哪个课程 北航软工 这个作业的要求在哪里 第1次个人作业 我在这个课程的目标是 学习如何以团队的形式开发软件,提升个人软件开发能力 这个作业在哪 ...
- Java第一次博客作业
第一次博客作业 目录 三次作业题目详情 作业中的错误分析 感想与心得 题目详情 题目1:第一次作业: 类图: 题目2 类图: 题目3 类图: 题目4 题目5 题目6 类图: 题目7 类图: 题目8 第 ...
- OO第一次博客总结
虽然早在开学之前就已耳闻过OO这门课的威力,也在寒假自学了一些java的语法,但在真正面对OO这样的工程训练时才发现寒假所学的那点语法简直不值一提,也深刻的感受到在这个过程中自己的提升确实很快,毕竟d ...
- 第一次博客作业 <西北师范大学| 周安伟>
1.助教博客链接:https://home.cnblogs.com/u/zaw-315/ 2.本周点评的作业数:3份,有留言互动. 3.本周点评有困难的地方: https://www.cnblogs ...
随机推荐
- Spock - Document -01- introduction & Getting Started
Introduction Peter Niederwieser, The Spock Framework TeamVersion 1.1 Spock is a testing and specific ...
- js的组成部分
ECMAScript js基本语法与标准 DOM Document Object Model文档对象模型 BOM Browser Object Model浏览器对象模型
- Linux 下安装nodejs
linux 版本 uname -a Linux -29deepin-generic # SMP Fri Jul :: UTC x86_64 GNU/Linux Nodejs 版本:node-v10.1 ...
- MySQL数据库 命令行 学习笔记(一)
常用关系型数据库1 MySQL:开源免费的适用于中小型企业的免费数据库2 oracle:甲骨文公司,商业软件,收费,适用于大型电商网站3 db2:IBM公司,银行系统主要采用db24 SqlSever ...
- TCP建立与断开连接、socket通讯模板
在传输层,有一个重点是TCP传输时建立连接的三次"握手"和四次"挥手",因为socket工作于应用层和传输层之间,故而涉及到建立连接和关闭连接的过程,以下笔记可 ...
- 【scarpy】笔记三:实战一
一.前提 我们开始爬虫前,基本按照以下步骤来做: 1.爬虫步骤:新建项目,明确爬虫目标,制作爬虫,存储爬虫内容 二.实战(已豆瓣为例子) 2.1 创建项目 1.打开pycharm -> 点开te ...
- Space Invaders 太空侵略者
发售年份 1978 平台 街机 开发商 Taito 类型 射击 https://www.youtube.com/watch?v=MU4psw3ccUI
- Windbg 内核态调试用户态程序然后下断点正确触发方法(亲自实现发现有效)
先开启真机内核态kernel调试 !process 0 0 svchost.exe 找到进程cid的地址 然后进入 .process /p fffffa8032be2870 然后 .process ...
- IDEA下调试和运行Hadoop程序例子
准备 配置好JDK和Hadoop环境, 在IDEA中建立maven项目,建立后的目录结构为: 修改pom..xml引入相关支持: <?xml version="1.0" en ...
- python列表的基础操作
Operation Result Trans x in s True if an item of s is equal to x, else False x值是否在s列表中 x not in s Fa ...