软件插件化趋势

软件这个名词在诞生以来一直似乎都是运行在特定的操作系统上,所以基本上与所有的平台都有关。这一特点面临的一个突出挑战是:对于不同的系统,程序员往往要开发多个系统下相同功能的但是程序代码完全不一样的程序,这不仅造成开发资源的浪费,也使得程序在不同的系统上并不能很好的获得一致的用户体验。举个例子来说,比如qq,mac版本下的qq和windows下的qq就有很明显的区别。

对于很多公司来说,尤其是中小型公司他们不得不放弃在其他非主流的操作系统上的软件开发而选择一个操作系统作为主流。正因为如此很多公司的开发没有成为一个全方位的成果。值得庆幸的是,这一问题正在逐步改变,不过同样的,也存在很多的问题。似乎最先看到这方面问题的就是macromedia,他们开发出一个类似虚拟机的东西解决了跨平台的问题,不过应用面似乎主要在2d的游戏开发上面,后期的adobe air似乎更好些,但是限制于图形图像专业和html5的出现,似乎已经基本无法撼动历史的潮流。之所以用似乎这个字眼,是因为html5的应用是基于互联 的,就目前的浏览器技术而言,它并不能完全满足开发一个大型软件所需要的全部功能的条件。这是adobe air的一个机会,但首先adobe必须使得air成为一个html5的补充标准或者类似的东西。

应该认识到的是并非只是个别的几家企业认识到这个方面的广泛的前景。如果你使用过chrome或者基于chrome开发的其他的浏览器,甚至是safari,你都会发现庞大的插件类软件正在逐步形成,而这些插件正在逐步的实现一个完整软件所需要解决问题的各种手段。chrome os或许在不久的将来就会成功,不过目前他们需要解决的还是使用浏览器充分的利用计算机资源而不是正在发展起来的云端。

我所描述的以上种种,实际上可以看作是一个平台化的方案,区别于微软的底层的.net方案,这个方案想要实现的不是语言级别的抽象,而是应用级别的抽象。.net是将可以使用的语言在一个.net平台上运行,而这种方案是将应用软件放在一个平台上。这样的好处显而易见,只有一个公司需要维护这个软件的中间层平台,应用软件只需要基于这个平台,从而避免了对多版本的开发。想要满足成为这一平台的条件,需要对这一平台进行深层次的架构思考,大大的提升运行效率和独立性才是插件化的前提。

这些都是软件战争的一部分。就相似性方面来说,所有战争的目的几乎都是获取更大的利益,战争的过程当中不仅要学会组织和利用可以利用的各个方面的优势,还要有充分的战略意识和思考。国内的许多门户思想需要变变了,因为看大门收门票的随时都有可能被解雇。

功夫下在和工作有关的地方,这需要有强烈的责任心和主人翁意识。我们需要深刻理解这句话,“功夫下在和工作有关的地方”不是说,每天把上司交给自己事情做完、没有bug、达到需求就可以了。而是要做得更好,我想提出3点,也给自己树立目标:

1、用最优的方案实现需求。在自己的已有知识结构、能力、经验上用最好的方式实现需求,在此基础上努力搜寻业界相关的解决方案比较优劣,选出最佳的方案,最终实现需求。

2、关心自己已做完工作,关注业界的相关新思想、新技术、新理念,把已完成的工作,用最新最优的方案予以重构,并在适当的时机在产品上得以实现。

3、关注自己所负责工作的未来,把产品当做自己的孩子,努力将他引向最美好的未来。努力将自己所负责的产品打造成为业界的标杆(特别是自己所负责的部分,那是自己影响圈内的事情)。

动手。如果你知道了功夫该下在什么地方,也自然知道了要动手做什么,动手也会成为快乐的事情。

不知道大家有没有这样的经历,当你有极大的渴望想把某件事情做好的时候,你会花很大的精力去研究怎样把事情做好,为此你会学习很多相关的东西,平时你可能花一周时间也学不会的东西,你花一个上午就学会了,还应用到了你要做到事情中,并且事后你会对所学过的东西印象深刻。

这,就是我对“如何提高学习效率”这个问题的回答。

很抱歉,写到这里我还几乎没有正面回答“如何快速成为javascript高手”这个问题,如果你已经有所收获了,我感到很欣慰。如果没有,再谈谈javascript,因为我目前还不算javascript高手,下面这段算画蛇添足也好,算狗尾续貂也罢。

语言层面:编程语言之间是想通的,至少高级语言是想通的(相对于机器语言和汇编语言),javascript是一门特殊的语言,既可面向过程、又可面向对象。有人喜欢它弱类型语言的特性,而将其语言本身的特性发挥得淋漓尽致。有人喜欢大红袍这类纯面向对象语言的严谨,而使用一些功能函数将其包装成完全的面向对象,并采用它实现了一些常见设计模式。所以说,真正要精通javascript这门语言本身,需要对其他语言的一些理解(至少是了解)。鉴于目前javascript从业人员的构成,非计算机专业科班出身的同学可能需要努力补补课。

环境层面:javascript运行的环境目前有浏览器端和服务器端,将来可能有机会到嵌入式设备中。目前大部分应用主要集中在浏览器端,而浏览器厂商为了各自利益等各种历史原因造成的javascript运行环境兼容性问题,也是javascript从业人员较为头疼的问题。

业务层面:很多其他语言有功能完善的底层API、工具包,抱歉,javascript暂时没有(浏览器端、nodejs开始有雏形,希望commonJS规范能够一路走好)。所以各种库、框架对于一些基本业务需求都提供了类似但非相同的实现。一个优秀javascript程序员需要辨别各种框架或库中的业务实现,或编写出自己的业务实现。

综上,要在语言、环境、业务三个方面都精通,确实是需要花费很大的功夫。一个人的精力是有限的,其他语言积累几十年的东西,你想一个人在javascript得到实现是不太可能的。术业有专攻,不是说你是javascript高手,javascript的方方面面你都能做到最好。

故,我认为“如何快速成为javascript高手, 无解。无法快速!

“如何成为javascript高手”,动手,把功夫下在和工作有关的地方上!

运用javascript把工作做得最好,才是javascript高手!

PS:这是本人对自身问题的思考和分析,之所以发到首页来,是希望能给有同样疑惑、同样迷茫的同学带来些思考。分享这篇博文花了4小时的写作时间,如果你有同感,如果你觉得我还算用心,请帮忙右下角推荐一下,这样能给更多的同学带来一点思考和帮助。如果你以为我是javascript高手,只是来学习经验的,却没有半点收获,失望而归,请拍砖。

相关资源:PPT中FLASH插入软件.rar-Flash文档类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2011年10月23日
下一篇 2011年10月23日

相关推荐