前端開(kāi)發(fā)所使用的語(yǔ)言以及前端工程資源的加載與定位策略決定了前端工程必須要工具支持。,前端開(kāi)發(fā)在做項(xiàng)目過(guò)程中,要主要規(guī)范w3c書(shū)寫(xiě)和各個(gè)瀏覽器的兼容性。
你覺(jué)得web前端項(xiàng)目的難點(diǎn)有哪些
項(xiàng)目難度1、web架構(gòu)的獨(dú)特性2、Web標(biāo)準(zhǔn)及相關(guān)技術(shù)的復(fù)雜和快速發(fā)展3、瀏覽器兼容性4、跨領(lǐng)域和多目標(biāo)5、組織架構(gòu)和開(kāi)發(fā)流程
常見(jiàn)的前端集成部署方案有哪些?各自的優(yōu)缺點(diǎn)是什么?
前端行業(yè)經(jīng)歷了這么長(zhǎng)時(shí)間的發(fā)展,技術(shù)元素非常豐富。下面是一般Web團(tuán)隊(duì)需要的技術(shù)元素開(kāi)發(fā)規(guī)范,包括開(kāi)發(fā)部署的目錄規(guī)范、編碼規(guī)范等。不要小看規(guī)范的力量,它可以大大提高開(kāi)發(fā)效率。真正優(yōu)秀的規(guī)范不會(huì)讓用戶感到拘束,反而能幫助他們快速定位問(wèn)題,提高效率。模塊化開(kāi)發(fā)針對(duì)js和css,代碼按功能或業(yè)務(wù)組織。Js解決了獨(dú)立作用域、依賴管理、api暴露、按需加載和執(zhí)行、安全合并的問(wèn)題,css解決了組件的依賴管理和內(nèi)部風(fēng)格管理的問(wèn)題。是提高前端開(kāi)發(fā)效率的重要基礎(chǔ)?,F(xiàn)在流行的模塊化框架有、等。組件開(kāi)發(fā)在模塊化的基礎(chǔ)上,以page widget()為單位,將page widget的js、css、html代碼片段放在一起進(jìn)行開(kāi)發(fā)和維護(hù)。組件單元獨(dú)立于資源,組件可以在系統(tǒng)中重用。比如頁(yè)眉(),頁(yè)腳(),搜索框(),導(dǎo)航(菜單),對(duì)話框(),甚至一些復(fù)雜的組件比如編輯器()。通常情況下,服務(wù)會(huì)將組件的js部分打包,以解決組件渲染和交互的一些常見(jiàn)問(wèn)題。隨著組件倉(cāng)庫(kù)的組件化,我們希望將一些非常常見(jiàn)的組件放在一個(gè)共同的地方,供團(tuán)隊(duì)共享,以方便新項(xiàng)目的重用。這時(shí)候就需要從一個(gè)組件倉(cāng)庫(kù)引入一些東西?,F(xiàn)在流行的組件庫(kù)有bower等。團(tuán)隊(duì)發(fā)展到一定規(guī)模后,對(duì)構(gòu)件庫(kù)的需求會(huì)變得非常強(qiáng)烈。這里的性能優(yōu)化是指可以通過(guò)工程手段保證的性能優(yōu)化點(diǎn)。因?yàn)閮?nèi)容豐富,這里就不展開(kāi)了。有興趣的同學(xué)可以看看我的兩篇文章[1][2]。性能優(yōu)化是前端項(xiàng)目到一定階段必經(jīng)的過(guò)程。在這一部分,我想強(qiáng)調(diào)的是,性能優(yōu)化一定是一個(gè)工程問(wèn)題,也是一個(gè)統(tǒng)計(jì)問(wèn)題。不能用工程手段保證的性能優(yōu)化是不靠譜的。優(yōu)化時(shí)只考慮頁(yè)面的第一次加載,不考慮宏觀統(tǒng)計(jì)中的全局,也是片面的。項(xiàng)目部署符合當(dāng)前行業(yè)分工標(biāo)準(zhǔn)。雖然不是前端工作范疇,但對(duì)性能優(yōu)化有直接影響,包括靜態(tài)資源緩存、cdn、無(wú)覆蓋發(fā)布等問(wèn)題。合理的靜態(tài)資源部署可以為前端性能帶來(lái)更大的優(yōu)化空間。完整的開(kāi)發(fā)流程包括本地開(kāi)發(fā)調(diào)試、視覺(jué)效果走查確認(rèn)、前端和后端聯(lián)調(diào)、測(cè)試、上線等環(huán)節(jié)。改進(jìn)開(kāi)發(fā)過(guò)程可以大大降低開(kāi)發(fā)的時(shí)間成本。這幾年我看到很多獨(dú)立的系統(tǒng)(cms系統(tǒng)和靜態(tài)資源推送系統(tǒng))把開(kāi)發(fā)過(guò)程割裂開(kāi)來(lái),嚴(yán)重阻礙了前端開(kāi)發(fā)的效率。開(kāi)發(fā)工具這里說(shuō)的工具不是IDE,而是工程工具,包括搭建優(yōu)化工具、開(kāi)發(fā)-調(diào)試-部署等流程工具,以及組件庫(kù)獲取、提交等相關(guān)工具,甚至包括運(yùn)營(yíng)、文檔、配置發(fā)布等平臺(tái)工具。前端開(kāi)發(fā)需要工具支持,而這個(gè)問(wèn)題的根源來(lái)自于前端領(lǐng)域的語(yǔ)言特性(我以后會(huì)單獨(dú)寫(xiě)一篇文章介紹前端領(lǐng)域的語(yǔ)言缺陷)。前端開(kāi)發(fā)使用的語(yǔ)言(js,css,html)和前端工程資源的加載定位策略決定了前端工程必須有工具的支持。因?yàn)檫@些工具通常是獨(dú)立的系統(tǒng),所以需要把它們串聯(lián)起來(lái)才有這樣一個(gè)包。上面提到的七個(gè)技術(shù)要素都直接或間接地影響著前端開(kāi)發(fā)工具的設(shè)計(jì)。因此,能否將其他技術(shù)要素串聯(lián)起來(lái),使前端開(kāi)發(fā)形成連貫、可持續(xù)、優(yōu)化的開(kāi)發(fā)體系,工具的設(shè)計(jì)非常重要。
為啥現(xiàn)在這么缺前端,到底都是些什么樣的項(xiàng)目需要前端
前端是客戶端