首页 > 沉思录 > 2012

2012

2012年2月14日 发表评论 阅读评论

转载时请注明出处和作者联系方式: http://mogoweb.net mogoweb@gmail.com

按照惯例,每年到了年终,都会有一个年终总结。交给公司的年终总结,都有一套模板,写起来也有一定的套路。个人的总结呢,可以随意一点,但是没有上头催,所以一直没有下笔。转眼上班已经两个星期了,还是思考一下2012年该做点什么吧。

去年一年的时间都是做浏览器相关的产品。开始是做一款自主开发引擎的浏览器,其中很多地方借鉴了webkit。想想才几杆枪,就做浏览器引擎,当时的老板决心真够大的。这款浏览器最终做出了,但是只能浏览一些简单的网页。html解析引擎,是按照wml和xhtml的思路做的,先是选择了tinyxml进行html解析。但是现实中网页并没有写得很规范,为了解决这一问题,改用expat进行解析,在其中加入了很多异常处理。但没有超强的容错能力,没有办法从根本上解决问题,最终异常处理越来越多,代码质量也越来越差(补充一点,W3C后来尝试推行xhtml 2.0,但是没有成功,而浏览器的纠错能力越来越强,大家都接受了html的松散语法)。另外排版也是一大问题,我们根据手机的特点,选择了流式布局,对于一般的网页,效果还不错,但碰到网页中有绝对定位就傻眼了。当然最大的软肋是不支持Javascrpit,随着手机性能越来越强,Javascript的重要性越来越高。当时也有想法将Webkit的解析引入,同时加上Javascript支持,终因难度太大,人手不足只得作罢。最后这款浏览器就一直处于半成品状态,主要用途就是用来忽悠客户了。

再后来,离开了这家公司,加入新的公司。新的公司虽然主营业务和浏览器一点关系没有,但设备中需要做浏览器。在新公司里,开始做chromium的定制工作,主要是定制UI,增加遥控器操作的支持等。初次拿到chromium的源码,真是吓坏了,以前看webkit的源码就觉得够恐怖了,而chromium的源码比webkit多得多。不过chromium的代码结构非常好,注释也多。相对于html解析和排版,UI的东东还是简单很多。所以这段时间还是相对轻松很多。不过UI这种东西涉及到用户体验,其实也是相当深奥的一个领域。由于输入设备的限制,最然做了很多工作,最终用户体验还不是很好。进入到测试阶段,在UI上也纠缠了很久,不过最终还是按照设计师的要求改造了很多UI。在这中间,还改造了Android的系统浏览器,没有什么特别之处。也做过一段时间chromium浏览器的clutter移植,后因为有其它的安排,中途停掉了。

总结2011这一年,做了很多事情,但不够专精。不论是浏览器引擎,还是UI,都没有深入。在2012年,希望专注于如下几件事情:

1、掌握一门脚本语言python

在工作中,经常会做一些重复的劳动,总是想着有写一个工具的时间,还不如手工做掉算了。掌握一门脚本语言,编写各种小工具会更快捷一些,就没有借口可找了。

在chromium中,也有大量的python脚本,从系统构建,到自动化测试,用脚本达到出神入化的境界。

2、专注于浏览器的GPU加速

WebKit做得相当好了,V8也一直提速,但自己还没有那个实力去做Javascript提速。只有在GPU加速渲染方面还有潜力可挖,当然也不会那么容易,所以要坚持。

3、掌握chromium架构

chromium真的可以看作软件架构设计的典范,值得学习的东西很多,重点学习chromium的多进程模型,UI框架。

加油,2012。

(BTW,经常会觉得时间不够用,后来在网上看到一张图,明白原来大部分时间用到无意义的上网上了,和大家分享一下,具体出处已经忘记了,见谅)

time_wasted

转载时请注明出处和作者联系方式: 2012 mogoweb@gmail.com

分类: 沉思录 标签:
  1. gameplayer
    2012年2月14日12:44 | #1

    Chromium的多线程模型中的技巧比多进程更有意思。

  2. alex
    2012年2月17日07:52 | #2

    @gameplayer
    chromium就像一个巨大的宝藏,仅凭个人力量,是没办法搬走的,只能各取所需。谢谢你的关注

  1. 本文目前尚无任何 trackbacks 和 pingbacks.