我觉得从广义上来讲,“平台”这个词应该是承载事物的环境或实体。比如我们说某某电子商务平台更多的体现在它的环境上,而当我们说观景平台时更多的体现在它是一个物理的实体上。不过无论是环境也好实体也罢,虽然在应用领域上会千差万别,但它们都有一个共同的特性,即平台是一个载体。让人或信息工作的更高效,从本质来看,好像平台更像是一种传统模式的有有益的补充,而非必须要有的。比如以电子商务平台为例,没有电子商务平台人们就不能交易了嘛?好像不是这样。我这样说并不是说平台是可有可无的东西,而是说有了平台会使人家更效、舒适的生活。反过来说,平台是对我们生活模式的有益补充。既然平台是一个承载体,所以理论来说它并不应该限制人们的习惯或方式,比如谁说观景平台就只能看风景,我在它上面吃饭不可以嘛?这当然是没有问题的(虽然这样做有些不合适,但没人会说这是不可以的)。
由上述对广义对平台的共同性特点来反观技术平台,好像在技术领域平台这个词很模糊java、net说自己是平台,还有一些以模型驱动的软件企业也说自己的产品是平台,在国内一些几个开源框架搭建起来带一些业务模型功能的也称自己是平台。对此我们应该简单的梳理一下:在技术领域好像平台是一个相对的概念,以java为例,java平台作为底层支撑着上述其它的平台。
在此我不想评价各个平台类产品的优劣,只是觉得国内的平台做得还不够好,这种不好不只是指技术还包括市场的运作模式、开放程序等方面。下面我说一下我梦想中的平台应该是个什么样子:
1、 平台应该是开源的,既然是平台就应该有一个开放的心态,这样才能使更多的人在平台上去开发相应的产品,才会有更多的用户群。像java语言为什么会远远多于其它语言的使用者,其主要原因就是它开源,开放标准,从而在框架类产品中形成百家争鸣的盛况,并且这种趋势并没减退还在继续——即使Oracle收购了Sun。由此我们可以看出一个开放性的平台,用户群足够多、技术足够公开,那么它的发展方向并不是由一家或几家大公司可以掌控的,平台的开放性将是一种趋势。
2、 平台应该是高效的,平台的最终目的就是提高生产力降低成本。首先从技术角度分析,它要足够的快速,从而降低开发成本;它要足够的简单易用,从而降低学习成本;它要适应已有的开发习惯与管理方式,从而降低风险成本;它要有足够的抽象性与复用性(即使是以平台开发出的产品也是一样),从而降低重复劳动。其次,提高生产力降低成本是一个综合性的问题。平台应该不只是一个开发工具,应该是对应项目全生命期过程建立起自己的思想体系与解决方案,从而在整个项目周期内的每个环节都体现出它作用。例如从项目立项开始应该大体分为签定合同à需求调研à概要设计à详细设计à开发à测试à部署上线
(发布)à需求变更等,好的平台应该是对项目的全过程进行管理,例如现在项目开发存在一个很大的问题就是文档与代码不同步;再如测试用例与测试的覆盖率很低甚至没有测试代码或测试文档;再再如目前大多平台都没有整合打包的部署工具(跨操作系统、跨数据库、跨应用服务器),一键式远程部署;最后需求的变更也是头痛的问题,平台是如何适应不断的需求变化的,大多平台均没有合理的解决方案。因此可以看出,平台是一个综合性的工程,仅解决一、两个点上的问题是不足以从根本上提高生产力降低成本的。
3、 平台的技术是可选择的,我们前面说过平台它只是个载体,至于在这个载体上放些什么,怎么去搭配使用,平台应该为使用者提供各种可选择的权力,甚至是可扩展、可插拔的条件。每个使用者都有自己各自的技术倾向性,这种倾向性有可能是他对某种技术的熟练程度,或者是出去于具体业务所采用技术的适应性。总之平台应该适应这种倾向性,它不应该拘泥于某种技术或某个框架,把这些选择权开放给使用者,使自己成为一个容器或是一个载体这才是平台最应关注的东西。
4、 平台之上的平台,从本质来看平台还是个实体是个工具,是人与机器的交流,而非人与人的交流。我觉得好的平台除了人与机器的交流外,更应该是一个社区一个人与人交流的平台,这样大家可以在这个平台实现资源共享,分享劳动成果。只有形成一个开放的生态社区或生态环境,大多数人都能融入其中,大家可以在这样平台之上的平台上共同工作,从而实现双赢,使每个付出的人都有收益。