產(chǎn)品經(jīng)理:不得不懂的基礎(chǔ)技術(shù)知識

一入產(chǎn)品深似海迹鹅。身為產(chǎn)品汪卦洽,我想說產(chǎn)品汪和程序猿是兩個物種,一個來自金星斜棚,一個來自火星阀蒂,腦結(jié)構(gòu)、腦回路截然不同弟蚀,關(guān)鍵是他們還健忘蚤霞!

雖說“人人都是產(chǎn)品經(jīng)理”,但也造成產(chǎn)品成為整個行業(yè)“鄙視鏈”的末端义钉。

C開發(fā)看不起做C++開發(fā)昧绣,C++開發(fā)看不起Java開發(fā),Java開發(fā)看不起C#開發(fā)捶闸,C#開發(fā)看不起做前端開發(fā)夜畴。但他們確都有個共同點,就是一致覺得產(chǎn)品是超低智商生物鉴嗤。

溝通不易斩启,但不得不溝通序调!

聽不懂的時候怎么辦醉锅,如果只是干等,那等同挖坑埋自己发绢。和開發(fā)溝通之前一定要做足功課硬耍,否則分分鐘被噴!十幾個開發(fā)一起噴你边酒,那就是群毆经柴。

希望這篇文章能給剛?cè)腴T的產(chǎn)品補點技術(shù)能量,關(guān)愛程序猿墩朦。

曾經(jīng)你以為坯认,產(chǎn)品的日常黑話是:

我不管,反正你要實現(xiàn)!

做這么點東西要那么久嗎牛哺,分分鐘就能搞定吧陋气!

要不你先做一版,先看看效果再說引润,不行再改巩趁。

我的需求很簡單,很簡單的淳附,照著這個做就行了议慰,一模一樣就好!

現(xiàn)實卻是:

好的奴曙,我今晚加班别凹,晚上把原型和RFP郵件發(fā)給你們。

別慌洽糟,我去跟領(lǐng)導(dǎo)申請下增加開發(fā)資源番川!

穩(wěn)住,你們先榮耀一把吧脊框,晚上一起加班呀颁督。

如果你還行走在互聯(lián)網(wǎng)圈子里,基礎(chǔ)技術(shù)知識是產(chǎn)品必須要了解的浇雹。

我日常游走在一群前后端狂魔中沉御,被灌輸很多毒藥,但也只能自行一一消化昭灵,現(xiàn)在一一吐露吠裆。

一、少不了的接口

說到接口烂完,它“無處不在”试疙,當(dāng)打開APP的時候,你會看到一個菊花轉(zhuǎn)啊轉(zhuǎn)啊轉(zhuǎn)呀抠蚣,然后加載出來的那些文字祝旷、圖表、炫酷的動畫就是前端ajax通過接口提交數(shù)據(jù)從后端請求回來的數(shù)據(jù)嘶窄。

一個完整的APP項目一般都是由客戶端(前端)和服務(wù)端(后端)相結(jié)合怀跛。

接口,就是后端將數(shù)據(jù)源或數(shù)據(jù)庫提供給外部應(yīng)用去調(diào)用的一段程序柄冲。

接口可以完成某個任務(wù)吻谋,但是它需要有相應(yīng)的輸入(即入?yún)ⅲT诠ぷ髦邢趾幔俨涣艘x五花八門的接口漓拾。

后端定義好URL阁最,前端按照規(guī)定的格式請求它,它就會把數(shù)據(jù)給你骇两,這就是接口闽撤。

前端負(fù)責(zé)將數(shù)據(jù)展示給用戶并快速響應(yīng)用戶所有的操作(點擊、長按脯颜、左滑哟旗、右滑、下拉刷新等等)栋操,后端則負(fù)責(zé)將數(shù)據(jù)在服務(wù)器上進行一系列處理(增闸餐、刪、改矾芙、查)后返回給前端舍沙。

前端負(fù)責(zé)拿到數(shù)據(jù)并處理數(shù)據(jù)展示出來。

千萬不要覺得前端工作簡單剔宪,不就是寫個html頁面展示數(shù)據(jù)拂铡,但是他們需要考慮各種瀏覽器的兼容性、各種土豪葱绒、土鱉等設(shè)備適配性感帅,響應(yīng)式設(shè)計、VR地淀、AI失球、3D效果層出不窮的新概念新挑戰(zhàn),且行且珍惜帮毁。

接口四要素:

方法 :Post(增)实苞、Delete(刪)、 put(改)烈疚、Get(查)

url: /userinfo

請求參數(shù):字段黔牵、說明、類型爷肝、備注猾浦、是否必填

返回參數(shù):code/message/data

看個示例:

“code”:200,

“msg”:“成功”阶剑,

“time”:“677788888”跃巡,

“data”:{“name”:“張三”危号,“age”:“23”}牧愁,

}

規(guī)范的接口得保證:

要保持好身材,瘦外莲,瘦猪半,瘦兔朦!盡量前端不要處理業(yè)務(wù)邏輯、不進行金額計算磨确、且減少處理請求參數(shù)的校驗沽甥;

要有可拓展性:文章、圖片最好由后端來提供乏奥;

要可靠安全摆舟、性能優(yōu)化、體驗流暢邓了。

在項目進行中恨诱,接口聯(lián)調(diào)尤為關(guān)鍵。

接口聯(lián)調(diào)骗炉,就是[前后端平心靜氣照宝、坐在一起校對數(shù)據(jù)]==[一言不合就開懟、項目一完就吹水句葵。

聯(lián)調(diào)主要是為了解決數(shù)據(jù)格式問題和數(shù)據(jù)參數(shù)問題厕鹃。

這里提一下接口文檔。

接口文檔一般由后端進行編寫乍丈,需要和前端一起協(xié)商補充剂碴,注意要溝通、溝通轻专、溝通汗茄!在項目開發(fā)過程中,前后端工程師會根據(jù)這份文檔為主铭若,要共同維護和更新它洪碳,直到項目結(jié)束。

它可以讓前后端工程師圍繞一個統(tǒng)一的文檔進行溝通交流開發(fā)叼屠,減少溝通成本瞳腌;

項目維護中或者項目人員更迭,方便后期人員查看镜雨、維護嫂侍,減少學(xué)習(xí)成本;

也可一定程度上體現(xiàn)程序猿的表(wen)達(dá)(mang)能力荚坞;

最重要一點挑宠,它可以是后期甩鍋的強有力證據(jù)。

通常颓影,前端開發(fā)人員和后臺開發(fā)人員是不同的人各淀。當(dāng)然,部分種子選手兩者兼顧诡挂,曰全棧工程師(仰望大神)碎浇。不過临谱,前后端的思維模式不一樣,要打造一個全棧工程師奴璃,學(xué)習(xí)成本極高悉默。

一般來說,核心業(yè)務(wù)都會分離開苟穆,畢竟人的精力有限抄课,要保質(zhì)保量保安全,一個人兼顧不過來雳旅。

附上一小段前后端聯(lián)調(diào)接口日常對話:

后臺:接口好了剖膳,你試試。

前端:不行岭辣,500吱晒。

后臺:我看看。

半個小時飄過沦童。

后臺:好了仑濒,修復(fù)了個bug,你再試試偷遗。

前端:不行呀墩瞳,還是500。

過了很久……

后臺:好了氏豌,我重構(gòu)了下代碼喉酌,參數(shù)改了,接口文檔有更新泵喘,你看看泪电。

前端:好的(心里MMP)。

產(chǎn)品:下周一提測哦纪铺。

前端相速、后臺:網(wǎng)易云音樂-涼涼……

二、坑不死你的“寫死”

不是你們說的那個編劇又把男主角寫死的那個意思鲜锚。

回到正題突诬,我們前面說到了接口可以請求到數(shù)據(jù)。

對一個頁面而言芜繁,頁面的數(shù)據(jù)一方面由前端直接寫死旺隙,也就是靜態(tài)數(shù)據(jù)验靡,另一部分需要有后端接口提供卒密,前端需要從后端請求接口拿到數(shù)據(jù)并按照要求展示到頁面上,比如淘寶的商品列表延蟹。

但數(shù)據(jù)有靜態(tài)數(shù)據(jù)和動態(tài)數(shù)據(jù)伏社,有些數(shù)據(jù)可以由前端寫死的抠刺,雷打不動塔淤。這就是靜態(tài)數(shù)據(jù)摘昌。

例如某些APP首頁下方的那些TAB欄速妖,就是寫死的,因為那些TAB基本不會有變化聪黎。

類比你去飯店吃飯罕容,你點了個螺獅粉,老板問你要不要辣稿饰,你腦子一熱就說加辣锦秒,那端上來的肯定是紅通通的一端,基本就這樣了喉镰。如果你覺得辣旅择,那你只能重新點一碗。

優(yōu)點:減少和服務(wù)端進行請求侣姆。

缺點:后期如有擴展生真,要填坑。

三捺宗、高逼格的組件及框架

跟前端小伙交(si)流(bi)多了柱蟀,組件這個詞,除非你聾蚜厉,不然一定會有所耳聞长已。

前端在寫頁面的時候,發(fā)現(xiàn)很多頁面有相似的地方昼牛,相似的地方功能也相同术瓮。比如都是一個表單,一個banner輪播圖贰健,一個下拉框斤斧。So,為了提高代碼復(fù)用性霎烙,減少重復(fù)性的開發(fā)撬讽,就把頁面封裝起來以便下次復(fù)用,這就是一個組件悬垃。

組件可以看作是自定義的CSS+HTML+Java重新組合游昼,它是一種可拼裝的功能集合。

簡單說下HTML+CSS+Java尝蠕,舉個某寶的首頁烘豌,首頁看到的圖片、文字都是一個個的HTML元素看彼,然后頁面的背景顏色廊佩、圖片大小囚聚,按鈕位于整個頁面的什么位置,這就是CSS做的标锄。

至于Java顽铸,簡稱js,可以看成首頁的大腦料皇,主要實現(xiàn)內(nèi)部的邏輯谓松,比如按鈕點擊之后怎么處理,界面之間如何跳轉(zhuǎn)践剂,什么時候刷新信息鬼譬,如何請求數(shù)據(jù)。它需要把后端返回的數(shù)據(jù)添加到頁面中逊脯,或者讓元素運動起來优质,或者是改變頁面的CSS,或者是操作HTML元素军洼。

類比產(chǎn)品Axure作原型圖巩螃,每個頁面都需要有頂部狀態(tài)欄,我們會運用幾個按鈕歉眷、矩形框進行組合牺六,命名為母版。

類比我們以前高考備戰(zhàn)采用大量的習(xí)題戰(zhàn)術(shù)汗捡,我們會有一本錯題集淑际,學(xué)霸們會怎么利用這本錯題集呢?他們會按照考點對錯題集分類扇住。對組件也是一樣春缕,有相似的功能可以歸并為一類。

你寫的代碼越來越多艘蹋,你封裝的組件就越來越多锄贼。慢慢的,你就有個組件庫女阀,包括樣式組件宅荤、UI組件、基礎(chǔ)組件浸策、業(yè)務(wù)組件等等冯键。Perfect,組件還可以進行再組合庸汗,把組件再整合起來惫确,是一種組件間相互關(guān)系的設(shè)計。

類比你手機裝了支付寶APP,它可以用來買理財產(chǎn)品改化、可以用來買保險掩蛤,可以使用第三方服務(wù),但是對一些人而言陈肛,他不需要這些功能揍鸟,他只是把錢放在余額寶里,偶爾迷茫的時候去看一眼燥爷。

框架不是越大越好蜈亩∨尘剑框架只需保留基本的功能前翎,但是它會提供方式給你去擴展,這才是好的框架畅涂。

四港华、天天念叨的DOM

DOM全稱Document Object Model,翻譯就是文檔對象模型午衰。

DOM是一系列功能集合立宜,是處理HTML和XML文檔的編程接口。

DOM允許開發(fā)人員從文檔中增臊岸、刪橙数、查、改頁面數(shù)據(jù)帅戒。直白的講灯帮,它給文檔提供了一種結(jié)構(gòu)化的表示方法,可以改變文檔的內(nèi)容和呈現(xiàn)方式逻住。

DOM技術(shù)使頁面可以動態(tài)地變化钟哥,如可以動態(tài)地顯示或隱藏一個元素,改變它們的屬性瞎访,增加一個元素等腻贰。

可以把DOM認(rèn)為是頁面上數(shù)據(jù)和結(jié)構(gòu)的一個樹形表示。

DOM的功能是把瀏覽器支持的文檔(包括HTML扒秸、 XML播演、 XHTML)都當(dāng)成對象來解析。

請看下面這個HTML文件:

html

head

titleDOM/title

/head

body

h1DOM Lesson one/h1

phello world/p

/body

/html

你可以看出伴奥,最外面一層是html写烤,html嵌套著head和body標(biāo)簽,head嵌套著title標(biāo)簽渔伯,body嵌套著p標(biāo)簽顶霞。

同理,DOM也是一層一層嵌套著,這種層級關(guān)系不是隨便定的选浑,是有一定的規(guī)則蓝厌。

這可類比于我們存放的文件路徑: 我的電腦-CDEFG盤-學(xué)習(xí)資料-日本語音-島國電影。

也可類比于我們博大精深的親人關(guān)系表古徒。

DOM它易用性強拓提,并且遍歷簡單,直接操作DOM無所不能隧膘。

但操作DOM效率低代态,解析速度慢,內(nèi)存占用量過高疹吃,且DOM機制中所運用的大量對象的創(chuàng)建和銷毀影響效率蹦疑。

所以出現(xiàn)了虛擬DOM。這個我就編不下去了萨驶。

五歉摧、Cookie、Session腔呜、Token哪家強

在傳統(tǒng)的web應(yīng)用中叁温,服務(wù)器端通過一種存儲機制保存了會話信息(Session)。

Session可以理解為后臺服務(wù)器的一小片內(nèi)存核畴。

每個會話信息都對應(yīng)一個唯一的編號:Session ID膝但,這個字符串隨機產(chǎn)生,服務(wù)器端會把Session ID放在Cookie里面谤草,Cookie數(shù)據(jù)存放在客戶端跟束。Session的狀態(tài)是存儲在服務(wù)器端,客戶端存的只有Session id咖刃。

Cookie是服務(wù)器給客戶端的憑證泳炉,可以理解為存在客戶端的一個txt文件。

里面包括你登錄信息之類嚎杨,這樣你下次在登錄某個網(wǎng)站花鹅,就會自動調(diào)用Cookie,取到Session id到后端服務(wù)器獲取對應(yīng)的Session具體信息枫浙,進行數(shù)據(jù)的保存和修改刨肃,但Cookie存放在客戶端易被盜用篡改,不是很安全箩帚。

這類比于你去逛超市真友,你存放了私人物品在儲物柜子里,它會給你個取件的紙條紧帕,等你逛完超市后盔然,就可以掃描紙條打開柜子桅打。

在前后端沒有分離的時候,前端頁面往往都屬于后臺管理愈案,這個大部分是同源請求挺尾。

但是在前后端分離后,這個時候一般涉及到跨域站绪,跨域的請求不攜帶Cookie遭铺,要攜帶Cookie又要后臺指定允許的跨域地址,比較麻煩恢准,于是出現(xiàn)了Token魂挂。

Token就是令牌。

Token一般是由uid+時間戳+設(shè)備號+自定義規(guī)則經(jīng)過算法加密后的一串字符串馁筐。字符串通常很長涂召,難偽造。

這類比于服務(wù)器生成了一個單號返回給客戶端眯漩,客戶端帶著單號過來請求請求器芹扭,這時候怎么證明單號是服務(wù)器生成的呢麻顶,可以通過單號來檢查赦抖。

比如你授權(quán)(登錄)一個程序時,它就是個依據(jù)辅肾,判斷你是否已經(jīng)授權(quán)程序队萤;Token的狀態(tài)是存儲在客戶端。

在APP開發(fā)中矫钓,都是使用Token作為驗證后的憑證要尔。

一般采取的措施是客戶端輸入用戶名和密碼,客戶端登錄后新娜,服務(wù)器端會返回一個Token赵辕,之后所有的請求都會帶著Token,客戶端把Token放在請求頭(header)里概龄,在應(yīng)用中一般使用https會增加安全性还惠,拿到Token才能進入頁面內(nèi)。

后端通過檢驗請求頭判斷是否登錄私杜、是否正常請求蚕键、是否安全后再提供服務(wù)。

六衰粹、程序猿又說要重構(gòu)

開發(fā)人員經(jīng)常抱怨 :

“這么爛的代碼锣光,維護不了啦,需要重構(gòu)铝耻!”

“這代碼怎么能這么不優(yōu)雅誊爹?誰來重構(gòu)一下?”

我。频丘。箍铭。。忍不住給你們這些卓越的工程師打Call椎镣。

重構(gòu)是對代碼做任何更動诈火,以增加可讀性或者簡化結(jié)構(gòu),而不影響輸出結(jié)果状答。

輕一點:優(yōu)化原有代碼冷守,改善代碼質(zhì)量,比如三行代碼用一行就解決惊科,降低復(fù)雜度拍摇。

重一點:完全重寫,幾乎不用原來的代碼馆截。

再嚴(yán)重一點說:為了有事干充活!知道它的重要性了吧!

重構(gòu)成功的話蜡娶,從長遠(yuǎn)來看應(yīng)該是利大于弊的混卵,對用戶而言:更快、更流暢窖张、更美觀幕随;對碼農(nóng)而言:易維護,更易讀宿接,一看就是優(yōu)雅的代碼赘淮,特別是人員流動比較大的項目。

作為產(chǎn)品經(jīng)理睦霎,我表示:重構(gòu)有風(fēng)險梢卸,重構(gòu)需謹(jǐn)慎,得做到:

1. 充分的測試8迸8蚋摺!肮塞!

看似簡單襟齿,但是往往都做不到,項目成員對于充分的定義標(biāo)準(zhǔn)都不一樣枕赵,產(chǎn)品經(jīng)理永遠(yuǎn)都覺得沒有測試足夠猜欺,也不可能百分百的覆蓋率。這個時候拷窜,利用自動化測試工具未免不是一個有效途徑开皿。

2. 充分的溝通=Щ啤!8尘!笋妥!

很多需求提出方不理解為什么要重構(gòu),但他們卻要為重構(gòu)買單窄潭,在他們看來往往就像個騙局春宣。

對于新功能的重構(gòu),應(yīng)該融入到正常開發(fā)過程中嫉你,如何讓上帝理解重構(gòu)的價值月帝,反思一下遇到的問題:是由于早起技術(shù)架構(gòu)的缺陷,還是業(yè)務(wù)領(lǐng)域模型變動太大幽污?如何避免今后再次遇到嚷辅,得到上帝的理解和認(rèn)可,這至關(guān)重要距误。

3. 充分的思量tじ恪!W继丁趁俊!

考慮時間成本!人力成本惋鹅!學(xué)習(xí)成本则酝!盡量避免大的重構(gòu),這樣可以減少多方的工作量闰集,也會減少項目延期的風(fēng)險。

對于一些核心功能般卑,進行重構(gòu)之前盡早告知團隊武鲁,并重點闡述下重構(gòu)的周期、目的以及會涉及到的業(yè)務(wù)區(qū)域蝠检,這樣做一方面可以讓項目經(jīng)理合理地安排排期沐鼠。盡量避免上線前進行重構(gòu),因為風(fēng)險無法預(yù)估叹谁。

七饲梭、調(diào)試、打包焰檩、部署

啊憔涉,不是那個你去店里點餐,跟老板說的那個打包析苫!

程序猿做項目的時候兜叨,會在本地搭建一個開發(fā)環(huán)境穿扳,用于調(diào)試自己的代碼。

程序猿說的碼代碼只有程序猿自己才認(rèn)識国旷,計算機根本不認(rèn)識矛物,計算機只認(rèn)識二進制。

打包跪但,就是將自己寫的代碼(Bug)打包成一個文件履羞,即二進制文件(010101這種格式)。

但要區(qū)分下屡久,前端的打包吧雹,實質(zhì)是合并壓縮處理前端資源文件:包含HTML文件、js文件涂身、CSS文件雄卷、圖片、字體蛤售、svg等等丁鹉。

前端的打包工具, 流行的有:Gulp、Grunt悴能、Webpack等工具揣钦。

打包工具可以讓開發(fā)網(wǎng)頁的時候使用import export

require,像后端程序員一樣進行模塊化開發(fā)漠酿,每個模塊異步請求加載冯凹,可以減少請求提高性能,這樣瀏覽器可以通過少量的請求獲取到所需要的前端資源,節(jié)省流量炒嘲,加快頁面加載速度宇姚,關(guān)鍵還起到混淆代碼的作用。

打包是為了運行夫凸,打包完了就代表整裝待發(fā)了浑劳。

項目要上線的時候,程序猿要將自己的代碼部署到生產(chǎn)環(huán)境上夭拌。這需要你準(zhǔn)備就緒:版本號要高于線上版本魔熏、去除一些調(diào)試信息、混淆鸽扁、簽名蒜绽、做對齊等等。

部署桶现,一般指服務(wù)器端程序上線躲雅,但是要給程序提供所需要的資源,讓它好好的運行起來巩那。

就像你養(yǎng)花吏夯,你如何讓它在花盆里面存活此蜈,你得有空氣,有水噪生,有養(yǎng)料裆赵。

同樣,要運行起你的一大坨代碼跺嗽,就要配置好環(huán)境战授,比如使用幾個服務(wù)器、放在什么服務(wù)器上桨嫁、開什么端口植兰、怎么才能扛住大量的請求等等。

八璃吧、負(fù)載均衡有一手

負(fù)載均衡(又稱為負(fù)載分擔(dān))楣导,英文名稱為Load Balance。

官方說法:

將負(fù)載(工作任務(wù))進行平衡畜挨、分?jǐn)偟蕉鄠€操作單元上進行執(zhí)行筒繁,例如Web服務(wù)器、FTP服務(wù)器巴元、企業(yè)關(guān)鍵應(yīng)用服務(wù)器和其它關(guān)鍵任務(wù)服務(wù)器等毡咏,從而共同完成工作任務(wù)。

通俗來講:就是將用戶請求分發(fā)到N臺服務(wù)器逮刨,一臺服務(wù)器需要處理的任務(wù)分給N臺服務(wù)器來處理呕缭,但不能簡單理解為分配給所有服務(wù)器一樣多的任務(wù),因為服務(wù)器的承載能力各不相同修己。N臺服務(wù)器一起處理任務(wù)叫集群恢总。

負(fù)載均衡設(shè)備不是基礎(chǔ)網(wǎng)絡(luò)設(shè)備,而是一種性能優(yōu)化設(shè)備箩退。

負(fù)載均衡的核心就是“分散壓力”离熏,使所有的服務(wù)器都不會超過自己可承受的程度,避免宕(dang)機戴涝。

為什么要有負(fù)載均衡,對于網(wǎng)絡(luò)應(yīng)用而言钻蔑,并不是一開始就需要負(fù)載均衡啥刻,當(dāng)網(wǎng)絡(luò)應(yīng)用的訪問量不斷增長,單個處理單元無法滿足負(fù)載需求時咪笑,網(wǎng)絡(luò)應(yīng)用流量將要出現(xiàn)瓶頸時可帽,負(fù)載均衡才會起到作用。

類比你每逢節(jié)假日逛超市的時候窗怒,就能看到“負(fù)載均衡“的例子映跟,收銀員高峰期只能服務(wù)10位顧客蓄拣,當(dāng)做活動時有20位顧客需要服務(wù)的話可能就會排長隊,這樣購物體驗將會很差(類比客戶抱怨系統(tǒng)/網(wǎng)站訪問太慢)努隙。最簡單的辦法就是再招個營業(yè)員球恤,重新開通一個收銀窗口。

九荸镊、F5不是一個快捷鍵

其實咽斧,一說到負(fù)載均衡,就會聯(lián)想到F5=刷新快捷鍵嗎躬存?就服你张惹!

其實F5是只是負(fù)載均衡產(chǎn)品的一個品牌,其地位類似于諾基亞在手機品牌中的位置岭洲。

F5作為一級路由器宛逗,它是流量總?cè)肟冢喈?dāng)重要盾剩,因為它扛著外界所有的請求壓力雷激。

有人會問?為什么不搞多臺F5彪腔?

F5如此卓越穩(wěn)定侥锦,當(dāng)然貴呀!貴呀德挣!貴呀恭垦!死心了吧。

所以在它這里不會去做運算格嗅,它需要做的就是轉(zhuǎn)發(fā)流量<番挺,轉(zhuǎn)發(fā)給二級路由器nginx,nginx需要解析協(xié)議內(nèi)容屯掖,做更加精細(xì)化路由玄柏。

F5和nginx其實只是負(fù)載工具,只是分工不同而已贴铜,這是他們的價值所在粪摘。

十、負(fù)載均衡實現(xiàn)一二三 1. 重定向

這種方式绍坝,是通過將請求全部發(fā)送到前置機徘意,由前置機通過算法得出要分配給那臺應(yīng)用服務(wù)器,然后響應(yīng)給客戶端轩褐,由客戶端重定向到應(yīng)用服務(wù)器的一種方式椎咧。

類比個例子,一家公司舉辦招聘活動把介,每個人都可能要去往不同的樓層進行投遞簡歷勤讽,所有的面試者都會先集中在一樓前臺處蟋座,然后由前臺MM為大家一一查詢所對應(yīng)的樓層,然后告知每一個面試者對應(yīng)的樓層脚牍,由面試者自行前往自己的樓層投遞簡歷向臀。

你可以看到,每一個的請求莫矗,都要重定向一下飒硅,效率不高。

2. 反向代理

這種方式作谚,是通過在前置機使用反向代理方式三娩,將請求分發(fā)到應(yīng)用服務(wù)器,客戶端無需再請求一次妹懒,實現(xiàn)方式通常有兩種雀监,一種是用交換機實現(xiàn),還有一種是用nginx實現(xiàn)眨唬。

這就相當(dāng)于前臺MM為面試者查詢到對應(yīng)的樓層之后会前,直接將簡歷分發(fā)到對應(yīng)樓層。不需要面試者再自行跑一趟匾竿。樓層收到簡歷后瓦宜,也會響應(yīng)請求。

這種方式岭妖,對比重定向临庇,效率較高,但是由于請求和響應(yīng)都是通過前置機來的昵慌,所以對前置機的考驗很大假夺。

3. 數(shù)據(jù)鏈路返回

這種方式,通過給應(yīng)用服務(wù)器設(shè)置虛擬IP斋攀,然后通過修改mac地址的方式已卷,將請求分發(fā)出去,而應(yīng)用服務(wù)器收到請求后淳蔼,可以直接響應(yīng)給客戶端侧蘸,而不需要經(jīng)過前置機。

這類比于面試者不需要通過前臺MM鹉梨,自己直接將簡歷投遞到對應(yīng)樓層闺魏,樓層收到簡歷后,會想要面試者的請求俯画。

這種方式中,由于前置機只需要接受請求司草,不需要響應(yīng)數(shù)據(jù)艰垂,所以泡仗,效率較第二種較高。

十一猜憎、風(fēng)風(fēng)火火的小程序

上次前端小伙在進行內(nèi)部分享的時候娩怎,我去偷師了一下。

小程序=高逼格一點的H5頁面胰柑。

微信自己定義一套html標(biāo)簽截亦,稱之為wxml,又封裝了一些樣式規(guī)則柬讨,叫wxss崩瓤,其實就等同于html+css+js。

封裝一方面是為了降低開發(fā)成本踩官,根本上是為了收攏控制權(quán)限却桶,開發(fā)者能用的東西越多,微信需要操心的事情也就越少蔗牡。

1.要做小程序開發(fā)颖系,你得裝個開發(fā)工具,微信提供的辩越;

附上開發(fā)地址:

https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html?t=20171227

2.然后嘁扼,你需要去微信公眾平臺開通個小程序賬號;

3.接著你就要去學(xué)js黔攒;

微信小程序用js來作為開發(fā)語言趁啸,用定義的wxml來描述界面,用wxss來表達(dá)樣式亏钩,這些也是最基本的幾個要素莲绰。開發(fā)語言不用說,js非常成熟姑丑,解析js的引擎也有很多蛤签。

十二、寫在最后

作為打不死的產(chǎn)品栅哀,我的座右銘:與天斗 震肮、與地斗、 與程序猿斗留拾, 其樂無窮戳晌。

千萬不要影響他們的開發(fā),程序猿需要一片凈土痴柔。沒有買賣就沒有傷害沦偎。

最后,腦容量有限,歡迎各位補充豪嚎。寫這種文章搔驼,我也很慌,有不對之處請多多指教侈询,謝謝舌涨!

作者:黃麗嫦,微信公眾號:野生派產(chǎn)品錄

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末扔字,一起剝皮案震驚了整個濱河市囊嘉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌革为,老刑警劉巖扭粱,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異篷角,居然都是意外死亡焊刹,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門恳蹲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來虐块,“玉大人,你說我怎么就攤上這事嘉蕾『氐欤” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵错忱,是天一觀的道長儡率。 經(jīng)常有香客問我,道長以清,這世上最難降的妖魔是什么儿普? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮掷倔,結(jié)果婚禮上眉孩,老公的妹妹穿的比我還像新娘。我一直安慰自己勒葱,他們只是感情好浪汪,可當(dāng)我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著凛虽,像睡著了一般死遭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凯旋,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天呀潭,我揣著相機與錄音钉迷,去河邊找鬼。 笑死蜗侈,一個胖子當(dāng)著我的面吹牛篷牌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播踏幻,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼戳杀!你這毒婦竟也來了该面?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤信卡,失蹤者是張志新(化名)和其女友劉穎隔缀,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體傍菇,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡猾瘸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了丢习。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片牵触。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖咐低,靈堂內(nèi)的尸體忽然破棺而出揽思,到底是詐尸還是另有隱情,我是刑警寧澤见擦,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布钉汗,位于F島的核電站,受9級特大地震影響鲤屡,放射性物質(zhì)發(fā)生泄漏损痰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一酒来、第九天 我趴在偏房一處隱蔽的房頂上張望卢未。 院中可真熱鬧,春花似錦役首、人聲如沸尝丐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽爹袁。三九已至,卻和暖如春矮固,著一層夾襖步出監(jiān)牢的瞬間失息,已是汗流浹背譬淳。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留盹兢,地道東北人邻梆。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像绎秒,于是被迫代替她去往敵國和親浦妄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,086評論 2 355

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