從產(chǎn)品經(jīng)理的角度分析前后端分離的必要性

????近期由于各種事情一直困擾于我浴井,我很頭大。首先聞道有先后霉撵,術(shù)業(yè)有專攻磺浙。我始終認(rèn)為每個人都是有自己的強(qiáng)項,即使起步不是該行業(yè)或者說是該崗位徒坡,當(dāng)你處于該職位一定時期之后撕氧,勢必能成為該崗位的專家。既當(dāng)?shù)之?dāng)媽的真的不適合技術(shù)崗位喇完,應(yīng)該屬管理呵曹。我實在鬧不懂為什么會有讓前后端混在一起的存在。翻遍各大網(wǎng)站查閱資料實在找不到一個可以說服我的理由。如果說有我覺得是對目光短淺這所謂的節(jié)約成本奄喂,經(jīng)此而已铐殃。

? ??閑話少說,步入正題跨新。今天我想說的是從一個產(chǎn)品經(jīng)理的角度來說開發(fā)前后端分離的事情富腊。為什么要從產(chǎn)品經(jīng)理的角度來說,設(shè)計一個功能的時候大致流程是這樣的:

產(chǎn)品提出需求---設(shè)計介入設(shè)計出圖---然后召集各端開發(fā)人員串講需求---各端開發(fā)討論并約定接口域帐、數(shù)據(jù)赘被、參數(shù)---各端開始開發(fā)---前后端集成---測試介入第一輪測試---產(chǎn)品驗收--設(shè)計驗收--測試最終測試--交付

????從流程可以看出,產(chǎn)品在整個過程中從最初需求設(shè)計肖揣、跟蹤開發(fā)和測試民假、驗收產(chǎn)品等各個環(huán)節(jié)起著決定性的地位,也就是說龙优,產(chǎn)品的功能和邏輯取決于產(chǎn)品經(jīng)理對該產(chǎn)品的設(shè)計羊异。如果前后端不分離,人員溝通起來費時費力不說很難達(dá)到最初產(chǎn)品設(shè)計的預(yù)期彤断。前后端分離并非僅僅只是一種開發(fā)模式野舶,而是一種架構(gòu)模式(前后端分離架構(gòu))。并不是在擼代碼的時候把前端和后端分開就是前后端分離了宰衙,需要區(qū)分前后端項目平道。前端項目與后端項目是兩個項目,放在兩個不同的服務(wù)器供炼,需要獨立部署一屋,兩個不同的工程,兩個不同的代碼庫袋哼,不同的開發(fā)人員冀墨。好一點效果后端人員跟著產(chǎn)品經(jīng)理和UI各種調(diào)整布局,但是絕大部分先嬉,我可以說99%的不分離都是利用各種框架而成。導(dǎo)致的結(jié)果就是按照設(shè)計稿楚堤,按照需求做不出來疫蔓,對做不出來。即使做得出來身冬,這位開發(fā)同仁絕逼會讓你逼瘋衅胀。

????后期想跟新和維護(hù)就更難了,這種情況大多數(shù)出現(xiàn)在后臺開發(fā)中酥筝,比如CRM滚躯、CMS中。因為做不出來,實現(xiàn)不了的結(jié)果就是產(chǎn)品跟著開發(fā)轉(zhuǎn)掸掏,想辦法去實現(xiàn)茁影。而是用這則處于崩潰邊緣。應(yīng)為這些系統(tǒng)對應(yīng)的工作大多是枯燥而繁雜的丧凤。一不小心出錯募闲,倒是就是各種撕逼踢皮球。這又是何必呢愿待?

????社科院工業(yè)經(jīng)濟(jì)研究所張金昌教授發(fā)表的一篇文章《管理智能化:理論創(chuàng)新與技術(shù)創(chuàng)新》浩螺,當(dāng)我看到這篇文章的時候讓我更加感到當(dāng)前大多數(shù)企業(yè)嘴上說提高效率,而實際讓后臺管理處于開發(fā)容易使用難的地步仍侥。智能化管理都已經(jīng)提上日程要出,企業(yè)中還是為難了后臺管理者。這不是提效是湊合农渊、是嘴上節(jié)約成本而實際在提高成本患蹂。

????前后端分離有哪些優(yōu)勢呢?我摘錄了一些腿时,我覺著挺全面的

1况脆、可以實現(xiàn)真正的前后端解耦,前端服務(wù)器使用nginx批糟。前端/WEB服務(wù)器放的是css格了,js,圖片等等一系列靜態(tài)資源(甚至你還可以css徽鼎,js盛末,圖片等資源放到特定的文件服務(wù)器,例如阿里云的oss否淤,并使用cdn加速)悄但,前端服務(wù)器負(fù)責(zé)控制頁面引用&跳轉(zhuǎn)&路由,前端頁面異步調(diào)用后端的接口石抡,后端/應(yīng)用服務(wù)器使用tomcat(把tomcat想象成一個數(shù)據(jù)提供者)檐嚣,加快整體響應(yīng)速度。(這里需要使用一些前端工程化的框架比如nodejs啰扛,react嚎京,router,react隐解,redux鞍帝,webpack)

2、發(fā)現(xiàn)bug煞茫,可以快速定位是誰的問題帕涌,不會出現(xiàn)互相踢皮球的現(xiàn)象摄凡。頁面邏輯,跳轉(zhuǎn)錯誤蚓曼,瀏覽器兼容性問題亲澡,腳本錯誤,頁面樣式等問題辟躏,全部由前端工程師來負(fù)責(zé)谷扣。接口數(shù)據(jù)出錯,數(shù)據(jù)沒有提交成功捎琐,應(yīng)答超時等問題会涎,全部由后端工程師來解決。雙方互不干擾瑞凑,前端與后端是相親相愛的一家人

3末秃、在大并發(fā)情況下,我可以同時水平擴(kuò)展前后端服務(wù)器籽御,比如淘寶的一個首頁就需要2000+臺前端服務(wù)器做集群來抗住日均多少億+的日均pv练慕。(去參加阿里的技術(shù)峰會,聽他們說他們的web容器都是自己寫的技掏,就算他單實例抗10萬http并發(fā)铃将,2000臺是2億http并發(fā),并且他們還可以根據(jù)預(yù)知洪峰來無限拓展哑梳,很恐怖劲阎,就一個首頁。鸠真。悯仙。)

4、減少后端服務(wù)器的并發(fā)/負(fù)載壓力吠卷。除了接口以外的其他所有http請求全部轉(zhuǎn)移到前端nginx上锡垄,接口的請求調(diào)用tomcat,參考nginx反向代理tomcat祭隔。且除了第一次頁面請求外货岭,瀏覽器會大量調(diào)用本地緩存。

5疾渴、即使后端服務(wù)暫時超時或者宕機(jī)了千贯,前端頁面也會正常訪問,只不過數(shù)據(jù)刷不出來而已程奠。

6丈牢、也許你也需要有微信相關(guān)的輕應(yīng)用祭钉,那樣你的接口完全可以共用瞄沙,如果也有app相關(guān)的服務(wù),那么只要通過一些代碼重構(gòu),也可以大量復(fù)用接口距境,提升效率申尼。(多端應(yīng)用)

7、頁面顯示的東西再多也不怕垫桂,因為是異步加載师幕。

8、nginx支持頁面熱部署诬滩,不用重啟服務(wù)器霹粥,前端升級更無縫。

9疼鸟、增加代碼的維護(hù)性&易讀性(前后端耦在一起的代碼讀起來相當(dāng)費勁)后控。

10、提升開發(fā)效率空镜,因為可以前后端并行開發(fā)浩淘,而不是像以前的強(qiáng)依賴。

11吴攒、在nginx中部署證書张抄,外網(wǎng)使用https訪問,并且只開放443和80端口洼怔,其他端口一律關(guān)閉(防止黑客端口掃描)署惯,內(nèi)網(wǎng)使用http,性能和安全都有保障茴厉。

12泽台、前端大量的組件代碼得以復(fù)用,組件化矾缓,提升開發(fā)效率怀酷,抽出來!

注意事項

1嗜闻、在開需求會議的時候蜕依,前后端工程師必須全部參加,并且需要制定好接口文檔琉雳,后端工程師要寫好測試用例(2個維度)样眠,不要讓前端工程師充當(dāng)你的專職測試,推薦使用chrome的插件postman或soapui或jmeter翠肘,service層的測試用例拿junit寫檐束。ps:前端也可以玩單元測試嗎?

2束倍、上述的接口并不是java里的interface被丧,說白了調(diào)用接口就是調(diào)用你controler里的方法盟戏。

3、加重了前端團(tuán)隊的工作量甥桂,減輕了后端團(tuán)隊的工作量柿究,提高了性能和可擴(kuò)展性。

4黄选、我們需要一些前端的框架來解決類似于頁面嵌套蝇摸,分頁,頁面跳轉(zhuǎn)控制等功能办陷。(上面提到的那些前端框架)貌夕。

5、如果你的項目很小民镜,或者是一個單純的內(nèi)網(wǎng)項目蜂嗽,那你大可放心,不用任何架構(gòu)而言殃恒,但是如果你的項目是外網(wǎng)項目植旧,呵呵噠。

6离唐、?以前還有人在使用類似于velocity/freemarker等模板框架來生成靜態(tài)頁面病附,仁者見仁智者見智。

7亥鬓、這篇文章主要的目的是說jsp在大型外網(wǎng)java web項目中被淘汰掉完沪,可沒說jsp可以完全不學(xué),對于一些學(xué)生朋友來說嵌戈,jsp/servlet等相關(guān)的java web基礎(chǔ)還是要掌握牢的覆积,不然你以為springmvc這種框架是基于什么來寫的?

8熟呛、如果頁面上有一些權(quán)限等等相關(guān)的校驗宽档,那么這些相關(guān)的數(shù)據(jù)也可以通過ajax從接口里拿。

9庵朝、對于既可以前端做也可以后端做的邏輯吗冤,我建議是放到前端,為什么九府?因為你的邏輯需要計算資源進(jìn)行計算椎瘟,如果放到后端去run邏輯,則會消耗帶寬&內(nèi)存&cpu等等計算資源侄旬,你要記住一點就是服務(wù)端的計算資源是有限的肺蔚,而如果放到前端,使用的是客戶端的計算資源儡羔,這樣你的服務(wù)端負(fù)載就會下降(高并發(fā)場景)宣羊。類似于數(shù)據(jù)校驗這種声旺,前后端都需要做!

10段只、前端需要有機(jī)制應(yīng)對后端請求超時以及后端服務(wù)宕機(jī)的情況,友好的展示給用戶鉴扫。

最后我真的希望從提效的角度出發(fā)赞枕,從一個產(chǎn)品經(jīng)理的角度呼吁,后臺開發(fā)請前后端分離坪创。別湊合

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末炕婶,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子莱预,更是在濱河造成了極大的恐慌柠掂,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件依沮,死亡現(xiàn)場離奇詭異涯贞,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)危喉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門宋渔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人辜限,你說我怎么就攤上這事皇拣。” “怎么了薄嫡?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵氧急,是天一觀的道長。 經(jīng)常有香客問我毫深,道長吩坝,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任哑蔫,我火速辦了婚禮钾恢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鸳址。我一直安慰自己瘩蚪,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布稿黍。 她就那樣靜靜地躺著疹瘦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪巡球。 梳的紋絲不亂的頭發(fā)上言沐,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天邓嘹,我揣著相機(jī)與錄音,去河邊找鬼险胰。 笑死汹押,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的起便。 我是一名探鬼主播棚贾,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼榆综!你這毒婦竟也來了妙痹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤鼻疮,失蹤者是張志新(化名)和其女友劉穎怯伊,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體判沟,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡耿芹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了挪哄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片猩系。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖中燥,靈堂內(nèi)的尸體忽然破棺而出寇甸,到底是詐尸還是另有隱情,我是刑警寧澤疗涉,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布拿霉,位于F島的核電站,受9級特大地震影響咱扣,放射性物質(zhì)發(fā)生泄漏绽淘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一闹伪、第九天 我趴在偏房一處隱蔽的房頂上張望沪铭。 院中可真熱鬧,春花似錦偏瓤、人聲如沸杀怠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赔退。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間硕旗,已是汗流浹背窗骑。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留漆枚,地道東北人创译。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像墙基,于是被迫代替她去往敵國和親软族。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容