这是一次让我认识到ddl面前潜力真的能够无限大的做业。正则表达式
一直觉得OO是一门和数据结构同样先用几周的时间讲讲Java而后写写”Hello World”小程序再开始讲正课的我(我也不知道为何如今特别喜欢写贼长的句子),仅仅看了看Java怎么输入和输出就美滋滋地接到了第一次做业的指导书。一两个小时撸完C代码(仍是用状态机写的)内心就开始不停地喊着“我不会写Java”,拖延症晚期的我硬生生地把Java程序拖了三天。当我意识到本身恐怕第一次就要凉的时候,终于开始翻开了假期就买了的Java程序设计开始看语法,看了两个小时渐渐感受心中的凉意愈发真实,就再也没耐心看下去干脆直接开始码代码。在ddl面前,什么会不会写Java都再也不是问题。正则表达式、各类库函数,基本上写几行就得去问问度娘,进度十分缓慢,就这样OO的第一次做业就让我熬了夜,好在最后也总算是蒙混过关。小程序
此次的Java程序能够说是很丑了,就是面向过程,一个主类里面一个主函数下来(连表面面向对象都懒得表面),因此也就没有什么类图了。中间想偷懒开个巨大的数组直接用哈希减小一点排序和查找,后来发现内存直接爆掉了(这里必定要吐槽为何规定的范围那么大啊喂),规规矩矩用快排写好而后本身测了几个小数据,就提交睡了。数组
赶出来的程序怎么可能没bug?速成的正则表达式在作压力测试的时候仍是歇菜了,直接爆栈就崩掉了一个点,嗯就是下面这个东西…数据结构
1 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}"; 2 Pattern pattern = Pattern.compile(regEx); 3 Matcher matcher = pattern.matcher(std_input);
在写第二次做业的时候,没了语法的障碍,写起来也驾轻就熟一些。只不过提出的需求增长了许多,所以在码代码以前的设计就尤其重要,设计好了就不会出现像在第三次做业中漏洞百出甚至得重构的麻烦事。函数
这一次的设计就有了些OO的感受,各个类也看似合理了一些,大致上没有明显的问题。可就是!由于阅读指导书不仔细,而致使了一个时刻点的时刻的区分出现了问题,结果公测再次有测试点没过。同时,我测试的那位同窗的代码也是存在一个由于没有读清指导书(猜想…由于难度并不大)而出现的问题,由此获得的教训就是指导书真的要好好看!要花时间好好读!而这一点,在第三次做业中也尤其重要。测试
本觉得第三次做业就是在第二次做业的基础上重写调度机制,工做量会小不少。可这一重写,简直要了老命…本来只有100多行的调度器,硬生生扩充为500+。并且因为在着手写代码以前的设计不充分,致使了在debug的时候十分痛苦,硬生生是测了一天才基本测完,但就算如此仍是有一个点没有考虑到,虽然公测没有被发现,但互测的时候被挑了出来,在此十分感谢这位老哥,也是第一次体会到了OO的温暖…spa
1)天无绝人之路。在第三次debug时,深深感受到本身怕是要被OO劝退了,但仍是心有不甘就想着再写写试试,不知不觉就把程序都给测完了。debug
2)写代码前的设计过重要!!全面的设计会让你的代码事半功倍,而抱着先写写看的态度写完,将重心放在调试上,真的会让人调到怀疑人生。设计
3)在写代码前,最好用注释写一份伪代码,而后就像填充每一部份内容同样,写一部分测试一下,就能够避免bug堆叠在一块儿的头疼发生。调试
4)虽然OO是一门让人头疼的课,但其实真的能够会让代码能力进步(写这么多bug不进步才怪)
5)OO真的能够治疗拖延症…