現代互聯網技術的成熟致使了技術分工的極度細化,一個技術團隊每每會包括前端、後端、安全、運維、架構、測試等各類職責,尤爲是先後端分離的技術實現,像關老爺手中一把鋒利無匹的大偃月刀,完全切斷了先後端程序員的聯繫,只剩下了 HTTP。前端
在2000年左右編程的時候可不是這樣,歷來沒有先後端分離這回事。若是你本身不能扛起一個項目,不只是會被淘汰,並且會被嘲笑。我最開始用 Perl 寫 CGI 程序,後來陸續學了 JavaScritp、Java、C#、Python、Objective C、Go 等,早期的項目或產品基本上都是從前作到後,除了設計以外,從切圖、前端頁面到業務邏輯、持久化、鏈接池、異常、緩存、日誌、集羣等等,基本上都要本身參與編程或獨立實現,在那個年代,你很難以專業細分的方式運做項目,由於根本找不到那麼多程序員。程序員
如今的狀況徹底不同了,互聯網的高速發展須要技術上更爲專業、更爲精深的編程人員,因此先後端技術體系的分離,就成了大勢所趨,造成了一種「反模式」。web
早期開發更可能是把前端當作一個展現層,大部分業務邏輯都放在服務端實現。前端很輕,由於前端很弱,沒有 AJAX 技術,沒有 JQuery,沒有框架,瀏覽器引擎和規範都不完善。可謂「通信基本靠喊,下雨基本靠傘」,最多弄個 XML 數據島進行頁面渲染,沒什麼重型武器。編程
隨着前端技術的日新月異,前端終於從輕量級的小姑娘,變成了矯健的女俠客,依然嫵媚多姿,可是前端開始承擔更多更重要的職責和角色。這裏的「反模式」並非一種貶義,而是指前端的強大,致使一部分業務邏輯從服務器端轉移到了前端去作,後來逐步造成了先後端分離的開發方式,前端負責界面上的大部分業務邏輯,而後經過 Rest 服務與後端進行交互。原來業務系統看重的事務問題,要麼一次 Rest 算一個事務,要麼作成冪等服務,要麼經過事務補償的方式實現,要麼交給異步消息隊列處理,這樣就造成了一套更爲輕量級的開發模式。後端
如今大部分互聯網公司裏已經看不到 Java 和 HTML、JS 混在一塊兒的 JSP 文件,也看不到 PHP 和 CSS 混在一塊兒的 PHP 文件,前端程序員們更多的是和 HTML、CSS、JavaScript、JSON 以及滿瀏覽器的 Dom 元素打交道。瀏覽器
若是你依然在編程的世界裏迷茫,不知道本身的將來規劃,能夠加web前端學習秋秋裙767,web前端中間的數字是273,web前端最後是102 。7年全棧工程師,根據這些年從事開發經驗,整理了一份最適合2019年學習的web前端乾貨,web前端的大型互聯網技術教學視頻,不停更新最新的教程和學習方法,天天分享學習經驗。不管是零基礎,仍是進階都歡迎。這裏是前端學習者的集中地緩存
不止於此安全
前端技術的腳步彷佛沒有停歇的意思,它們有了離線存儲,有了畫布,能夠在畫布上作出精妙的動畫和展現效果,有了移動端開發框架,也有了服務器端編程框架。Node.js、Meteor.js 的出現讓前端程序員大大出了一口惡氣,他們昂首闊步闖入了服務端開發的領地,並開始進行全棧開發。對於這個新的闖入者, C 程序員、Java 程序員、Go 程序員們紛紛表示:兔子尾巴長不了,看大家還能火幾天。說完之後就繼續去嵌入式、大數據、高併發、多核編程去了。前端框架
可是前端無論不顧,依然很火。若是你問我如今最火的程序員職位是什麼?我不得不告訴你,是前端,優秀的前端!前端已經取代了前幾年紅得發紫的移動開發者,成爲程序員新貴!服務器
前端技術突飛猛進,技術的更新換代,必然引起業務架構的調整,這裏面就會牽扯出一個傳統網站的改造問題。
Rest 的路由表能夠在後端控制,也能夠在前端控制,咱們最先都是在服務器端的框架裏維護的,如今前端框架 AngularJS,Backbone 等,都有路由模塊,放到前端更靈活。
上線的頁面應該進行預處理,好比代碼壓縮、JS 混淆,替換靜態資源的連接爲 CDN 的連接等。前端也是有自動化構建工具的,推薦 Gulp。能自動化的事情,必定要讓機器去作。
全部頁面的靜態資源好比圖片,CSS,JS 等,沒有特殊要求,必定要放到 CDN 上。
移動端頁面怎麼處理?佈局和邏輯簡單的頁面,採用響應式設計能夠搞定。複雜頁面,最好仍是維護兩套代碼,成本更低。
SEO 問題、瀏覽器兼容問題,須要根據業務需求提早設定好,不要等開發人員都搞完了再作標準上的變化,這會帶來很大的麻煩。
每到一個階段,都會有一個「最火的技術職位」,好比 C 程序員,Java 程序員,iOS 程序員,Android 程序員,如今是前端程序員,數據科學家。要不要追,要不要轉,我以爲不重要,這些技術很快就會沉澱成傳統的成熟的技術,到了那個階段,真正的技術專家纔會顯山露水,拔劍四顧,一戰功成!