- 相關(guān)推薦
web前端開(kāi)發(fā)工程師簡(jiǎn)介
Web前端一直是占有重要的地位。尤其是近年來(lái)HTML5技術(shù)的突飛猛進(jìn),使Web前端技術(shù)有了更好的發(fā)展。Web前端開(kāi)發(fā)人員的薪資也是一路猛漲。下面我們一起了解一些web前端開(kāi)發(fā)工程師簡(jiǎn)介,歡迎大家參考!
Web前端和后端的差異
職能上的差異
首先,我們要分清Web designer(網(wǎng)頁(yè)設計師)和Web developer(網(wǎng)頁(yè)開(kāi)發(fā)者,也稱(chēng)程序員)的差異。兩者之間的差異主要表現在:一個(gè)是有關(guān)網(wǎng)站的視覺(jué)或美學(xué)方面,被稱(chēng)為“前端”;另一個(gè)則是看不見(jiàn)的編碼方面的設計,被稱(chēng)為“后端”。簡(jiǎn)而言之,漂亮的網(wǎng)站界面都是出自網(wǎng)頁(yè)設計師之手,而牛逼強大的功能則是網(wǎng)頁(yè)開(kāi)發(fā)者的杰作。
除了職能上的差異之外,兩者還有其他許多差異。國外設計網(wǎng)站Downgraf特意制作了一張圖表來(lái)展示——網(wǎng)頁(yè)設計師和網(wǎng)頁(yè)開(kāi)發(fā)者(程序員)都留胡茬,一個(gè)沒(méi)錢(qián),一個(gè)沒(méi)時(shí)間;兩者都喜歡內涵T恤,一個(gè)走字體設計路線(xiàn),一個(gè)走代碼風(fēng);兩者都配自家設備,一個(gè)必帶MacBook Pro,一個(gè)只挑小鍵盤(pán)⋯⋯除了以上種種差異,他們還有一個(gè)共同點(diǎn):害怕MM,看來(lái)都是“宅”惹的禍。
技術(shù)上的差異
我們再從技術(shù)的方面,瞧瞧在實(shí)際的招聘中,各大企業(yè)要求前端人員與后端人員分別具備怎樣的能力。
Web前端:
1. 精通HTML,能夠書(shū)寫(xiě)語(yǔ)義合理,結構清晰,易維護的HTML結構。
2. 精通CSS,能夠還原視覺(jué)設計,并兼容業(yè)界承認的主流瀏覽器。
3. 熟悉JavaScript,了解ECMAScript基礎內容,掌握1~2種js框架,如JQuery。
4. 對常見(jiàn)的瀏覽器兼容問(wèn)題有清晰的理解,并有可靠的解決方案。
5. 對性能有一定的要求,了解yahoo的性能優(yōu)化建議,并可以在項目中有效實(shí)施。
Web后端:
1. 精通jsp,servlet,java bean,JMS,EJB,Jdbc,Flex開(kāi)發(fā),或者對相關(guān)的工具、類(lèi)庫以及框架非常熟悉,如Velocity,Spring,Hibernate,iBatis,OSGI等,對Web開(kāi)發(fā)的模式有較深的理解。
2. 熟練使用oracle、sqlserver、mysql等常用的數據庫系統,對數據庫有較強的設計能力。
3. 熟悉maven項目配置管理工具,熟悉tomcat、jboss等應用服務(wù)器,同時(shí)對在高并發(fā)處理情況下的負載調優(yōu)有相關(guān)經(jīng)驗者優(yōu)先考慮。
4. 精通面向對象分析和設計技術(shù),包括設計模式、UML建模等。
5. 熟悉網(wǎng)絡(luò )編程,具有設計和開(kāi)發(fā)對外API接口經(jīng)驗和能力,同時(shí)具備跨平臺的API規范設計以及API高效調用設計能力。
總而言之,兩者的差異在于
職能上,前端主要負責界面的設計;后端主要是制作界面后的功能。
形象上,前端注重形式、美觀(guān);后端注重功能、實(shí)用性(為此,小編還特地去了喬布堂的研發(fā)部做了實(shí)地考察,發(fā)現我們的前端工程師買(mǎi)了2臺Macbook,而后端工程師買(mǎi)了2個(gè)鍵盤(pán)。驚人的符合!)
企業(yè)招聘中,前端工程師需要精通JS,能熟練應用JQuery,懂CSS,能熟練運用這些知識,進(jìn)行交互效果的開(kāi)發(fā);后端開(kāi)發(fā)人員需要會(huì )寫(xiě)Java代碼,會(huì )寫(xiě)SQL語(yǔ)句,能做簡(jiǎn)單的數據庫設計,會(huì )Spring和iBatis,懂一些設計模式等。
不論是前端還是后端,都屬于軟件開(kāi)發(fā)的范疇。因此在寫(xiě)簡(jiǎn)歷時(shí)可以參考 《軟件開(kāi)發(fā)工程師》 ,對童鞋們可是很有幫助的喲!
要成為一名高效的Web開(kāi)發(fā)者,需要做很多工作,來(lái)提高工作方式并改善勞動(dòng)成果。而在開(kāi)發(fā)中難免會(huì )遇到一些困難。那么,前端與后端分別面臨的挑戰主要有哪些呢?來(lái)和小編一起看一看吧!
Web前端開(kāi)發(fā)面臨的挑戰
前端開(kāi)發(fā)的五大挑戰
第一大挑戰:兼容性
瀏覽器種類(lèi)非常多,IE、Firefox、Chrome、Opera、還有眾多的IE加殼瀏覽器,類(lèi)似搜狗、傲游、360,再加上這些瀏覽器的移動(dòng)終端版本。需要有Web標準,前端的知識大部分通用于各個(gè)瀏覽器,但還是會(huì )有歷史遺留問(wèn)題,不同版本的瀏覽器有不同的問(wèn)題。特別是市場(chǎng)占有率最高的IE系,雖然IE 9/10看起來(lái)相當標準,但向之前版本間各有各的問(wèn)題,向前兼容非常頭疼。如果不積累點(diǎn)經(jīng)驗,面對疑難雜癥那是一頭霧水。
第二大挑戰:交互的復雜度
CSS和DOM提供的接口水平過(guò)低,而B(niǎo)OM提供的控件只有input、select、textarea這幾種最基本的,稍復雜一點(diǎn)的UI效果,都要前端自己利用CSS和DOM去組合創(chuàng )造?吹揭粋(gè)需求,腦子里第一步要想如何利用CSS、DOM這些基本的零件組合成最終的效果,實(shí)現最終效果其實(shí)是一個(gè)“創(chuàng )造”的過(guò)程,比如說(shuō)tabView,treeView,richEditor,colorPicker這種看起來(lái)常見(jiàn)的組件,其實(shí)在前端里都是沒(méi)有現成可用的,需要自己去實(shí)現。
前端語(yǔ)言的 膠水性需求 太強。CSS、DOM、JS是三種不同的技術(shù),這也是前端知識系統中要掌握的最重要的三個(gè)基本功。前端的效果是通過(guò)CSS、DOM、JS三者配合起來(lái)最終呈現出來(lái)的,脫了任何一個(gè)技術(shù)都寸步難行,時(shí)刻要同時(shí)考慮多個(gè)方向的知識點(diǎn)。前端編程像是開(kāi)了三個(gè)線(xiàn)程同時(shí)在跑,復雜度成倍增長(cháng)。
第三大挑戰:代碼可維護性
復雜度的提升直接影響代碼的維護性。CSS+DOM+JS的組合實(shí)在太強大了,同一個(gè)效果可以有多種完全不同的實(shí)現方式,每一種實(shí)現方式都會(huì )有不同的開(kāi)發(fā)難度、擴展性、可維護性。解決方案太多,看到一個(gè)效果首先會(huì )先想到如何用CSS和DOM里那些low level的接口實(shí)現,這是一個(gè)“創(chuàng )造”的過(guò)程,這時(shí)腦子里可能冒出好多種不同的實(shí)現方法,“創(chuàng )造”完了之后還要“比較”,權衡各種解決方案的優(yōu)劣,糾結一陣之后,才能選出最適合的方案。當然,并非前端都是完美主義,一定要選一個(gè)最好的方式出來(lái),而是因為前端是GUI編程,直接面向用戶(hù),是最直接的產(chǎn)品呈現的部分,是門(mén)面。正因為如此,前端也是最容易被反復修改的部分。反復“修改”有多可怕,是個(gè)程序員都懂的,如果可維護性不好,那簡(jiǎn)直是惡夢(mèng)。所以前端不得不重視可維護性,不重視可維護性直接等于自虐。
第四大挑戰:性能
第五大挑戰:個(gè)人成長(cháng)
開(kāi)發(fā)者的思路很重要
前端的開(kāi)發(fā),如果沒(méi)有總體的設計思路,會(huì )成為一種碎片似地程序,一個(gè)效果一堆代碼,一個(gè)功能一灘腳本,一個(gè)需求片邏輯。曾經(jīng)遇到過(guò),因為ue調整,把整個(gè)前端的代碼除了核心數據處理函數保留,其余的全部修改的情況;旧锨岸说拈_(kāi)發(fā),處于DOM操作,數據處理,數據交互三部分,如果合理的分配這三部分的功能,那么前端的代碼就很容易擴展和調整。
真正的前端開(kāi)發(fā)挑戰,還在于開(kāi)發(fā)者的思路。兼容性,布局,CSS和JS都不是問(wèn)題,問(wèn)題在于如何合理地組織語(yǔ)言邏輯;如何正確抽象出需求中的模塊;如何用代碼處理,清楚地用代碼表達出思路、寫(xiě)好注釋?zhuān)o后續維護者一個(gè)可閱讀的思路。前端的改動(dòng)量,是后端的數倍,前端沒(méi)有絕對,只有跟隨需求不停的修改。
Web后端開(kāi)發(fā)面臨的挑戰
后端開(kāi)發(fā)的五大挑戰
第一大挑戰,后端開(kāi)發(fā)最重要的挑戰,來(lái)自于規模
規模的擴大,比如訪(fǎng)問(wèn)量擴大,文件存儲量擴大,數據量擴大,服務(wù)器數量擴大等。一個(gè)前端看起來(lái)一模一樣的網(wǎng)站,某一種指標如果擴大十倍,幾乎都會(huì )面臨一大堆的問(wèn)題和挑戰。另一方面,在規模擴大以后,后端系統架構,一定會(huì )復雜化。原來(lái)只有一臺Server,LAMP都裝在一起。然后數據庫分出來(lái),反向代理,負載均衡,分庫分表,Memcache,Message Queue,事務(wù)處理,CDN,NOSQL,種種架構,Server,就逐漸的演化出來(lái)了。架構的復雜化,自然會(huì )帶來(lái)更多的問(wèn)題和更多的挑戰。
第二大挑戰,來(lái)自于安全
安全問(wèn)題層出不窮,防不勝防。需要技術(shù)手段,也需要管理制度。
第三大挑戰,來(lái)自于效率
能否提供足夠的處理速度,能否提供足夠的帶寬,能否保證響應能力,這些是對外的效率。能否使用更少的服務(wù)器,能否使用更加便宜的服務(wù)器,能否使用更加節省能源的服務(wù)器,這些是對內的效率。
第四大挑戰,來(lái)自于需求變更
無(wú)論前端后端,都會(huì )面臨需求變更,只要是軟件開(kāi)發(fā),這都是大挑戰。但是當一個(gè)系統已經(jīng)穩定的,高效的運行時(shí),需求變更來(lái)了,在滿(mǎn)足需求之后,原本來(lái)沒(méi)有問(wèn)題的部分,會(huì )不會(huì )突然崩潰,一旦崩潰,就是后端工程師的噩夢(mèng)。
第五大挑戰,來(lái)自于教條
這個(gè)世界上有無(wú)數IT大公司,他們都很開(kāi)放,都愿意分享自己的架構與技術(shù)。于是,對于“眼界開(kāi)闊”的后端工程師而言,困難不在于如何解決,而在于如何從眾多的解決方案中做出挑選?蚣、實(shí)踐不斷涌現,成功案例也不斷涌現。人家都用得好好的,你敢用嗎?到底是勇于嘗鮮,還是保守要緊呢?這個(gè)很難。
后端開(kāi)發(fā)的三大法則
Design for failure
后端相當比例的代碼不是為了一般情況下正確而存在,而是為了保證特殊或者極端情況下系統可接受的響應而存在的。這里有非常多的折衷要做:漸進(jìn)改進(jìn)還是超前設計?水平擴展、業(yè)務(wù)優(yōu)化、前臺還是后臺處理?大量的折衷都是要根據不斷變化的環(huán)境和需求去權衡的,所以很容易犯錯。
Architecture is about abstract
為什么要抽象?因為抽象的概念有更好的適應性,更易于復用,更能靈活適應變化。但是抽象是很難的,不恰當的抽象更是貽害無(wú)窮,要命的是,這些并沒(méi)有很好的方法論,多數是依靠一組基本的原理,憑經(jīng)驗作出的。而Web后端開(kāi)發(fā)在很長(cháng)時(shí)間里并沒(méi)有很重視這些,很多網(wǎng)站都是粗放型設計和開(kāi)發(fā)出來(lái)的,所以補丁疊補丁的結構就順理成章的成為了主流。
Architecture is product
為架構本身即產(chǎn)品,一個(gè)軟件產(chǎn)品包含了不同的視角,其中最重要的包括用戶(hù)看到的視角、以及軟件骨架即架構的視角。但產(chǎn)品就是產(chǎn)品,所有這些視角都是必須統一和一致的,這就要求架構必須理解產(chǎn)品的靈魂,而產(chǎn)品要理解架構的困難所在,否則很容易出現想做的事情做不到或者以巨大的架構代價(jià)實(shí)現一個(gè)邊角功能這類(lèi)悲劇。
【web前端開(kāi)發(fā)工程師簡(jiǎn)介】相關(guān)文章:
web前端開(kāi)發(fā)工程師工作的崗位職責01-23
網(wǎng)易web前端開(kāi)發(fā)師面試問(wèn)答的經(jīng)歷08-19
web前端工程師實(shí)習心得體會(huì )09-29
web前端應聘自我介紹02-25
Java開(kāi)發(fā)web的幾種開(kāi)發(fā)模式12-13
Web開(kāi)發(fā)的教程圖解06-05
web前端實(shí)訓總結(通用6篇)02-02