经过这次TOP(Thinking Oriented Programming)的相关学习之后,觉得TOP对我的启发是很大的。
这次作业可以在CoffeeScript和LiveScript中选择,我选择的是前者,我在看了CoffeeScript和LiveScript相关文档后觉得两者是比较相似的,CoffeeScipt比较像Python, Ruby之类的,而LiveScript就比较像Haskell,更加函数式,虽然代码量应该是LiveScript比较少,但我还是选择了CoffeeScript,因为我觉得对于我来说,CoffeeScript写起来应该比较顺手点,也简单一些。用了CoffeeScript写出来的代码感觉简洁易读了很多。使用jQuery可以方便地操作DOM,实现AJAX等,而CoffeeScript与jquery结合起来就更强大了,方便了很多。
在写Gruntfile的时候遇到了不少问题,不过上网查资料基本都能解决。使用了Grunt之后觉得它是一个强大的自动化工具!可以省去很多力气。语言的简化,框架和自动化工具可以让我专注于写代码。
在写这次代码的时候,因为有上一次的经验,题意了解清楚了,于是写得比较顺利,这次就更注重于面向对象的思想。写代码之前先想清除,而不是一边写一边想,那样会更容易出错。写之前先想要完成的功能之间的关系以及不同的情况,例如在各种情况下点击不同地方的效果,然后把这些关系抽象出来变成类,函数,让不同对象负责不同的功能。例如点击按钮要有点击事件,状态切换等功能,于是通过创建一个按钮类,给予按钮自己的属性跟方法,来响应点击等事件。上次作业中没有真正地写出机器人来,就是因为没能深刻理解面向对象方法,这次按照要求写,把相关的功能封装起来,S2-S5中的点击@按钮后的操作是通过机器人对象来进行操作的,感觉这样做思路是会清晰一点的。在命名方面就尽量让函数名或变量名变得更可读,有什么功能的就叫什么名字。这样整个流程下来是比较轻松流畅的,就像堆积木一样,可以一层一层地堆起来,这大概就是面向对象的好处吧。