作业9
一.总结
终于做最后一次作业了!!!打算挑战一把,用JavaScript来实现,由于第一次写这个东西,所以差不多写出了个狗屎,勉强实现了部分功能。
1.感受:
我觉得JavaScript真的是好奇怪好奇怪的语言,他的function既是函数又是对象,又是继承链,又是基于原型,想来想去让我头都大了,最后只能是采取函数式编程的方法:全局变量+函数来实现。
2.自我评价:
如果这次作业要按好的程序来评价的话,那我绝对得了个-100分。实现起来那真的是没办法,为了实现功能而不择手段,说实话,我昨天刚写的代码今天就忘了这个变量什么意思。。。应该好好重构一下。
3.整个过程一直在转着几个问题:
第一:函数式与对象式编程区别在哪里,所有函数式编程都可以转换成对象式编程吗?反过来呢?好像都可以的感觉,全局变量是个不错的东西;第二:重构面临的问题,一个函数集合了一堆代码,需要对不同参数执行不同指令,可是这么一集合,这个函数本身的功能就有点混乱了,倒不如扯开成两个功能性更明确的函数,但是这两个函数却又有相似的代码,和Don't Repeat Yourself规则相违背;第三:状态机千万不可拆分,我试着分开读状态机,第一次读状态机的一部分,下一次读状态机的另一部分,事实证明这是在瞎闹;第四:一个函数做好事情,不多做事情,这句话应该是对的,我试了把函数的功能和逻辑杂在一块,结果在外层调用这个函数的时候,自己都弄不清楚函数在做什么,因此把逻辑抽到外层来是个好主意。
4.涉及到软件工程的问题:
我把主要代码写好以后,开始如下计划:
(1)改善代码风格(2)做错误处理(3)优化代码,删除不必要的变量,重构部分函数(4)添加自动运行功能(5)考虑代码的健壮性,对不同浏览器实行不同策略(6)做些花哨的东西,添加效果
事实上,软件开发存在一个很大的问题,你做出来之前不知道他是什么样子,直到你做出来了。我觉得吧,这是个哲学问题。。。
二.效果展示
由于挂到博文上出不了效果,只能在本机上测试。。。
三.效率分析