我覺得從廣義上來講,“平臺”這個詞應該是承載事物的環境或實體。比如我們說某某電子商務平臺更多的體現在它的環境上,而當我們說觀景平臺時更多的體現在它是一個物理的實體上。不過無論是環境也好實體也罷,雖然在應用領域上會千差萬別,但它們都有一個共同的特性,即平臺是一個載體。讓人或信息工作的更高效,從本質來看,好像平臺更像是一種傳統模式的有有益的補充,而非必須要有的。比如以電子商務平臺為例,沒有電子商務平臺人們就不能交易了嘛?好像不是這樣。我這樣說并不是說平臺是可有可無的東西,而是說有了平臺會使人家更效、舒適的生活。反過來說,平臺是對我們生活模式的有益補充。既然平臺是一個承載體,所以理論來說它并不應該限制人們的習慣或方式,比如誰說觀景平臺就只能看風景,我在它上面吃飯不可以嘛?這當然是沒有問題的(雖然這樣做有些不合適,但沒人會說這是不可以的)。
由上述對廣義對平臺的共同性特點來反觀技術平臺,好像在技術領域平臺這個詞很模糊java、net說自己是平臺,還有一些以模型驅動的軟件企業也說自己的產品是平臺,在國內一些幾個開源框架搭建起來帶一些業務模型功能的也稱自己是平臺。對此我們應該簡單的梳理一下:在技術領域好像平臺是一個相對的概念,以java為例,java平臺作為底層支撐著上述其它的平臺。
在此我不想評價各個平臺類產品的優劣,只是覺得國內的平臺做得還不夠好,這種不好不只是指技術還包括市場的運作模式、開放程序等方面。下面我說一下我夢想中的平臺應該是個什么樣子:
1、 平臺應該是開源的,既然是平臺就應該有一個開放的心態,這樣才能使更多的人在平臺上去開發相應的產品,才會有更多的用戶群。像java語言為什么會遠遠多于其它語言的使用者,其主要原因就是它開源,開放標準,從而在框架類產品中形成百家爭鳴的盛況,并且這種趨勢并沒減退還在繼續——即使Oracle收購了Sun。由此我們可以看出一個開放性的平臺,用戶群足夠多、技術足夠公開,那么它的發展方向并不是由一家或幾家大公司可以掌控的,平臺的開放性將是一種趨勢。
2、 平臺應該是高效的,平臺的最終目的就是提高生產力降低成本。首先從技術角度分析,它要足夠的快速,從而降低開發成本;它要足夠的簡單易用,從而降低學習成本;它要適應已有的開發習慣與管理方式,從而降低風險成本;它要有足夠的抽象性與復用性(即使是以平臺開發出的產品也是一樣),從而降低重復勞動。其次,提高生產力降低成本是一個綜合性的問題。平臺應該不只是一個開發工具,應該是對應項目全生命期過程建立起自己的思想體系與解決方案,從而在整個項目周期內的每個環節都體現出它作用。例如從項目立項開始應該大體分為簽定合同à需求調研à概要設計à詳細設計à開發à測試à部署上線
(發布)à需求變更等,好的平臺應該是對項目的全過程進行管理,例如現在項目開發存在一個很大的問題就是文檔與代碼不同步;再如測試用例與測試的覆蓋率很低甚至沒有測試代碼或測試文檔;再再如目前大多平臺都沒有整合打包的部署工具(跨操作系統、跨數據庫、跨應用服務器),一鍵式遠程部署;最后需求的變更也是頭痛的問題,平臺是如何適應不斷的需求變化的,大多平臺均沒有合理的解決方案。因此可以看出,平臺是一個綜合性的工程,僅解決一、兩個點上的問題是不足以從根本上提高生產力降低成本的。
3、 平臺的技術是可選擇的,我們前面說過平臺它只是個載體,至于在這個載體上放些什么,怎么去搭配使用,平臺應該為使用者提供各種可選擇的權力,甚至是可擴展、可插拔的條件。每個使用者都有自己各自的技術傾向性,這種傾向性有可能是他對某種技術的熟練程度,或者是出去于具體業務所采用技術的適應性。總之平臺應該適應這種傾向性,它不應該拘泥于某種技術或某個框架,把這些選擇權開放給使用者,使自己成為一個容器或是一個載體這才是平臺最應關注的東西。
4、 平臺之上的平臺,從本質來看平臺還是個實體是個工具,是人與機器的交流,而非人與人的交流。我覺得好的平臺除了人與機器的交流外,更應該是一個社區一個人與人交流的平臺,這樣大家可以在這個平臺實現資源共享,分享勞動成果。只有形成一個開放的生態社區或生態環境,大多數人都能融入其中,大家可以在這樣平臺之上的平臺上共同工作,從而實現雙贏,使每個付出的人都有收益。