春节期间学习对比ng2和vue,对vue有好感。在一次制作2048手势滑动效果的时候,想起了之前leader要求我,代码要写简洁易读的要求,一次次重构代码,发现了一些奥妙的事情。感觉又一次理解了编程。 究竟什么是编程的本质?一堆字眼在我脑海浮现:结构,算法,数据,经验,举头三尺的神明(编程鬼挡墙的同学) ?
首先,编程是一门工程学科,建国初期就打倒了牛鬼蛇神,因此当你鬼挡墙的时候,应该是工程方面出了问题。但是对代码的敬畏和真诚,可以减少犯错概率。但一昧的去庙里烧香,也不能解决Bug。
那我今天理解的编程的本质又是什么呢?先回忆一下今天编程的过程。
在滑动2048的时候,事件会有很多次,而且密集。人的肉眼对100毫秒以下的密级滑动,是感觉唐突的。即便能感觉到,那体验很差(这个是在测试的时候,感觉到的)。为了优化这个体验,我增加了读写锁和状态变量,进行了控制。实现了基本效果。
这个时候就想,用户要界面交互要“敏锐且不唐突”。显然,读写锁和状态变量,不能提供这块的保障。因此陷入了再次的思考,其实每次的滑动唐突,都是同一个方向的手势事件。于是我有增加了一个最后一次手势方向,用于产生检验手势有效的权值。于是“如丝般顺滑” “流畅且不唐突” 的效果就做出来了。
在今天编程的过程中,有如下体会:
- 交互优化,是对交互探索和建模的过程
- 建模的好坏,会影响:代码的长短、维护的难易、最终的效果
- 编程的过程,是对模型的理解、验证和调整的过程
那我今天所理解的编程本质是什么呢?我今天理解的编程本质是对数据的理解。理解的深刻程度,直接影响到和程序相关的人。