當前位置:才華齋>IT認證>ACCP>

web前端開發工程師簡介

ACCP 閲讀(2.76W)

Web前端一直是佔有重要的地位。尤其是近年來HTML5技術的突飛猛進,使Web前端技術有了更好的發展。Web前端開發人員的薪資也是一路猛漲。下面我們一起了解一些web前端開發工程師簡介,歡迎大家參考!

web前端開發工程師簡介

  Web前端和後端的差異

  職能上的差異

首先,我們要分清Web designer(網頁設計師)和Web developer(網頁開發者,也稱程序員)的差異。兩者之間的差異主要表現在:一個是有關網站的視覺或美學方面,被稱為“前端”;另一個則是看不見的編碼方面的設計,被稱為“後端”。簡而言之,漂亮的網站界面都是出自網頁設計師之手,而牛逼強大的功能則是網頁開發者的傑作。

除了職能上的差異之外,兩者還有其他許多差異。國外設計網站Downgraf特意製作了一張圖表來展示——網頁設計師和網頁開發者(程序員)都留胡茬,一個沒錢,一個沒時間;兩者都喜歡內涵T恤,一個走字體設計路線,一個走代碼風;兩者都配自家設備,一個必帶MacBook Pro,一個只挑小鍵盤⋯⋯除了以上種種差異,他們還有一個共同點:害怕MM,看來都是“宅”惹的禍。

  技術上的差異

我們再從技術的方面,瞧瞧在實際的招聘中,各大企業要求前端人員與後端人員分別具備怎樣的能力。

  Web前端:

1. 精通HTML,能夠書寫語義合理,結構清晰,易維護的HTML結構。

2. 精通CSS,能夠還原視覺設計,併兼容業界承認的主流瀏覽器。

3. 熟悉JavaScript,瞭解ECMAScript基礎內容,掌握1~2種js框架,如JQuery。

4. 對常見的瀏覽器兼容問題有清晰的理解,並有可靠的解決方案。

5. 對性能有一定的要求,瞭解yahoo的性能優化建議,並可以在項目中有效實施。

  Web後端:

1. 精通jsp,servlet,java bean,JMS,EJB,Jdbc,Flex開發,或者對相關的工具、類庫以及框架非常熟悉,如Velocity,Spring,Hibernate,iBatis,OSGI等,對Web開發的模式有較深的理解。

2. 熟練使用oracle、sqlserver、mysql等常用的數據庫系統,對數據庫有較強的設計能力。

3. 熟悉maven項目配置管理工具,熟悉tomcat、jboss等應用服務器,同時對在高併發處理情況下的負載調優有相關經驗者優先考慮。

4. 精通面向對象分析和設計技術,包括設計模式、UML建模等。

5. 熟悉網絡編程,具有設計和開發對外API接口經驗和能力,同時具備跨平台的API規範設計以及API高效調用設計能力。

  總而言之,兩者的差異在於

職能上,前端主要負責界面的設計;後端主要是製作界面後的功能。

形象上,前端注重形式、美觀;後端注重功能、實用性(為此,小編還特地去了喬布堂的研發部做了實地考察,發現我們的前端工程師買了2台Macbook,而後端工程師買了2個鍵盤。驚人的符合!)

企業招聘中,前端工程師需要精通JS,能熟練應用JQuery,懂CSS,能熟練運用這些知識,進行交互效果的開發;後端開發人員需要會寫Java代碼,會寫SQL語句,能做簡單的數據庫設計,會Spring和iBatis,懂一些設計模式等。

不論是前端還是後端,都屬於軟件開發的範疇。因此在寫簡歷時可以參考 《軟件開發工程師》 ,對童鞋們可是很有幫助的喲!

要成為一名高效的Web開發者,需要做很多工作,來提高工作方式並改善勞動成果。而在開發中難免會遇到一些困難。那麼,前端與後端分別面臨的挑戰主要有哪些呢?來和小編一起看一看吧!

  Web前端開發面臨的挑戰

  前端開發的五大挑戰

第一大挑戰:兼容性

瀏覽器種類非常多,IE、Firefox、Chrome、Opera、還有眾多的IE加殼瀏覽器,類似搜狗、傲遊、360,再加上這些瀏覽器的移動終端版本。需要有Web標準,前端的知識大部分通用於各個瀏覽器,但還是會有歷史遺留問題,不同版本的瀏覽器有不同的問題。特別是市場佔有率最高的IE系,雖然IE 9/10看起來相當標準,但向之前版本間各有各的問題,向前兼容非常頭疼。如果不積累點經驗,面對疑難雜症那是一頭霧水。

第二大挑戰:交互的複雜度

CSS和DOM提供的接口水平過低,而BOM提供的控件只有input、select、textarea這幾種最基本的,稍複雜一點的UI效果,都要前端自己利用CSS和DOM去組合創造。看到一個需求,腦子裏第一步要想如何利用CSS、DOM這些基本的零件組合成最終的效果,實現最終效果其實是一個“創造”的過程,比如説tabView,treeView,richEditor,colorPicker這種看起來常見的組件,其實在前端裏都是沒有現成可用的,需要自己去實現。

前端語言的 膠水性需求 太強。CSS、DOM、JS是三種不同的技術,這也是前端知識系統中要掌握的最重要的三個基本功。前端的效果是通過CSS、DOM、JS三者配合起來最終呈現出來的,脱了任何一個技術都寸步難行,時刻要同時考慮多個方向的知識點。前端編程像是開了三個線程同時在跑,複雜度成倍增長。

第三大挑戰:代碼可維護性

複雜度的提升直接影響代碼的維護性。CSS+DOM+JS的組合實在太強大了,同一個效果可以有多種完全不同的實現方式,每一種實現方式都會有不同的開發難度、擴展性、可維護性。解決方案太多,看到一個效果首先會先想到如何用CSS和DOM裏那些low level的接口實現,這是一個“創造”的過程,這時腦子裏可能冒出好多種不同的.實現方法,“創造”完了之後還要“比較”,權衡各種解決方案的優劣,糾結一陣之後,才能選出最適合的方案。當然,並非前端都是完美主義,一定要選一個最好的方式出來,而是因為前端是GUI編程,直接面向用户,是最直接的產品呈現的部分,是門面。正因為如此,前端也是最容易被反覆修改的部分。反覆“修改”有多可怕,是個程序員都懂的,如果可維護性不好,那簡直是惡夢。所以前端不得不重視可維護性,不重視可維護性直接等於自虐。

第四大挑戰:性能

  第五大挑戰:個人成長

開發者的思路很重要

前端的開發,如果沒有總體的設計思路,會成為一種碎片似地程序,一個效果一堆代碼,一個功能一灘腳本,一個需求片邏輯。曾經遇到過,因為ue調整,把整個前端的代碼除了核心數據處理函數保留,其餘的全部修改的情況。基本上前端的開發,處於DOM操作,數據處理,數據交互三部分,如果合理的分配這三部分的功能,那麼前端的代碼就很容易擴展和調整。

真正的前端開發挑戰,還在於開發者的思路。兼容性,佈局,CSS和JS都不是問題,問題在於如何合理地組織語言邏輯;如何正確抽象出需求中的模塊;如何用代碼處理,清楚地用代碼表達出思路、寫好註釋,給後續維護者一個可閲讀的思路。前端的改動量,是後端的數倍,前端沒有絕對,只有跟隨需求不停的修改。

Web後端開發面臨的挑戰

後端開發的五大挑戰

第一大挑戰,後端開發最重要的挑戰,來自於規模

規模的擴大,比如訪問量擴大,文件存儲量擴大,數據量擴大,服務器數量擴大等。一個前端看起來一模一樣的網站,某一種指標如果擴大十倍,幾乎都會面臨一大堆的問題和挑戰。另一方面,在規模擴大以後,後端系統架構,一定會複雜化。原來只有一台Server,LAMP都裝在一起。然後數據庫分出來,反向代理,負載均衡,分庫分表,Memcache,Message Queue,事務處理,CDN,NOSQL,種種架構,Server,就逐漸的演化出來了。架構的複雜化,自然會帶來更多的問題和更多的挑戰。

第二大挑戰,來自於安全

安全問題層出不窮,防不勝防。需要技術手段,也需要管理制度。

第三大挑戰,來自於效率

能否提供足夠的處理速度,能否提供足夠的帶寬,能否保證響應能力,這些是對外的效率。能否使用更少的服務器,能否使用更加便宜的服務器,能否使用更加節省能源的服務器,這些是對內的效率。

第四大挑戰,來自於需求變更

無論前端後端,都會面臨需求變更,只要是軟件開發,這都是大挑戰。但是當一個系統已經穩定的,高效的運行時,需求變更來了,在滿足需求之後,原本來沒有問題的部分,會不會突然崩潰,一旦崩潰,就是後端工程師的噩夢。

第五大挑戰,來自於教條

這個世界上有無數IT大公司,他們都很開放,都願意分享自己的架構與技術。於是,對於“眼界開闊”的後端工程師而言,困難不在於如何解決,而在於如何從眾多的解決方案中做出挑選。框架、實踐不斷湧現,成功案例也不斷湧現。人家都用得好好的,你敢用嗎?到底是勇於嚐鮮,還是保守要緊呢?這個很難。

後端開發的三大法則

Design for failure

後端相當比例的代碼不是為了一般情況下正確而存在,而是為了保證特殊或者極端情況下系統可接受的響應而存在的。這裏有非常多的折衷要做:漸進改進還是超前設計?水平擴展、業務優化、前台還是後台處理?大量的折衷都是要根據不斷變化的環境和需求去權衡的,所以很容易犯錯。

Architecture is about abstract

為什麼要抽象?因為抽象的概念有更好的適應性,更易於複用,更能靈活適應變化。但是抽象是很難的,不恰當的抽象更是貽害無窮,要命的是,這些並沒有很好的方法論,多數是依靠一組基本的原理,憑經驗作出的。而Web後端開發在很長時間裏並沒有很重視這些,很多網站都是粗放型設計和開發出來的,所以補丁疊補丁的結構就順理成章的成為了主流。

Architecture is product

為架構本身即產品,一個軟件產品包含了不同的視角,其中最重要的包括用户看到的視角、以及軟件骨架即架構的視角。但產品就是產品,所有這些視角都是必須統一和一致的,這就要求架構必須理解產品的靈魂,而產品要理解架構的困難所在,否則很容易出現想做的事情做不到或者以巨大的架構代價實現一個邊角功能這類悲劇。