曲毅:七乐康高级技术总监,曾在高阳、空中网、乐蜂网等互联网公司担任构架师,高级技术经理,技术总监等职位。近4年专注移动互联网。是国内资深 HTML5专家和研究者,对HTML5技术有非常深刻的认识和理解,有着丰富的实践经验,是HTML5引擎Crow5的创造者。
许多程序员都想成为技术大咖,所以他们开始活跃于各大论坛博客汲取知识,后来他们自己也写博客,再后来看国外的技术博客,翻译国外的文献……其实我们有时候只需要专注于事情本身—写好代码。在Facebook的面试中有一个环节叫做白板编程,一支笔、一块白板、一道题目让编程回到最原始的状态。然而当笔者的朋友拿起笔写下***个[]时就放弃了,他说:“这不舒服,非常难受。”随着代码编辑器的功能越来越强大和完善,高亮、补全成为了常态。在这样的情况下,如果要手写一个引擎就足以让大多数人望而却步了。
Crow5引擎
乐蜂网是国内知名的电商网站,其移动端的Android,Iphone,Ipad和m.lefeng.com都有Crow5的影子。
Crow5引擎由40多个插件和模块组成,其中比较重要的模块有,HTML代码约定模块,交互抽离模块,数据封装模块,数据驱动模块,加密混淆模块,插件管理器,加速器,URL拦截器,动画控制器,缓存控制器,超时监听器,模版控制器,请求发送管理模块,按需加载管理器。处理机制主要有,约定编程机制,数据驱动机制,模版引擎飘移机制,心跳保持机制等数十种处理机制。
技术层面上,以前需要各自独立开发的android和iphone还有webapp需要三种语言,三个团队去开发。采用引擎技术以后只需要按照引擎的方式 编写一个webapp的方式。引擎会自动去适配android和iphone开发人员无需过度去考虑语言的问题,降低了开发的人力投入,而且在维护上,只 需要维护一个版本全平台覆盖同步更新,还可以不用发包。由于引擎是采用约定的设计模式,所以编写代码都不需要太多的手敲,只需要按照约定写配置文件,代码 由引擎自动生成。这样大大的简化了开发。而且也不用考虑编写风格问题。
这样的一个引擎完全诞生在记事本中。
诞生于记事本中的Crow5
随着时间人的记忆和很多东西都会遗忘,有些东西一旦长时间被搁置就会被彻底遗忘,但是形成动作,记忆就会变得牢固。
七乐康高级技术总监Crow5引擎作者曲毅告诉笔者“在他上大学的时候,学校有强制要求在大一大二的时候不准买电脑,也就是在那个时候养成了抄书,背代码的习惯。这不仅让基本功更加扎实,而且在查Bug时敏感度和效率会非常非常高,如果使用工具的话就是等待工具的结果,长期使用记事本完全靠眼睛就能思考。”
虽然曲毅喜欢或者习惯了在记事本上写代码,但是Crow5的初衷却是少写代码。许多程序员可能都会有这样的感受:做了很多页面,虽然每个页面不一样但是东西基本上都差不多,做了许多重复的劳动。
曲毅告诉记者:“我自己觉得写重复的代码特别痛苦,己所不欲勿施于人,这正是我开发Crow5引擎的初衷。”
除此之外让一个做了好多年Java的人去学JS其实会有很多方面不适应,比如说Java是块级作用率,JS是函数级作用率。于是他开始考虑如何让一个后端的人去写JS,这也是Crow5引擎的意义。
灵感源于生活
前面提到,Crow5引擎处理机制主要有,约定编程机制,数据驱动机制,模版引擎飘移机制,心跳保持机制等数十种处理机制。就像里尔克的长诗《杜伊诺哀歌》始写于1912年,只写了两三首,搁笔10年,直到1922年2月,好像一夜间猛醒,随即在一个月内完稿。想实现十几种处理机制也需要等着灵感到来。
曲毅提到:“其实没有那么神奇,其实有很多时候不知道该怎么做,就像刚才提到的心跳保持,就是在看《动物世界》时刚好讲到青蛙冬眠,会在某一个恰当的时间醒来。所以在设计的时候我没有一直请求服务器,在没网的时候就是没网,请求也没用,所以当用户点击发现有网了再唤醒,这样最科学效率***也最省流量。”
就像改变世界的从来不是大公司一样,Crow5引擎最初也就打算自己用着方便,然后在团队内做一个小范围推广。到了现在,随着Crow5引擎在实际工作中得到广泛应用,曲毅也打算将Crow5引擎继续完善。他告诉记者:“其实人天生就懒,其实写程序也一样,以前做个论坛很复杂,现在只需要下一步就可以了,因此我希望Crow5可以成为没有什么学习成本,任何人都可以使用的框架。”
结语
随着代码编辑器的各种功能不断完善,网上出现很多类似《不在TXT内编程的十大理由》的文章。在这里借用诗人北岛的一句话:“我们视为盛世的,也许在别人眼里正是歧路。”