以互連網思維做好用戶端軟體

來源:互聯網
上載者:User

標籤:pc   用戶端   互連網   愛奇藝   scrum   

加入愛奇藝的時間不長,但我感受到的震撼卻不小。在外企打拚了十幾個春秋,今年終於有機會進入一家國內頂尖的互連網企業,真真切切地有一番不太一樣的體驗。

不過,我今天並不想說在外企工作與國內企業的差別。目前,我負責“愛奇藝PPS影音”PC用戶端軟體的研發。也許有人會有疑問:怎麼還在做PC軟體?大家不都一窩蜂似的轉去做移動開發了嗎?然而,大家要明白的是,雖然PC行業已經風光不再,但PC飽有的體量仍然是巨大的,並且PC自有其不可替代的價值;PC軟體還要繼續做,今天我想說一說的是,怎樣以互連網思維來做好用戶端軟體。

說起互連網,大家自然便會想起網站。(順便提一下,愛奇藝就是以網站起家的;現如今,愛奇藝的服務已經覆蓋包括PC、MAC、手機、平板、電視、機頂盒等各種終端。)想必大家也知道網站與用戶端軟體各有優劣吧,比如:網站可以運行在任何裝置的瀏覽器上,不需要使用者安裝,也不麻煩使用者升級,能在各個終端保持統一的使用者體驗;而相比之下,原生的用戶端軟體運行得更快,並且能夠充分利用本地資源為使用者帶來更加強勁、炫目的功能。(推薦閱讀Jeff Atwood的一篇博文:App會取代網站嗎?)我們的用戶端軟體是用C++寫的,效能自然不必多說。而我們公司的互連網基因,也促使我們把網站的眾多優點融合進了用戶端軟體。

先說說研發流程吧。互連網行業最大的特點就是變化快。我們求新,必須快速迭代,快速試錯。網站採用的是這種開發模式,我們的用戶端軟體開發也可以。我們採用了Scrum敏捷開發流程——兩周一次迭代,每兩周發布一個版本。我們稱之為“小步快跑”——把大功能拆小,分階段實現,追求微創新。比較一下傳統的軟體開發模式:先制定一份詳盡冗長的PRD,然後是動輒1~3個月(甚至半年)的開發週期,再加上一個較長的穩定期來修複足夠多的bug,等到發布產品的時候,市場環境早就不一樣了……互連網環境容不得如此慢的節奏!


上面說到了快速試錯。那麼,怎麼試呢?又怎麼知道我們是對還是錯呢?這就要依賴資料啦!網站有它的先天優勢,可以很方便地收集到這些資料:使用者在網站上停留了多久,點了什麼網頁,在網頁上點了什麼按鈕,使用者使用的是什麼瀏覽器,同時有多少人線上,訪問的峰值出現在什麼時間段,等等。我們在用戶端裡也加入了類似的投遞代碼。我們還有強大的資料統計和分析團隊的支援,讓我們對用戶端軟體效能以及使用者行為了如指掌。我們很容易就能知道用戶端軟體的啟動耗時、崩潰率、使用者在我們用戶端裡看了哪些視頻、播放是不是有卡頓等資訊。在我們嘗試做了一個新功能、但又不確定使用者是否會喜歡的時候,我們也可以通過一個小渠道發布這個版本,然後在後台觀察各種統計資料,以此來協助我們決定是否應該繼續開發這個功能,或者在後續迭代裡需要在哪些方面做改進。

我們每兩周對外發布一個版本。我們也深知,發出去的版本就像潑出去的水,也是我們未來必須背負的包袱。時間一長,用戶端版本片段化,幾千萬使用者手上的版本多達幾十種。我們固然可以通過軟體內建的升級機制把最新版本的用戶端送到使用者手上,但出於種種原因,新版本能夠做到高於90%的覆蓋已經不錯了,而這個數字絕對達不到100%。然而,網站卻能做到。網站添加了新功能之後,一旦部署,頃刻之間就能被全世界的所有使用者使用上。問題是,我們怎麼在用戶端裡獲得像網頁那樣的靈活性呢?我們的做法是,對於效能要求不高並且可能會頻繁調整的部分,用HTML/JavaScript來實現,並在用戶端裡用內嵌瀏覽器開啟這些網頁;而對於效能要求高的部分,堅決採用我們強大的C++皮膚庫來把網頁本地化。一個很好的例子就是愛奇藝影視大全(http://v.iqiyi.com),在與網站保持協同的基礎上,我們讓它在用戶端裡表現出了更為卓越的效能。

在功能實現方面,我們時刻保持著一種意識:盡量不把商務邏輯在用戶端裡寫死。否則的話,一旦商務邏輯有變,我們必須修改用戶端的代碼,然後再做全網升級,一來周期比較長,二來新版本也做不到100%的覆蓋,結果就比較被動了。舉一個VIP會員相關的例子吧。在用戶端,我們有針對當前登入使用者的類型來做不同會員套餐促銷的需求,具體的商務邏輯是:如果當前是普通會員,則跳到白銀套餐的購買頁面(url1);如果當前是白銀會員,則跳黃金套餐頁面(url2);如果當前是黃金會員,則跳鉑金套餐頁面(url3)。一些經驗欠缺的開發人員會把上述邏輯直接實現在用戶端軟體裡,就像中左邊所示的那樣。遺憾的是,一旦VIP會員套餐的促銷邏輯有變,比如,要改成對所有使用者都推銷鉑金套餐,那就慘了!更靈活的實現方式應該像中右邊那樣,用戶端只是調用一個相對固定的url(並帶上必要的參數),而把具體的商務邏輯實現在伺服器端。


當然,上面只是一個很小的例子。為了在用戶端裡獲得足夠的靈活性(不通過發布新版本就能滿足業務需求),我們還給很多功能加上了雲端配置。只要我們發現某些功能的使用者體驗不理想,隨時都可以調整控制參數,甚至將其徹底關閉。我們始終牢記,我們在做的不是一個單純、孤立的用戶端軟體——我們提供的是一種互連網服務。也因為如此,我們的用戶端軟體同時很好地支援了編輯運營(及時發布時事或專題、熱門推薦、快速上線或下線節目等),以及靈活的廣告策略控制。

PC軟體真的沒落了嗎?其實不然!也許我們只是需要順應潮流,改變一下自己的思維方式。我們相信,只要有使用者存在,每個終端都是重要的。因此,即使沒有聚光燈、鮮花或掌聲,我們仍然在堅持不懈地努力做好產品,全心全意為我們的使用者服務!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.