余勛杰 Mob移動(dòng)開發(fā)者服務(wù)平臺(tái)/MobSDK項(xiàng)目總監(jiān)超過8年Android開發(fā)經(jīng)驗(yàn),參加過多個(gè) LBS 項(xiàng)目、流媒體項(xiàng)目和社會(huì)化模塊項(xiàng)目,知名App“遇見”公司早期成員,在Android Java層和本地代碼層均有豐富開發(fā)經(jīng)驗(yàn)?,F(xiàn)任Mob移動(dòng)開發(fā)者服務(wù)平臺(tái)技術(shù)副總監(jiān),主導(dǎo)MobSDK Android端的架構(gòu)設(shè)計(jì)及實(shí)現(xiàn)。
高可用架構(gòu):MobSDK全面支持了移動(dòng)APP開發(fā),同時(shí)在不同領(lǐng)域也有不少的競(jìng)品,請(qǐng)問,您這邊最大的優(yōu)勢(shì)是什么?
余勛杰:最大的優(yōu)勢(shì)主要是幾個(gè)方面:
第一,我們更加全面。我們已經(jīng)構(gòu)建了一個(gè)移動(dòng)SDK矩陣,有10多個(gè)產(chǎn)品,包括13個(gè)SDK以及另外一些垂直方案。我們的競(jìng)品一般只有一兩個(gè),一般情況下,應(yīng)用可能會(huì)同時(shí)使用到多個(gè)SDK或者是多個(gè)工具。這個(gè)時(shí)候使用我們的方案,就會(huì)有更加統(tǒng)一的,比如說API、文檔或者是一些應(yīng)用規(guī)范。作為一個(gè)開發(fā)者來說,可以大大縮短他們的時(shí)間。
第二,因?yàn)檫@些都是我們自己出品的,所以比如說我在PPT里面說到的一些公共依賴更少。如果說你同時(shí)使用多個(gè)不同的競(jìng)品的東西,他們都會(huì)自己有一套基礎(chǔ)代碼,這樣會(huì)導(dǎo)致你的包體積會(huì)明顯變大。
另外,和多數(shù)的競(jìng)品不同,我們一直在努力推廣我們的自動(dòng)集成。從2018年開始之后,基本上都是自動(dòng)集成的方案。我們的競(jìng)品最傳統(tǒng)的是下載一個(gè)包,復(fù)制一些庫進(jìn)去,或者是像現(xiàn)在做得比較好的,比如微信,他們還會(huì)使用Maven的集成方式。但是就像我在PPT上說過的,可能之后的問題還是很多,比如需要反復(fù)參閱文檔調(diào)整依賴庫和配置,而我們有自動(dòng)集成就不需要做這件事情了。
第三,技術(shù)支持。這是我們非常有自信,也是做得很好的方面,我們提供了7×24小時(shí)一對(duì)一的人工技術(shù)支持服務(wù),開發(fā)者基本上可以在任何時(shí)候,通過幾乎所有的平臺(tái),比如說QQ、微信、電話甚至是論壇,從我們這里獲取所需的幫助。
高可用架構(gòu):管理眾多的SDK的技術(shù)產(chǎn)品,您這邊有什么秘笈可以和我們分享嗎?
余勛杰:其實(shí)我們也并沒有說在管理方面做得非常突出,歸納起來可能會(huì)有幾點(diǎn)。首先是項(xiàng)目制,我們會(huì)為每一款SDK都確立一個(gè)獨(dú)立的項(xiàng)目組,然后我們這些SDK產(chǎn)品就由這個(gè)項(xiàng)目組來進(jìn)行,比如說設(shè)計(jì)、研發(fā)、迭代這樣的一些工作。
其次,因?yàn)槲覀冞@邊從好幾年前就已經(jīng)預(yù)料到會(huì)有越來越多的項(xiàng)目,所以確立了一套產(chǎn)品的項(xiàng)目規(guī)范。對(duì)項(xiàng)目的立項(xiàng)、設(shè)計(jì)、研發(fā)、測(cè)試和發(fā)布(在一些定制化的產(chǎn)品中,可能是交付)各個(gè)環(huán)節(jié)都做了很詳細(xì)的約束。這樣就可以盡量的規(guī)避比如說在研發(fā)或者是發(fā)布之后會(huì)出現(xiàn)的一些問題。
最后,多維度的產(chǎn)品驅(qū)動(dòng)能力。一方面作為一家技術(shù)導(dǎo)向的公司,我們對(duì)內(nèi)會(huì)提倡工匠精神,鼓勵(lì)我們的產(chǎn)品、研發(fā)部門不停去打磨自己的產(chǎn)品,優(yōu)化以及迭代。另一方面,我們對(duì)外提倡用戶至上的精神,我們會(huì)要求技術(shù)支持和商務(wù)合作的同事,在做好客戶服務(wù)的同事,還要積極收集用戶對(duì)我們產(chǎn)品功能和服務(wù)的反饋意見,通過對(duì)這些反饋信息的梳理,形成我們新的產(chǎn)品方案,然后繼續(xù)來推動(dòng)我們我們產(chǎn)品的迭代。
高可用架構(gòu):使用MobSDK來構(gòu)建一個(gè)自建的電商SDK投入的人力大約會(huì)是多少?
余勛杰:如果說要做一個(gè)電商APP,在我們這邊會(huì)有兩個(gè)方案可以選擇。方案一是我們提供“APP工廠”這樣一個(gè)解決方案,開發(fā)者可以直接在我們官網(wǎng)找到這個(gè)方案的入口,先選擇“電商模板”,然后在我們的網(wǎng)頁上添加一些應(yīng)用的基礎(chǔ)配置,比如說應(yīng)用名稱、開發(fā)者簽名、圖標(biāo)等,就可以生成一個(gè)包括安卓端和iOS端的APP。如果說以這樣的方式產(chǎn)生一個(gè)電商APP,只需要幾分鐘就可以產(chǎn)生一個(gè)可以直接拿來用的電商APP。
不過多數(shù)的用戶還是希望自己的APP和別人長得不一樣,需要一些模板以外的定制化的功能。所以我們也提供了對(duì)應(yīng)的電商SDK,基于這個(gè)SDK,開發(fā)者可以在客戶端實(shí)現(xiàn)商品的展示、購買、支付、物流查詢等等的功能,也包括可以在我們的開發(fā)者后臺(tái)對(duì)商品類型進(jìn)行配置、發(fā)布,還有優(yōu)惠券、物流管理等。如果說基于這個(gè)SDK來做,則可以在一兩天的時(shí)間里,就把電商的功能集成到自己的APP當(dāng)中去。
高可用架構(gòu):針對(duì)現(xiàn)在特別火的短視頻,它會(huì)有SDK嗎?
余勛杰:如果說像快手、抖音這樣的一些直播的平臺(tái),我們?cè)谥辈倓偝鰜淼?016年時(shí),就做了這樣功能的產(chǎn)品,它包含了直播、送禮物、聊天以及相互關(guān)注這樣的功能,不過后來因?yàn)橐恍┱吆褪袌?chǎng)發(fā)展的因素,我們發(fā)現(xiàn)這個(gè)項(xiàng)目的市場(chǎng)需求量并不是很大,所以就沒主推這款產(chǎn)品,不過這個(gè)功能還是有的。
另外是像錄制一些視頻,然后把它發(fā)到一些社交平臺(tái)上的功能,這個(gè)我們?cè)诟绲?015年,那個(gè)時(shí)候游戲錄屏領(lǐng)域很火,我們也做了一款對(duì)應(yīng)的產(chǎn)品ShareREC,這款產(chǎn)品適配了現(xiàn)在市場(chǎng)上主流的游戲引擎,比如說Unity3D、Cocos2d-x等,甚至在安卓端還可以做到直接脫離任何一個(gè)游戲,錄整個(gè)系統(tǒng)。錄制時(shí)可以選擇不同的碼率、分辨率來完成錄制,錄制后也可以對(duì)視頻進(jìn)行編輯。但是因?yàn)橹皫捀Y費(fèi)比較貴,所以這款產(chǎn)品后來也并沒有很好的市場(chǎng),當(dāng)然也有一些成功的案例。但是隨著未來5G時(shí)代的降臨,帶寬的提高和資費(fèi)不斷的下調(diào),這款產(chǎn)品會(huì)更遠(yuǎn)大的前景。
高可用架構(gòu):作為一個(gè)APP的開發(fā)者,如何通過MobSDK來快速搭建自己的應(yīng)用?
余勛杰:MobSDK不是一個(gè)IDE,所以我們并沒有辦法說基于MobSDK來搭建一個(gè)APP,而且一個(gè)APP其實(shí)也不是因?yàn)閹讉€(gè)SDK累在一起就可以變成一個(gè)APP。一般想借MobSDK來做APP這方面的開發(fā)的話,就像剛剛說的還是有兩個(gè)方案。
第一,基于我們的APP工廠,先進(jìn)到官網(wǎng)APP工廠的主頁,然后選擇APP的類型。我們現(xiàn)在提供幾個(gè)模板,比如社交聊天、新聞資訊和電商等等。如果想基于這樣的一些模板來產(chǎn)生APP的話,就像剛剛說的,幾分鐘就可以搞定自己的一個(gè)APP,甚至都不需要開發(fā)能力。第二,因?yàn)檫@個(gè)還是基于模板的,一般應(yīng)用都會(huì)有定制化的需求。如果想基于功能來使用MobSDK的話,我比較建議的是比如說需要社會(huì)化分享以及登錄的話,可以使用ShareSDK。短信驗(yàn)證碼的話,我們也有一個(gè)SMSSDK,這個(gè)可以提供短信驗(yàn)證碼。如果說需要推送,我們有MobPush,它已經(jīng)支持了基本上市面上所有的廠商推送,并且還支持智能標(biāo)簽、短信補(bǔ)償這類競(jìng)品收費(fèi)而我們免費(fèi)的功能。最后我們還有應(yīng)用內(nèi)統(tǒng)計(jì)的產(chǎn)品Mob統(tǒng)計(jì)分析SDK,用于實(shí)現(xiàn)統(tǒng)計(jì)功能。
高可用架構(gòu):MobSDK對(duì)于APP的開發(fā)者來說,是不是可以比喻成云服務(wù)之于后端工程師。
余勛杰:有點(diǎn)類似,我們當(dāng)時(shí)在打造產(chǎn)品矩陣的時(shí)候也是奔著軟件云的目標(biāo)去做的。MobSDK本身有幾個(gè)層次的概念。最底層是我們十幾款的SDK,涵蓋了移動(dòng)開發(fā)大部分的領(lǐng)域,它們的定位就有點(diǎn)像云服務(wù)器,提供了最基本和最重要的一些功能。
在這些SDK之上我們有另外一個(gè)概念,就是“SDK 運(yùn)營賦能”的概念。我們?cè)赟DK當(dāng)中引入了大數(shù)據(jù)和運(yùn)營能力,會(huì)輸出一些垂直方案,比如說剛剛說到的APP工廠,或者是我們的增長變現(xiàn)或者是Mob游戲解決方案類似這樣的一些解決方案,后面還有更多,這些就像是云服務(wù)器加上附加的一些增值服務(wù)。
最后是除了SDK和解決方案這樣的通用服務(wù)之外,我們也在逐步開放一些定制化的商務(wù)合作?,F(xiàn)在很多云服務(wù)也是提供定制化服務(wù)的,我們也提供類似的概念。這種定制化服務(wù)我們基本上是有一對(duì)一的商務(wù)和APP開發(fā)者去談,然后我們會(huì)成立類似虛擬項(xiàng)目組去幫助他們實(shí)現(xiàn)他們要的一些功能。
高可用架構(gòu):在支持開發(fā)者方面,您這邊都做了哪些工作?
余勛杰:主要是三個(gè)方面:
一、產(chǎn)品方面。我們?cè)诓粩鄡?yōu)化和統(tǒng)一我們的API,使之越來越容易使用;不斷地簡(jiǎn)化我們的開發(fā)文檔,力求讓用戶一個(gè)短小的網(wǎng)頁中就能掌握我們產(chǎn)品的核心使用方式;不斷提高產(chǎn)品的自動(dòng)化集成能力,免去用戶在SDK集成時(shí)的各種機(jī)械勞動(dòng)。
二、技術(shù)支持。剛剛說到7×24小時(shí),一對(duì)一,多渠道的人工服務(wù),這也是對(duì)開發(fā)者最好的支持。
三、商務(wù)合作。無論是通用的功能或者是定制化的功能,我們的商務(wù)同事都會(huì)直接和開發(fā)者進(jìn)行溝通,在必要的時(shí)候也會(huì)把我們無論是技術(shù)支持還是研發(fā)的同事拉進(jìn)討論組去幫他們解決他們可能需要的一些功能和需求。
高可用架構(gòu):通過您這邊在GIAC的分享,也是想了解一下關(guān)于您這邊工程師團(tuán)隊(duì)文化這一塊您是怎么理解的?
余勛杰:最近這一段時(shí)間我們也在構(gòu)建自己部門的文化。我們的文化是分兩個(gè)層次,一個(gè)是適用于所有員工的通用文化素質(zhì)、一個(gè)是區(qū)別于不同職能的專業(yè)技能。在通用文化素質(zhì)上,我們強(qiáng)調(diào):同心協(xié)力、迎難而上、開拓創(chuàng)新和互補(bǔ)當(dāng)擔(dān)。而在專業(yè)技能上,比如在研發(fā)崗位上,我們確立了:時(shí)間控制、產(chǎn)出質(zhì)量、專業(yè)能力和項(xiàng)目規(guī)范4個(gè)方面的指標(biāo)。這些文化和指標(biāo)會(huì)引導(dǎo)我們的員工朝著我們期望的阿爾法狼精神發(fā)展。
在研發(fā)崗的日常管理上,我們?yōu)榇蠖鄶?shù)的崗位分配A/B兩個(gè)角色,一方面是相互學(xué)習(xí),另一方面也是相互監(jiān)督。以這種方式進(jìn)行管理,可以在很大程度上提高代碼質(zhì)量,降低重大bug的幾率。另外,我們也鼓勵(lì)主動(dòng)學(xué)習(xí)。所以每一個(gè)季度都會(huì)為每個(gè)研發(fā)人員設(shè)定一個(gè)為期一周左右的研究課題。員工完成課題后,需要撰寫研究報(bào)告,并在團(tuán)隊(duì)內(nèi)部對(duì)報(bào)告進(jìn)行演講。不僅提高了研發(fā)人員的專業(yè)技能,也提高了他們的演講能力。
至于績(jī)效考核,由于我們采用了職能線和項(xiàng)目組相結(jié)合的管理方式,所以每個(gè)人的考核也會(huì)有兩個(gè)不同的指標(biāo)。在職能線上,團(tuán)隊(duì)主管會(huì)考核下屬的專業(yè)技能和規(guī)范落實(shí)情況;在項(xiàng)目組內(nèi),項(xiàng)目經(jīng)理會(huì)考核組員對(duì)的業(yè)務(wù)完成情況和貢獻(xiàn)程度。
轉(zhuǎn)載本文請(qǐng)注明出處,技術(shù)原創(chuàng)及架構(gòu)實(shí)踐文章,歡迎通過公眾號(hào)菜單「聯(lián)系我們」進(jìn)行投稿。
高可用架構(gòu)
改變互聯(lián)網(wǎng)的構(gòu)建方式
長按二維碼 關(guān)注「高可用架構(gòu)」公眾號(hào)
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。