摘要:代碼開(kāi)發(fā)記得曾經(jīng)聽(tīng)開(kāi)發(fā)平臺(tái)的同學(xué)驕傲的講,中只有百度有全公司級(jí)別的統(tǒng)一代碼倉(cāng)庫(kù),并且使用管理代碼,不明覺(jué)厲,我也很驕傲。
前言
從前,一個(gè)類B/S架構(gòu)的應(yīng)用里,F(xiàn)Eer,或者叫切圖仔,切圖+表單驗(yàn)證就是工作的全部。無(wú)奈我所做的全部,只是整個(gè)應(yīng)用的冰山一角...責(zé)任小了,邊緣感就強(qiáng)了,owner意識(shí)自然差,視野自然受限。
感謝V8引擎的極速體驗(yàn)&chrome瀏覽器的緊隨規(guī)范,js執(zhí)行速度快的飛起,w3c規(guī)范愈加豐滿,F(xiàn)Eer終于可以翻身農(nóng)奴把歌唱了。推倒了切圖仔的定位并不斷擴(kuò)展js的責(zé)任田。
其實(shí)前端可以有模塊化
其實(shí)前端可以滿足除老本行表單驗(yàn)證外更多的業(yè)務(wù)邏輯
其實(shí)前端可以有路由層
其實(shí)前端可以有數(shù)據(jù)層
...
看吧,這種趨勢(shì)已經(jīng)勢(shì)不可擋,js從單文件腳本開(kāi)始有模塊化概念,有前端主義特色的MVC,有更高大上、業(yè)務(wù)層實(shí)現(xiàn)更easy的MVVM,react,vue,angular.js (姑且叫美中三強(qiáng)?)越來(lái)越多的WEB應(yīng)用開(kāi)始變?yōu)镾PA。
什么?你在質(zhì)疑JS,你說(shuō)SEO?我們FEer來(lái)加一個(gè)服務(wù)端渲染,順帶白屏?xí)r間長(zhǎng)問(wèn)題一同解決送你,還吹毛求疵?請(qǐng)UEmm做一張精美的loading圖附加給你,無(wú)話可說(shuō)了吧~
野心越來(lái)越強(qiáng),client已經(jīng)無(wú)法滿足FEer,感謝酷酷的高性能服務(wù)器專家Ryan Dahl和他的node.js,不僅貢獻(xiàn)了一個(gè)基于事件的高性能的WEB服務(wù)器,還帶來(lái)了javascript的大繁榮。FEer終于可以有機(jī)會(huì)低成本觸及server端開(kāi)發(fā)了,因?yàn)檫b遠(yuǎn)的對(duì)岸將不止有json"炮彈",還會(huì)有我們熟悉的js大兄弟,你懂得這意味著什么,海峽兩岸是一家!未來(lái)的溝通,一切將變得更加簡(jiǎn)單方便稱心如意,未來(lái)對(duì)岸的大兄弟(可能就是你自己)將給你更舒心更懂你的json"禮包"。事件驅(qū)動(dòng),異步I/O,順帶手FEer就可以自信高效的將VIEW渲染、路由分發(fā)等之前可望不可及的工作包攬實(shí)現(xiàn)。
也就是這樣,F(xiàn)Eer腿也不疼了,腰也不困了,一口氣完成前后端開(kāi)發(fā),不費(fèi)勁。好像title都可以變了,把自己稱為全棧工程師,責(zé)任大了,owner意識(shí)強(qiáng)了,曾經(jīng)的后端RD被我們親切的成為服務(wù)端RD,F(xiàn)Eer可以豪爽的說(shuō):『提供給我服務(wù)就好,頁(yè)面渲染、路由分發(fā)這些小事兒,小的做就行了,您去專心開(kāi)發(fā)更復(fù)雜的服務(wù)端接口吧』。不過(guò)就算這樣,我們還是很開(kāi)心,因?yàn)槲覀兪荈Eer,我們也是Full Stack developer,沒(méi)錯(cuò),我們是更懂前端的后端!
新職責(zé) 工作流我們已經(jīng)不是游擊隊(duì)了,我們有自己的作戰(zhàn)部隊(duì),需要自己獨(dú)立指揮。雖然FEer在飽受折磨,強(qiáng)烈抗議,爭(zhēng)得前后端分離開(kāi)發(fā)的榮譽(yù)后,已經(jīng)在工作流上有質(zhì)的優(yōu)化了(主要體現(xiàn)在有了寫(xiě)build.sh,養(yǎng)成了編譯的好習(xí)慣)。現(xiàn)在作為全棧,還需要重新梳理下工作流。在社區(qū)有社區(qū)的方案,在百度,我們這樣做。icafe + icode + agile ,一條龍服務(wù)標(biāo)準(zhǔn)、周到、包滿意。
需求管理icafe是百度內(nèi)部的工作平臺(tái),在我理解,就是需求管理平臺(tái)。PM等需求方在icafe上發(fā)布需求,開(kāi)發(fā)小哥肢解圣意,將一個(gè)Aplication級(jí)別的需求不斷拆分,拆分成story,逐個(gè)開(kāi)發(fā)滿足。PM、RD、QA在icafe平臺(tái)了解PM所需,測(cè)驗(yàn)RD所得,清楚QA所測(cè)。
代碼開(kāi)發(fā)記得曾經(jīng)聽(tīng)開(kāi)發(fā)icode平臺(tái)的同學(xué)驕傲的講,BAT中只有百度有全公司級(jí)別的統(tǒng)一代碼倉(cāng)庫(kù),并且使用git管理代碼,不明覺(jué)厲,我也很驕傲。icode平臺(tái)代碼的提交可以通過(guò)issue號(hào)與icafe里的需求store連接起來(lái)。通過(guò)git進(jìn)行版本控制是業(yè)界及開(kāi)源社區(qū)主流的選擇。包括百度EFE的大神們編纂了公司級(jí)別統(tǒng)一的各種語(yǔ)言的編碼規(guī)范,代碼提交會(huì)觸發(fā)編碼規(guī)范校驗(yàn),保證了入庫(kù)代碼的規(guī)范,review后準(zhǔn)入的限制基本保證了代碼的質(zhì)量。
持續(xù)集成百度的持續(xù)集成解決方案是依托于agile平臺(tái)實(shí)現(xiàn)。還記得樸大的廣告,集成的,好喝的!。每個(gè)icode項(xiàng)目都會(huì)要求開(kāi)發(fā)者編寫(xiě)一個(gè)BCLOUD腳本,類似travis ci的.travis.yml的文件,代碼提交會(huì)觸發(fā)線上云編譯機(jī)集群完成編譯,并記錄編譯狀態(tài),協(xié)助開(kāi)發(fā)者保證線上代碼分支的持續(xù)可用。agile另一個(gè)主要功能是完成代碼發(fā)布,發(fā)布后,代碼即進(jìn)入公司級(jí)代碼倉(cāng)庫(kù)。
域名什么,你在說(shuō)域名?我真的可以包辦域名了!在你要包辦域名的前,首先需要判斷你心儀的希望使用的域名是否已被占用。dig、nslookup是我使用的判別方法。
nslookup baidu.com //只是做示范,提醒自己小伙子野心不要太大
在確認(rèn)你心儀且該域名尚未被占用的后,你就應(yīng)該了解下A記錄、CNAME了。簡(jiǎn)言之,一個(gè)域名的A記錄是域名指向ip的映射,而CNAME是域名指向其他域名的別名映射。在百度,有shifen系統(tǒng),shifen系統(tǒng)的域名是A記錄,但它其實(shí)指向的是vip(虛擬ip),機(jī)房、機(jī)群多了以后,這樣會(huì)盡可能的保證運(yùn)維的靈活度。
數(shù)據(jù)庫(kù)B/S架構(gòu)應(yīng)用運(yùn)轉(zhuǎn)的本質(zhì)就是數(shù)據(jù)的流動(dòng)。任何業(yè)務(wù)邏輯的實(shí)現(xiàn)到最后都會(huì)被抽象成數(shù)據(jù)結(jié)構(gòu),持久化到數(shù)據(jù)庫(kù)中保存。數(shù)據(jù)庫(kù)種類很多,業(yè)務(wù)中最常用的可能就是MySQL,Redis,MongoDB等。大多數(shù)的B/S應(yīng)用數(shù)據(jù)庫(kù)選型都會(huì)使用MySQL,因?yàn)樗亲盍餍械年P(guān)系型數(shù)據(jù)庫(kù),體積小、速度快、性能卓越。Redis常用于session共享及業(yè)務(wù)邏輯數(shù)據(jù)緩存,提高接口響應(yīng)速度。說(shuō)到MySQL,phpMyAdmin是一個(gè)不錯(cuò)的MySQL數(shù)據(jù)庫(kù)管理工具,當(dāng)然,作為新時(shí)代的FEer,在不方便使用phpMyAdmin的場(chǎng)合,你也得掌握基礎(chǔ)的MySQL命令。
// 登錄MySQL server mysql -h IP -P port -u username -ppassword // RD讓你導(dǎo)出個(gè)表,不能不會(huì) mysqldump database table // 看下MySQL server上有哪些數(shù)據(jù)庫(kù) show databases; // 想操作哪個(gè)庫(kù) use db; // 想操作的庫(kù)里有哪些表 show tables; // 查看下編碼 show variables like "%char%"; // 咦、不是utf8? SET character_set_client="utf8"; SET character_set_connection="utf8"; SET character_set_results="utf8"; // 增? INSERT INTO `table` (`prop`,`prop`...) VALUES(value1,value2); // 刪? DELETE FROM `table` WHERE conditions; // 改? UPDATE `table` SET prop=value WHERE conditions; // 查? SELECT * FROM `table` WHERE condition;前端
如果還不用美中三強(qiáng)或其他MVVM框架(比如百度errorrik大神的san,據(jù)說(shuō)能扛IE6的MVVM)怎么好意思說(shuō)自己是前端。前端標(biāo)配已經(jīng)是webpack + babel + MVVM + (FE)-router + (FE)-Store/x... 包括module bundler,transformer,MVVM,前端路由,前端狀態(tài)管理,數(shù)據(jù)驅(qū)動(dòng),狀態(tài)機(jī),這些東西已經(jīng)融入到現(xiàn)代WEB前端產(chǎn)品內(nèi),缺少一樣,都覺(jué)得少了點(diǎn)什么,像個(gè)中官。
后端說(shuō)到node.js,說(shuō)到后端服務(wù)器框架,不得不再感謝一個(gè)大拿,TJ,貢獻(xiàn)太大了。express, koa, co等等,進(jìn)一步降低了FEer進(jìn)入的門(mén)檻。后端選TJ大拿的框架就夠了,當(dāng)然包括百度、阿里在內(nèi)都有一些自己的服務(wù)端框架,基本都是基于TJ大拿加上業(yè)務(wù)線的實(shí)際運(yùn)用場(chǎng)景之上的封裝。包括yog2,egg等。對(duì)了,MySQL orm推薦使用sequelize,這里有篇文檔介紹的挺全。
服務(wù)端如上文所述,F(xiàn)Eer把路由分發(fā)、頁(yè)面渲染這些雜活攬下以后,RD大大們就可以專心寫(xiě)服務(wù)端接口了。node server 與其他服務(wù)端server的通信可以通過(guò)RPC、Webservice等方式實(shí)現(xiàn),node server也可以做proxy,將客戶端的請(qǐng)求代理到其他服務(wù)器獲取業(yè)務(wù)的數(shù)據(jù)。當(dāng)前開(kāi)源風(fēng)愈來(lái)愈強(qiáng)的風(fēng)氣下,各類相關(guān)node包一片大繁榮,大家可以自行選擇你看中的。在我的業(yè)務(wù)場(chǎng)景下,我最常使用的是百度FEX Team的 node-ral。
MORE責(zé)任越大,就要求能力越強(qiáng)。從FEer到Full stack developer,不是那么簡(jiǎn)單,需要變化的不止一點(diǎn),要不斷擴(kuò)大自己的技術(shù)關(guān)注圈,提升自己的技術(shù)廣度與深度,增強(qiáng)技術(shù)視野,只有真正按RD的標(biāo)準(zhǔn)來(lái)要求自己,配合FEer的看家本領(lǐng),才能做一名合格的全棧開(kāi)發(fā)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/84230.html
摘要:前言隨著技術(shù)的不斷發(fā)展,前端工程師也被賦予了越來(lái)越多的職責(zé)。接下來(lái)這篇文章,完成一個(gè)簡(jiǎn)單的登錄注冊(cè),能讓你快速上手,成為一個(gè)小全棧工程師,快速開(kāi)始安裝因?yàn)橐呀?jīng)完全支持語(yǔ)法,所以請(qǐng)保證的版本在以上推薦一個(gè)的多版本管理工具。 前言 隨著技術(shù)的不斷發(fā)展,前端工程師也被賦予了越來(lái)越多的職責(zé)。不再是從前只需要切個(gè)圖,加個(gè)css樣式就能完成任務(wù)的切圖仔了。接下來(lái)這篇文章,完成一個(gè)簡(jiǎn)單的登錄注冊(cè),能...
摘要:全棧開(kāi)發(fā)是一個(gè)學(xué)習(xí)實(shí)現(xiàn)提高的過(guò)程。解除對(duì)開(kāi)發(fā)人員的限制所有的職業(yè)都在持續(xù)的進(jìn)化。哪怕是爆炸和擁擠的印度招聘市場(chǎng),全棧工程師在年也非常的搶手。印度的創(chuàng)業(yè)公司已經(jīng)開(kāi)發(fā)意識(shí)到全棧工程師的重要意義,全棧會(huì)越來(lái)越重要。 在不斷壯大的招聘市場(chǎng)上,最需要的是有非常廣泛技術(shù)棧的人。 前言 敬愛(ài)的讀者,大家好。大家經(jīng)常討論的話題是作為一個(gè)軟件工程師是一個(gè)持續(xù)學(xué)習(xí)的過(guò)程。因?yàn)楝F(xiàn)有的趨勢(shì)和技術(shù)在軟件領(lǐng)域會(huì)很...
摘要:全棧開(kāi)發(fā)是一個(gè)學(xué)習(xí)實(shí)現(xiàn)提高的過(guò)程。解除對(duì)開(kāi)發(fā)人員的限制所有的職業(yè)都在持續(xù)的進(jìn)化。哪怕是爆炸和擁擠的印度招聘市場(chǎng),全棧工程師在年也非常的搶手。印度的創(chuàng)業(yè)公司已經(jīng)開(kāi)發(fā)意識(shí)到全棧工程師的重要意義,全棧會(huì)越來(lái)越重要。 在不斷壯大的招聘市場(chǎng)上,最需要的是有非常廣泛技術(shù)棧的人。 前言 敬愛(ài)的讀者,大家好。大家經(jīng)常討論的話題是作為一個(gè)軟件工程師是一個(gè)持續(xù)學(xué)習(xí)的過(guò)程。因?yàn)楝F(xiàn)有的趨勢(shì)和技術(shù)在軟件領(lǐng)域會(huì)很...
閱讀 5170·2021-07-25 21:37
閱讀 728·2019-08-30 15:53
閱讀 3405·2019-08-29 18:47
閱讀 739·2019-08-29 15:39
閱讀 2193·2019-08-29 13:12
閱讀 1862·2019-08-29 12:43
閱讀 3047·2019-08-26 11:52
閱讀 1956·2019-08-26 10:15