Skip to content

2010年终总结(技术篇)

Published: at 12:00 AM

进入软件行业将近一年了,技术方面这一年学到了很多,总结一下,o(∩∩)o…哈哈    

     A.项目经历

    今年我是从3月份加入了南京诚迈公司,期间一共参与了四个项目,有三个是围绕webkit展开,另一个关于播放器。

    第一个项目是将webkit移植至基于gtk+的arm平台。从引导器,内核,X,gtk+,一直编译至webkit,过程十分辛苦,也十分快乐,最终我们实现了一个仅有20M左右大小,支持网页浏览的嵌入式系统。

    第二个做的是widget engine的项目。主要是在android完成符合 jil (wac)标准的widget运行平台。我们是通过移植出android本身的webkit内核,形成一个独立的应用,可供第三方调用,并通过JS扩展,来完成device APIs的功能。

    下一个是完成一个android平台上的视频播放器。我们将ffmpeg移植至android平台,并通过调用系统本身功能,来完成音视频的播放,最终形成一个在android可以播放任意格式音视频的播放器。

    最后一个项目是smart手机的定制,我们将widget engine升级至wac标准,表将引擎与手机系统整合,使普通的widget类似本地应用一般运行。

     B. 语言学习

    由于项目的原因,我现在日常使用的是c++与java语音,不过日常也使用些c,bash些一些东西,对其他语言也有所了解。

    c, c++ :这两门语音运用太广泛了,很多开源项目都是基于它们的。使用c可以控制程序的更多方面,多用在系统编程,要熟练掌握c语言至少要清楚计算机原理,操作系统,数据结构与算法。使用c语音的有linux kernel,ffmpeg,gtk+等。c++提供大量面向对象的设施,拥有使用方便的标准卡,更适用快速开发大型项目,当然它比c也隐藏了更多的细节。使用c++的有webkit,Qt等。

    java : 如果你繁琐了c和c++里太多细节控制,如果你想快速完成功能,那么java应该会是个不错的选择。android的framework层便为java所写,快速开发应用。

    perl, python, php: 我只用过perl写过一些代码,功能十分强大的脚本语言,有空可以学习一下。

    bash :系统管理环境/脚本,只用使用linux,天天必须打交道。

    javascript :web开发必备。了解javascriptcore和v8两个js引擎,知道怎么在webkit中进行对象绑定。

    lua : 一个小巧的脚本语言,适合绑定到c。

    C. 集成开发

    没想好给这个部分起什么名字,但很清楚写什么内容。语言只是一个工具,怎么运用这些工具完成需求,形成产品,这里面又有很多内容需要研究。这里我们讨论一下最为常用的一些系统。

    操作系统:管理硬件资源,为上层程序的运行提供环境。从接口方面看,调用硬件接口(调用CPU指令,读写存储器,寄存器,IO口),为程序提供系统调用(linux系统调用详见unistd.h)。主要开发语言为c,c++,部分功能使用汇编。

    GUI:管理鼠标,键盘,显示器等IO设备,提供图像化的用户接口。主要包括对IO设备的管理,图像的绘制,窗口的管理等,一般还包括消息机制,主循环等。linux下常见的有gtk+, Qt, ftk, fltk。

    服务器应用:感觉使用daemon会更好一点,Server端为客户提供服务,主要是请求的处理,这个还须研究。

    桌面应用:主要为使用GUI提供的设施,完成一些桌面上完成的功能,比如说播放器,浏览器,阅读器,编辑器等。

    设计模式,面向对象,分层,DRY,KISS 

    D. 项目管理 

     从年中时我已经开始接手一些项目管理的工作,项目管理绝不比开发来得轻松。

    如何让合适的人在合适的时间去做合适的事情? 还有资源的调配,用户的沟通…

    需求清晰  我们写代码的目的是完成需求,因此对需求的清晰理解是项目成功的第一步。只有完成满足需要的产品,才是有价值的活动。

    人员安排  能者多劳,奖惩制度。

    时间控制  人月神话。

    开始打造属于自己的团队!

    路漫漫其修远兮,吾将上下而求索!2011,一定要给力!


Previous Post
Video Player & Multimedia Framework
Next Post
关于生活的思考