<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          產(chǎn)品經(jīng)理要懂的開發(fā)規(guī)范與接口文檔

          共 3489字,需瀏覽 7分鐘

           ·

          2021-06-21 15:30



          這是Kevin的第 866 
          原創(chuàng),
          持續(xù)日更,做產(chǎn)品經(jīng)理的創(chuàng)業(yè)斜杠青年。






          做產(chǎn)品經(jīng)理久了,你會發(fā)現(xiàn)自己越來越像一個開發(fā)。

          Kevin


          長期埋頭在產(chǎn)品設(shè)計(jì)、需求評審、開發(fā)流程、BUG優(yōu)化的研發(fā)場景里,導(dǎo)致溝通對象要要么是開發(fā)、要么就是拉著開發(fā)和業(yè)務(wù)討論技術(shù)實(shí)現(xiàn);


          可見做任何產(chǎn)品,不管產(chǎn)品如何簡易設(shè)計(jì)化,都繞不過實(shí)際編碼、和新技術(shù)學(xué)習(xí)過程。




          PMTalk的技術(shù)故事




          比如對于PMTalk團(tuán)隊(duì)來說,曾經(jīng)就在苦惱做app這塊自主研發(fā)。主要因?yàn)榘沧亢虸OS雙客戶端,導(dǎo)致了必須要花2個客戶端做開發(fā)人員的技術(shù)招募上。


          一聽說有一個新的技術(shù):flutter,可以直接雙開客戶端。就麻煩投入到這塊新技術(shù)的學(xué)習(xí)過程中了。在當(dāng)前階段Flutter是開發(fā)利器,性能也在可接受范疇。


          對于flutter技術(shù)的報(bào)告,來自阿里巴巴淘系技術(shù)這樣說道


          “在保證客戶端體驗(yàn)的前提下,flutter可以盡可能的提高研發(fā)效率,就意味著更高的生產(chǎn)力。

          某些場景下,產(chǎn)品其實(shí)不需要依附于傳統(tǒng)的 Native 業(yè)務(wù)研發(fā) iOS/Android 雙端需要分別投入,這樣會導(dǎo)致研發(fā)成本高,端差異性大且依賴端側(cè)發(fā)版,尤其是在微信生態(tài)集中運(yùn)營的我們,主要是H5、小程序,產(chǎn)品集中在前端側(cè),flutter一套代碼無差異的同時跑在 iOS 與 Android 兩端;”
          阿里巴巴技術(shù)


          總結(jié)下來:


          優(yōu)點(diǎn):1.開發(fā)效率高、2.調(diào)試效率高、3.目前性能最好的跨平臺解決方案


          缺點(diǎn):1.初始包體積大、2.相同業(yè)務(wù)包體積略大于原生、3.不支持熱更新(iOS端)4、生態(tài)還不健全


          通flutter,實(shí)現(xiàn)了安卓、IOS只需要一個人即可解決。招聘原生客戶端開發(fā)替換為招聘一個前端開發(fā)即可。


          不僅減少了團(tuán)隊(duì)的成本,還為團(tuán)隊(duì)增加了活力。


          這是產(chǎn)品經(jīng)理為什么會變得像研發(fā)的理由之一。同樣的在PMTalk用戶量逐漸上升,我們還做過技術(shù)架構(gòu)的升級。為了提升用戶體驗(yàn)從單體架構(gòu)上升到微服務(wù)。




          1.什么是單體架構(gòu)


          在軟件設(shè)計(jì)的時候經(jīng)常提到和使用經(jīng)典的3層模型,即表現(xiàn)層,業(yè)務(wù)邏輯層,數(shù)據(jù)訪問層。雖然在軟件設(shè)計(jì)中劃分了3層模型,但是對業(yè)務(wù)場景沒有劃分,一個典型的單體架構(gòu)就是將所有的業(yè)務(wù)場景的表現(xiàn)層,業(yè)務(wù)邏輯層,數(shù)據(jù)訪問層放在一個工程中最終經(jīng)過編譯,打包,部署在一臺服務(wù)器上。此時服務(wù)架構(gòu)如圖



          2.微服務(wù)架構(gòu)


          通常跟微服務(wù)相對的是單體應(yīng)用,即將所有功能都打包成在一個獨(dú)立單元的應(yīng)用程序。從單體應(yīng)用到微服務(wù)并不是一蹴而就的,這是一個逐漸演變的過程。



            引用知乎上說明 




          以上都是基于用戶體驗(yàn)、效率、快速驗(yàn)證的背景去提升在技術(shù)上的升級。是不是感覺產(chǎn)品經(jīng)理是不是離開所謂的用戶太遠(yuǎn)了?


          不僅如此,產(chǎn)品經(jīng)理其實(shí)還應(yīng)該了解到規(guī)范的開發(fā)流程和代碼管理規(guī)范。


          我們做產(chǎn)品設(shè)計(jì)本質(zhì)是一群團(tuán)隊(duì)協(xié)同辦公,要想提升團(tuán)隊(duì)辦公效率,就要針對人加強(qiáng)管理、制定人的規(guī)范和流程;通過規(guī)范可以告知開發(fā)人員什么該做、什么不該做,以及打破團(tuán)隊(duì)渾濁不堪的情況



          1.代碼管理


          代碼管理主要分三大角色:系統(tǒng)管理者、項(xiàng)目管理者、部署者、開發(fā)者。系統(tǒng)管理者負(fù)責(zé)創(chuàng)建新項(xiàng)目、權(quán)限分配、用戶增加刪除和代碼庫備份。項(xiàng)目管理者負(fù)責(zé)對具體的某一個項(xiàng)目的權(quán)限分配,代碼管理。部署者負(fù)責(zé)對測試代碼和正式代碼進(jìn)行發(fā)版部署。開發(fā)者負(fù)責(zé)從項(xiàng)目分支代碼進(jìn)行代碼開發(fā)。


          2.安全規(guī)范


          安全規(guī)范是環(huán)境、代碼所使用的開源框架是否有存在XSS攻擊漏洞問題。在小團(tuán)隊(duì)來說,這一點(diǎn)幾乎交給了云服務(wù)器廠商。而中大型企業(yè),數(shù)據(jù)資產(chǎn)、代碼安全則需要依靠嚴(yán)謹(jǐn)?shù)陌踩?guī)范。比如通過建立自由的SVN來管理代碼


          3.版本命名規(guī)范


          版本命名包含:主版本號、次版本號、修正版本號、里程碑版本號。例如:2.2.0.Beta2,該版本號代表主本為2,次版本為2,修正版本無,且為發(fā)布的第二個公測版本。這個可以是產(chǎn)品和開發(fā)主動協(xié)商來定。


          4.開發(fā)流程規(guī)范


          選擇瀑布流還是敏捷方式進(jìn)行開發(fā)。通常都是如下步驟


          需求調(diào)研-產(chǎn)品設(shè)計(jì)-需求評審- UI設(shè)計(jì)-前端開發(fā)-后端開發(fā)-測試-灰度發(fā)布。團(tuán)隊(duì)大的企業(yè)會把產(chǎn)品設(shè)計(jì)分為:產(chǎn)品設(shè)計(jì)、UED設(shè)計(jì)2個環(huán)節(jié);同時還會增加UI評審這個環(huán)節(jié)
          開發(fā)流程


          5.統(tǒng)一編碼規(guī)范


          這里主要是涉及到命名,可以參考下面4個命名方式


            • camelCase命名法(駝峰式命名)
              開頭單詞小寫,后面單詞首字母大寫。在Java的官方標(biāo)準(zhǔn)中,Camel命名法被作為主要命名法。使用的很普遍,很多人習(xí)慣這種命名方法。示例:userName

            • PascalCase命名法(帕斯卡命名)
              與camelCase命名類似,所有單詞首字母大寫。有時會有人稱為大駝峰式命名。使用很普遍,變量名,方法名等。示例:UserName

            • kebab-case(短橫線命名)
              單詞以 ‘-’ 短橫線連接,常見的class命名方法。示例:user-name

            • UnderScoreCase(下劃線命名)
              單詞以 ‘_’ 下劃線連接,常見文件名的命名。示例:user_name

            命名規(guī)范



          6.注釋規(guī)范


          功能函數(shù)、接口、類都要有對應(yīng)的注視規(guī)范,比如版本時間、業(yè)務(wù)描述、針對關(guān)鍵代碼也要增加詳細(xì)描述。


          7.開發(fā)環(huán)境規(guī)范


          主要是要統(tǒng)一開發(fā)語言、統(tǒng)一開發(fā)框架、統(tǒng)一開發(fā)方法、和開發(fā)環(huán)境。這是最基礎(chǔ)的規(guī)范。



          8.代碼管理規(guī)范


          代碼管理要有一個readme.md 


          這個文件:項(xiàng)目調(diào)試/運(yùn)行依賴的環(huán)境有什么,項(xiàng)目第一次從代碼庫拉下來必須要進(jìn)行的配置文件在哪里,項(xiàng)目如何打包/運(yùn)行,項(xiàng)目的輸入輸出都在哪里這部分代碼從何看起如何對這個項(xiàng)目進(jìn)行測試。



          產(chǎn)品經(jīng)理要搞定的接口文檔



          接口文檔是產(chǎn)品經(jīng)理整合第三方能力的入口,每個平臺通過對外接口提供了自家的技術(shù)能力,做產(chǎn)品的時候最基礎(chǔ)的必入微信、微博、抖音這些第三方接入點(diǎn),都需要平臺方提供接口。



          開發(fā)人員在設(shè)計(jì)接口之前,還要了解到產(chǎn)品的技術(shù)架構(gòu),涉及到高內(nèi)聚、低耦合、數(shù)據(jù)壓力等方面外,還需要做下面3個步驟



          • 了解需求:從“客戶端-接口-數(shù)據(jù)庫”的層次上看,接口明顯扮演著承上啟下的角色,一方面要明白接口要什么數(shù)據(jù),另一方面要考慮如何從數(shù)據(jù)庫獲取、組織數(shù)據(jù)。所以如果不了解需求,你就無法正確抽象對象來組織數(shù)據(jù)給客戶端,也無法驗(yàn)證數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)能否滿足需求。

          • 了解數(shù)據(jù)庫結(jié)構(gòu):既然接口要明白如何從數(shù)據(jù)庫獲取、組織數(shù)據(jù),就當(dāng)然要了解數(shù)據(jù)庫結(jié)構(gòu)啦。

          • 了解客戶端原型:了解原型,其實(shí)更多是為了幫助你設(shè)計(jì)接口時需要提供的數(shù)據(jù)和結(jié)構(gòu)。


          接口文檔的出現(xiàn)在項(xiàng)目內(nèi)是因?yàn)楫a(chǎn)品研發(fā)分前后端、算法、大數(shù)據(jù)中心等版塊。版塊與版塊的對接需要由各個部門工程師定義接口,通過文檔的方式固定標(biāo)準(zhǔn)的數(shù)據(jù)傳輸格式、安全策略。


          接口文檔一直要維護(hù)到項(xiàng)目結(jié)束,甚至是在當(dāng)前框架下的版本。接口文檔既然是文檔,就是方便后續(xù)隨時查閱。以及人員維護(hù)和更新


          接口文檔的規(guī)范分為4個部分


          1.方法


          包括新增、修改、刪除、獲取,在代碼用post\put\delete\get4個來表示


          2.URL


          開頭都以/a開頭,如果涉及到用戶登錄信息才能使用的接口需要加/a/u,


          3.請求參數(shù)和返回參數(shù)


          這個是產(chǎn)品經(jīng)理繼續(xù)要關(guān)注的,能夠通過返回參數(shù)判斷要想實(shí)現(xiàn)的產(chǎn)品設(shè)計(jì)方法能不能實(shí)現(xiàn)。比如微信支付中可以給開發(fā)者返回支付成功、支付失敗、以及支付執(zhí)行)



          4.返回參數(shù)的結(jié)構(gòu)



          (1)只返回調(diào)用成功或失敗


          那結(jié)構(gòu)體是:code、message


          (2)返回某些參數(shù)參數(shù)


          結(jié)構(gòu)體分別是:code/message/data、code/message/object


          (3)如果要返回列表


          code/mesage/data,data是object,里面放置page/size/total/totalPage/list 5個參數(shù),其中l(wèi)ist是Arrary類型,list里放object,object里是具體的參數(shù)。



          無論哪種做什么樣的簡易設(shè)計(jì),以上的開發(fā)都是基礎(chǔ)。只有團(tuán)隊(duì)提前設(shè)計(jì)好規(guī)范


          今天的分享就在這。





          今日Bonus:加我好友 pmkevin001,領(lǐng)取「Kevin的原型部件庫」,同時還有運(yùn)營模版帶你了解快速提升產(chǎn)品運(yùn)營進(jìn)階



          ??閱讀原文、或掃碼加入打卡訓(xùn)練營,每天體驗(yàn)1款A(yù)PP


          每天體驗(yàn)1款app知識星球




          有1200名產(chǎn)品經(jīng)理在圈子里。加入后365天,每天體驗(yàn)一款A(yù)PP。提升產(chǎn)品設(shè)計(jì)能力,同時有1500+份體驗(yàn)報(bào)告幫助你找到競品。



          平均1天1塊錢,掃碼購買即可加入


          連續(xù)體驗(yàn)90款應(yīng)用,通過后原路退回






          瀏覽 98
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产午夜黄色视频在线观看 | www.日本黄色视频 | 我要操西西 | 日韩鸡巴在线观看 | 婷婷精品国产亚洲AV老牛 |