2009年也快过去两个月了,关于前一年的内容,写完这一篇也便就此打住。一来平日时间有限,写篇长长的博客实在是件奢侈的事情;二来这一年中所学甚多,但要总结起来不免会涉及到大量工作相关的内容,不方便详述。
书接上回,从网易离职后,打算休整半个月,然后三月底到百度报到。而在这期间,我又干下了一件自不量力的事情。学校的一位老师找我合作一个项目,由于涉及保密条款,详细内容在此不表。题目很有挑战性,而且之前我对相关方向的经验完全是一片空白。这位老师曾经参加过我本科的毕业设计答辩,并且在网易时也曾经做了蛮长一段时间的同事。虽然项目本身也一定的经济回报,但当时完全是因为承蒙对方看得起,心存感激,才接了下来。当时预期半年内完成。
这个项目原本计划采用IE内核完成。然而我对IE实在是没有什么好印象,同时也很不擅长Windows编程。在MSDN中粗略翻阅之后更是大大加深了对IE 的反感——命名混乱的COM接口让人丈二和尚摸不着头脑、各种标记语言DOM API的不统一也让我万分窝火。
最终,经过一番调研,我决定采用Mozilla Gecko及相关技术来替代IE。虽然对于Gecko也同样是完全陌生,对作为Gecko应用层语言的JavaScript更是从未有过接触(虽然这是个Web横行的时代,我却是一点儿正规的Web项目经验也没有,对JS自然也就无比陌生),但Gecko的架构设计却令我相当欣赏。于是本着学些新东西的想法,我就以Gecko为基础,重新调整了设计并在工作之余开始开发。
向老师通报了设计的调整后,他也表示同意:新设计的开发方式更便捷,同时可扩展性也较之前的设计要好。我想当然地觉得半年之期绰绰有余,于是十分放心地趁着难得的假期和丫头一起到南京旅游了一番。
之后,便正式成为中关村村民。刚入职的时候,主要还是做些熟悉周遭环境与流程的D级、C级任务,工作之余还稍显空闲,差不多每天都有些富余精力来做些练手的实验,同时在Mozilla Wiki上扒拉水银泻地般的各种文档。开源项目往往都有这个毛病:文档残缺、版本凌乱。虽然Mozilla Wiki已经比较完整,还是让我抓瞎了很久。
自在了没多久,便逐渐开始接手繁多的A级任务。每天都忙得一头包,到家的时候,基本上都已经是23点后了。这样一来,只有周末的时间才可以利用。若是碰上加班,连周末也歇菜。
同时,经验匮乏的弊端也越来越深刻地暴露出来。无论是项目问题域本身还是相关的技术手段,我都不熟悉。这样一来,将头脑中的设计转变为硬盘上的代码就更是难上加难。加上可利用的时间只有周末,而隔上一周之后,往往又难以跟上上一周的思路。
于是乎,这个项目做得无比地痛苦——半年多的周末统统放弃不说,项目的进展还极其缓慢。每次老师来催问进度,我都极度地语塞。
最后,在接手了工作上的一个长期且艰巨的S级任务后,我实在是撑不住了……好在由于涉及的问题本身具有相当的难度,这个项目也有具有一定的实验性质。如果无法完成,也不会造成特别重大的后果。
硬着头皮给老师打电话说明了情况,忐忑不安地退出了这个项目,更是完全放弃所有了经济报酬。老师向我询问是否认识合适的人选可以接手,我思前想后,向他推荐了Pluskid。然而时值Kid选研究生导师,也没有精力参与。移交了设计及仅有雏形的Demo代码后,这个项目最终还是不了了之了。此时项目已经延期月余。
对于这个项目本身,唯一值得欣慰的是,我好歹也算是给出了一条新的设计思路,打破了之前的一些思维定势,同时证明了其技术可行性。同时,我自己从中也学到了很多极有价值的东西。其中关于Mozilla相关的技术,后来还给同事做过一次技术交流。而其中非技术的收获,更是终身难忘:
万事要有自知之明!