乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      全棧工程師技能大全

       西北望msm66g9f 2020-05-06

      一個(gè)能夠?qū)⒁粋€(gè)原型變成一個(gè)變成一個(gè)MVP(minimum viable product, 最小變量產(chǎn)品)的全棧工程師通常都被說成是門門精通,樣樣稀松, 當(dāng)然其實(shí)這是褒義的說法。為了給全棧工程師一個(gè)最新鮮的定義,我們首先來關(guān)注一下全棧工程師以前是搞什么的。

      以前的全棧工程師

      很久以前,大約在 2000 年(在互聯(lián)網(wǎng)的次元里,17年可以說是一個(gè)非常長的時(shí)間了),一個(gè)全棧工程師必須掌握下面的本領(lǐng):

      • 用 Adobe 公司的 Photoshop 或者 Fireworks 工具設(shè)計(jì)出一個(gè)網(wǎng)頁

      • 將設(shè)計(jì)稿變成 HTML, CSS 還有熱點(diǎn)圖(額,還記得那些嗎?)

      • 寫一些基本的 PHP 4.0 腳本(非面向?qū)ο蟮?PHP 即將成為歷史)來處理服務(wù)端邏輯

      • 保存所有的動(dòng)態(tài)數(shù)據(jù)到 MySQL 中,也可能會(huì)做一些小優(yōu)化

      • 用 FTP 上傳所有代碼、數(shù)據(jù)庫什么的到一臺服務(wù)器,然后就可以領(lǐng)取報(bào)酬啦

      _注意我們在這里討論 PHP —— 一個(gè)全棧 Flash 或者 Coldfusion (一種 Web 服務(wù)器) 開發(fā)者可能有不同的工作方式(但是也僅僅是細(xì)微的差別)

      在那個(gè)單純的時(shí)代,生活是如此的美好。個(gè)人開發(fā)者一抓一大把,而且程序猿工作完還有大把的時(shí)間陪伴自己的家人。

      那現(xiàn)在呢?

      現(xiàn)在的全棧工程師需要自帶什么技能呢

      這些年代,我們也有一些榮耀,比如這些正在發(fā)生的東東,這是怎么做到的呢?

      為了在這個(gè)牛逼的市場里獲得成功,我們這些開發(fā)者——通常都是完美主義者——應(yīng)經(jīng)常把“如果你想做正確的事”當(dāng)做自己的座右銘,并經(jīng)常質(zhì)問自己。這會(huì)強(qiáng)迫我們自己集中精力在一處,而且必須學(xué)習(xí)所有東西,所以做一個(gè)全棧工程師往往要學(xué)會(huì)以下技能:

      服務(wù)管理/運(yùn)維

      一個(gè)開發(fā)者必須了解基礎(chǔ)的服務(wù)器管理知識。包括當(dāng)不限于以下知識:

      • 通過終端或其他沒有用戶界面的環(huán)境來遠(yuǎn)程連接服務(wù)器

      • 會(huì)寫基本的 shell 腳本

      • 服務(wù)器上的用戶和群組管理

      • 管理像 Apache 和 Nginx 這樣的服務(wù)器程序來提供應(yīng)用

      • 防火墻管理和權(quán)限管理

      • 安裝和更新軟件

      via GIPHY

      除了這些基礎(chǔ)技能,開發(fā)者必須懂得怎樣去創(chuàng)建一個(gè)好的、健康的、分離的開發(fā)環(huán)境,在 Docker 或者像 Vagrant 這樣的虛擬機(jī)環(huán)境中。 如果上面所有的技術(shù)你都不熟悉,那我必須給你推薦一本超棒的書,點(diǎn)這里購買.

      開發(fā)者必須對版本控制系統(tǒng)非常熟練,為了讓開發(fā)有靠譜的生產(chǎn)備份和可分享、可協(xié)同的代碼庫,這些代碼庫能夠根據(jù)時(shí)間來跟蹤代碼變化。現(xiàn)在已經(jīng)沒有開發(fā)者的工作流是完全離開版本控制的了。我們有一個(gè)非常棒的關(guān)于版本控制的視頻教程,點(diǎn)這里購買.

      和實(shí)際管理或者虛擬服務(wù)器不同,一個(gè)開發(fā)者也許要知道云主機(jī)平臺,比如Heroku, Google Cloud, Azure, AWS等等。

      via GIPHY

      有一點(diǎn)必須說明的是,平臺和工具更多的是為了炒作而不是其實(shí)用性。但是熟悉每個(gè)人都在談?wù)摰臉I(yè)務(wù),長遠(yuǎn)來看會(huì)很有用,一個(gè)平臺和工具的客戶端應(yīng)該可以隨時(shí)更換服務(wù)提供商。幸運(yùn)的是,我們有云主機(jī)部署權(quán)威指南

      后端

      在后端,除了要懂選擇什么語言以外,比如 PHP 和眾多的框架 and CMSes,一個(gè)全棧開發(fā)者必須熟悉:

      • Web 服務(wù)器,比如 Nginx 和 Apache ,和運(yùn)維緊密相關(guān)

      • 不幸的是,NodeJS 已經(jīng)可以將 JS、CSS 和其他資源文件編譯成靜態(tài)可以方便緩存的文件了。幸運(yùn)的是,也有辦法避免學(xué)習(xí) NodeJS,用PHP也是可以的

      • 像Composer這樣的 PHP 包管理工具在現(xiàn)代化的開發(fā)環(huán)境中已經(jīng)離不開了。

      • 好的API 設(shè)計(jì),自從大部分新型網(wǎng)頁都基于 API 而且僅僅為前端服務(wù)(下面會(huì)詳細(xì)描述)。

      • ElasticSearch (introduction here) 這樣的搜索引擎對于網(wǎng)站性能的提高是非常重要的

      • cronjobs 和后端的工作,使用Gearman 或者 Crunz 這類的庫

      • 了解緩存, Varnish, Redis 等牛B的工具可以分片存儲(chǔ)數(shù)據(jù),這樣可以將一個(gè)項(xiàng)目部署的多個(gè)主機(jī)上

      數(shù)據(jù)庫

      數(shù)據(jù)庫是一個(gè)單獨(dú)的部分,因?yàn)槌撕芎玫卣莆瘴覀兓旧喜粫?huì)有結(jié)構(gòu)變化的關(guān)系數(shù)據(jù)庫(MySQL或者 PostgreSQL)的數(shù)據(jù)模式之外,一個(gè)全棧工程師應(yīng)該對非關(guān)系型數(shù)據(jù)庫有所了解,如MongoDB, Redis, 或 Cassandra ,更不用說像 Neo4j 這樣的圖形數(shù)據(jù)庫了。

      不幸的是,這些都是服務(wù)器上的東西,都在全棧工程師的控制下。也有幾個(gè)類似 Mongo 的遠(yuǎn)程解決方案,像RestDB或者 Google-owned Firebase 等。

      前端

      說到前端,真的很蛋疼。

      via GIPHY

      想知道一個(gè)正常的前端知識圖譜是怎么樣的,可以看 this excellent post 的JavaScript 版塊。但是作為一個(gè)全棧工程師,你需要了解

      • NodeJS and NPM

      • Yarn

      • 預(yù)處理器和編譯器(如Babel),用來編譯 Typescript, ES6, LESS, SCSS, SaSS

      • 構(gòu)建工具,如 Grunt 和 Gulp

      • 框架,如 VueJS、React、Angular

      • 模塊打包工具,如 Webpack、Browserify、Rollup

      Design

      設(shè)計(jì)

      在設(shè)計(jì)方面,全棧開發(fā)者需要了解怎樣在一個(gè)產(chǎn)品變成真正可用的 HTML 、CSS 代碼之前,畫一個(gè) 原型圖 。然后就可以去用 JS 寫交際、后端也可以用假數(shù)據(jù)來模擬生產(chǎn)環(huán)境。只有這個(gè)關(guān)鍵的原型圖完成,用戶體驗(yàn)設(shè)計(jì)和接口設(shè)計(jì)就緒,真正的開發(fā)才能開始。這本身就是一項(xiàng)艱巨的任務(wù),需要一套特殊的工具:

      • Photoshop 和 Illustrator 或者一些開源的工具比如 Gimp / Inkscape。訪問 Design channel來了解更多這樣的工具。

      • 一個(gè)牛B的、快速的編輯器,比如 Atom 或 Sublime Text (這兒有十種好用的 sublime插件 10 ST plugins for the full stack dev)

      • 像 Subtlepatterns 的背景選擇器和顏色選擇器能夠搭配一些顏色

      • CSS 的柵格系統(tǒng)

      • 上面所說的前端所需要了解的所有知識和 JS 數(shù)據(jù)模擬

      • 將原型圖發(fā)表到網(wǎng)上供大家瀏覽并給于反饋,Ngrok 就非常好用

      日志系統(tǒng)

      為了高效監(jiān)控應(yīng)用的健康度,全棧開發(fā)者必須能夠追蹤錯(cuò)誤,找到錯(cuò)誤日志然后從中提取出有用的信息。全棧開發(fā)者也需要從日志中預(yù)測一些趨勢,比如 CPU 或者 I/O 占用率的上漲,以防應(yīng)用不知道什么時(shí)候就掛了。這部分和運(yùn)維也有一些關(guān)系,但是需要一些特別的技能:

      via GIPHY

      推薦一篇非常棒的 ELK stack 的文章,這會(huì)幫助你了解做日志系統(tǒng)所需要的知識。里面包括了查找日志的 ElasticSearch ,收集日志的 Logstash,把日志用非常棒的圖表展現(xiàn)出來的的 Kibana,甚至還有提供解決方案的 Logz.io。

      移動(dòng)端

      最后,我們該說說移動(dòng)端了。隨著 iOS 和安卓上的的 webview 變得越來越高效,還有 PWA(漸進(jìn)式web應(yīng)用) 的到來,native 應(yīng)用正在變得黯淡,因?yàn)樗麄冮_發(fā)起來實(shí)在是太復(fù)雜了。所以一個(gè)全棧工程師必須了解 PWA 或者 React Native,或者像NativeScript, Tabris, Cordova, Phonegap或者其他 webview 來讓客戶端應(yīng)用調(diào)用 API 跑起來(如上一章最后說的那樣)。

      做一個(gè)全棧工程師值得嗎?

      所以最后只有一個(gè)問題,值嗎?

      首先,應(yīng)該注意到很少的全棧工程師稱得上真正的全棧,大部分全棧工程師關(guān)注了上面技術(shù)的某些方面,而不是所有的,僅僅因?yàn)椴豢赡苡心敲炊嗑Ψ旁谏厦嫠蟹矫妗?/p>

      其次,對所有方面都了解一點(diǎn)也許不會(huì)讓你在具體方面成為大師,但是說實(shí)在的,這會(huì)讓你在更好地理解項(xiàng)目的流程,和項(xiàng)目確實(shí)都需要用到的技術(shù)。當(dāng)作為乙方、開一個(gè)外包公司或者給一個(gè)迷茫的團(tuán)隊(duì)指一條明路方面是無價(jià)的技術(shù)。

      我可能不是一個(gè)“JavaScript 搖滾巨星”,“Elasticsearch 忍者”,“MySQL 大師”,“運(yùn)維狂人”,或者“移動(dòng)端老司機(jī)”,我不想被奉承,但是我覺得,做一個(gè)全棧工程師讓我張開了翅膀,測試不同的技術(shù),作為自由職業(yè)者給我的客戶提供與眾不同的解決方案。我可以有各種各樣的賺錢方式,也能拿到從服務(wù)端工作到 WordPress 插件開發(fā)等不同的訂單,因?yàn)槲覍λ械倪@些都有很多了解(遲早的事)。對于我來說,做一個(gè)全棧工程師是非常值得的,對比我以前只做 Flash 的日子,我現(xiàn)在更喜歡我的工作,當(dāng)時(shí)工作多而且工資低(沒有 JavaScript)。

      你呢,你是全棧還是也精于專呢?不管你是不是全棧,你覺得做的事情值嗎?


        本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多