第一次作业:

这是一次让我认识到ddl面前潜力真的可以无限大的作业。

一直以为OO是一门和数据结构一样先用几周的时间讲讲Java然后写写”Hello World”小程序再开始讲正课的我(我也不知道为什么现在特别喜欢写贼长的句子),仅仅看了看Java怎么输入和输出就美滋滋地接到了第一次作业的指导书。一两个小时撸完C代码(还是用状态机写的)心里就开始不停地喊着“我不会写Java”,拖延症晚期的我硬生生地把Java程序拖了三天。当我意识到自己恐怕第一次就要凉的时候,终于开始翻开了假期就买了的Java程序设计开始看语法,看了两个小时渐渐感觉心中的凉意愈发真实,就再也没耐心看下去干脆直接开始码代码。在ddl面前,什么会不会写Java都不再是问题。正则表达式、各种库函数,基本上写几行就得去问问度娘,进度十分缓慢,就这样OO的第一次作业就让我熬了夜,好在最后也总算是蒙混过关。

这次的Java程序可以说是很丑了,就是面向过程,一个主类里面一个主函数下来(连表面面向对象都懒得表面),所以也就没有什么类图了。中间想偷懒开个巨大的数组直接用哈希减少一点排序和查找,后来发现内存直接爆掉了(这里一定要吐槽为什么规定的范围那么大啊喂),规规矩矩用快排写好然后自己测了几个小数据,就提交睡了。

赶出来的程序怎么可能没bug?速成的正则表达式在做压力测试的时候还是歇菜了,直接爆栈就崩掉了一个点,嗯就是下面这个东西…

 String regEx = "([+-]?\\{(\\([+-]?[0-9]{1,6},(-0{1,6}|[+]?[0-9]{1,6})\\),){0,49}\\([+-]?[0-9]{1,6},(-0{1,6}|[+]?[0-9]{1,6})\\)\\})([+-]\\{(\\([+-]?[0-9]{1,6},(-0{1,6}|[+]?[0-9]{1,6})\\),){0,49}\\([+-]?[0-9]{1,6},(-0{1,6}|[+]?[0-9]{1,6})\\)\\}){0,19}";
Pattern pattern = Pattern.compile(regEx);
Matcher matcher = pattern.matcher(std_input);

第二次作业:

在写第二次作业的时候,没了语法的障碍,写起来也得心应手一些。只不过提出的需求增加了许多,因此在码代码之前的设计就尤为重要,设计好了就不会出现像在第三次作业中漏洞百出甚至得重构的麻烦事。

这一次的设计就有了些OO的感觉,各个类也看似合理了一些,大体上没有明显的问题。可就是!因为阅读指导书不仔细,而导致了一个时刻点的时刻的区分出现了问题,结果公测再次有测试点没过。同时,我测试的那位同学的代码也是存在一个因为没有读清指导书(猜测…因为难度并不大)而出现的问题,由此得到的教训就是指导书真的要好好看!要花时间好好读!而这一点,在第三次作业中也尤为重要。


第三次作业:

本以为第三次作业就是在第二次作业的基础上重写调度机制,工作量会小很多。可这一重写,简直要了老命…原本只有100多行的调度器,硬生生扩充为500+。而且由于在着手写代码之前的设计不充分,导致了在debug的时候十分痛苦,硬生生是测了一天才基本测完,但就算如此还是有一个点没有考虑到,虽然公测没有被发现,但互测的时候被挑了出来,在此十分感谢这位老哥,也是第一次体会到了OO的温暖…


心得体会:

1)天无绝人之路。在第三次debug时,深深感觉到自己怕是要被OO劝退了,但还是心有不甘就想着再写写试试,不知不觉就把程序都给测完了。

2)写代码前的设计太重要!!全面的设计会让你的代码事半功倍,而抱着先写写看的态度写完,将重心放在调试上,真的会让人调到怀疑人生。

3)在写代码前,最好用注释写一份伪代码,然后就像填充每一部分内容一样,写一部分测试一下,就可以避免bug堆叠在一起的头疼发生。

4)虽然OO是一门让人头疼的课,但其实真的可以会让代码能力进步(写这么多bug不进步才怪)

5)OO真的可以治疗拖延症…

OO第一阶段总(休)结(养)分(生)析(息)的更多相关文章

  1. OO第一阶段总结

    OO第一阶段总结 一.各次作业程序结构 第一次作业 第一次作业由于初用JAVA,还没有深刻理解面向对象的编程方法,故在编程过程中只用了一个类,一个方法,即完成了相应的程序功能.这必然不是本课程的目的, ...

  2. 面向对象(OO)第一阶段学习总结

    前言:对OO本阶段作业情况说明 本阶段一共完成三次作业,第一次主要是在主方法里面进行编程,也就是和之前C差不多,而随着学习的深入,慢慢了解到面向对象与面向过程的区别.作业的难度也在慢慢增大,后两次都用 ...

  3. OO第一阶段纪实

    $ 0 写在前面 在DDL一次次的推动下,历经三个周期的更迭,一个月的时光匆匆而过.谨撰此博文,以记录这一段见证成长的心路历程. $ 0-0 JAVA“一天速成”没有修习过传说中的“OO先导课”,在学 ...

  4. OO第一阶段作业总结

    对于OO这门课,学长学姐偶尔提起,大家都略有耳闻,但是并没有将其和计组相提并论.因此,在刚开始接触的时候,并不认为其会比计组难到哪里去,然而事实证明,还是不要想当然去判断,以及不提前学好JAVA对于O ...

  5. 【作业1.0】OO第一单元作业总结

    OO第一单元作业已全部完成,为了使这一单元的作业能够收获更多一点,我回忆起我曾经在计算机组成课设中,经常我们会写一些实验报告,经常以此对实验内容反思总结.在我们开始下一单元的作业之前,我在此对OO第一 ...

  6. OO第一单元总结

    OO第一单元作业总结 一.前言 开学四周,不知不觉已经做了三次OO作业.事实上,每一次作业对我来说都是很大的挑战,需要花费大量的时间和精力来学习. 虽然学得很艰苦,但最后还是连滚带爬地完成了.(好惨一 ...

  7. OO第一单元优化博客

    OO第一单元优化博客 第一次作业: 合并同类项+提正系数项+优化系数指数0/1=满分 第二次作业: 初始想法 一开始是想以\(sin(x)​\)和\(cos(x)​\)的指数作为坐标,在图上画出来就可 ...

  8. java 初学者 第一阶段作业编程总结及心得体会

    0.前言 第一阶段java作业分为3次. 第一次作业是简单得一些语法和一些简单得逻辑思维,主要内容有求三角形是什么三角形的,还有就是求坐标点所在范围的,也涉及到了数字和字母的转换,总之相相当于是给ja ...

  9. 《 OO第一作业周期(前四周)总结 》

    作为一名软件工程的大学生,很高兴能够以这样一种方式,实现对博客编写零的突破.专业课老师也介绍了编写博客给我们带来的帮助,听了以后,我感觉到了培养出写博客的习惯,是一件多么有意义的事! 话不多说,让我们 ...

随机推荐

  1. AtCoder Beginner Contest 113 D Number of Amidakuji

    Number of Amidakuji 思路:dp dp[i][j]表示经过(i, j) 这个点的方案数 然后一层一层地转移, 对于某一层, 用二进制枚举这一层的连接情况, 判断连接是否符合题意, 然 ...

  2. Java原子操作类AtomicInteger应用场景

    Java中有那么一些类,是以Atomic开头的.这一系列的类我们称之为原子操作类.以最简单的类AtomicInteger为例.它相当于一个int变量,我们执行Int的 i++ 的时候并不是一个原子操作 ...

  3. appium自动化测试 环境搭建

    最 近接手的项目是移动端自动化测试 ,需要用的appium ,头一回使用, 项目特点:1)数据有时效性,需要在短时间内验证大量数据, 2) 人工去一个一个核对发现不了太多BUG. 环境搭建:参考虫师的 ...

  4. 为 昂达 v891 安装上了 remix OS 了

    起因: 默认的ROM自带一堆垃圾app,最主要的是没有root , 所以卸载不了. 然后试了 Root大师 , 刷机精灵 之类的软件. 我 CTMD , 简直比出厂ROM 还流氓, 不断的强制安装各种 ...

  5. Gartner:影响2019年基础设施和运营的十大趋势

    ​​关注嘉为科技,获取运维新知 基础设施和运营(I&O)正越来越多地涉及现代企业的前所未有的领域.比起数据中心.托管和云等技术元素,I&O领导者们更多地着眼于如何让组织的基础架构和运营 ...

  6. Python实现一条基于POS算法的区块链

    区块链中的共识算法 在比特币公链架构解析中,就曾提到过为了实现去中介化的设计,比特币设计了一套共识协议,并通过此协议来保证系统的稳定性和防攻击性. 并且我们知道,截止目前使用最广泛,也是最被大家接受的 ...

  7. Spring Batch 介绍

    在企业应用的关键环境中,通常有需要很多应用来来处理大量的应用.这商业操作包括了自动化,并且负责的处理程序来对大量数据进行高效的处理,通常这些程序不需要人工进行干预.这些事件包括有基于时间周期产生的操作 ...

  8. python2.7 目录下没有scripts

    1.python2.7 配置环境完成或,python目录下没有scripts目录,先下载setuptools,cmd下载该目录下,输入python setup.py install 2.完成后,pyt ...

  9. 6月5 Smarty自定义函数

    自定义函数:<{方法名称}> 在html页面是可以直接赋值的:(没啥作用只是知道即可) <{$a = "hello"}><div><{$a ...

  10. springboot使用redis的配置application.yml连接池以及存取

    第一步:添加pom文件依赖: <!-- redis --> <dependency> <groupId>redis.clients</groupId> ...