前端規(guī)范化對(duì)網(wǎng)站制作的重要性
前端在日新月異的發(fā)展下,給開(kāi)發(fā)人員帶來(lái)便捷與高效,也給開(kāi)發(fā)人員帶來(lái)挑戰(zhàn)與思考;開(kāi)發(fā)過(guò)程中一千個(gè)人之中有一千個(gè)哈姆雷特也出現(xiàn)了一千份截然不同的代碼,使得代碼的管理以及維護(hù)帶來(lái)困難,在此基礎(chǔ)下,不同的團(tuán)隊(duì)在自身的環(huán)境下具體問(wèn)題具體分析后制定出自己的一套規(guī)范,由此,展開(kāi)了規(guī)范化在于項(xiàng)目過(guò)程中的重要性討論。
項(xiàng)目開(kāi)發(fā)過(guò)程中不是一蹴而就,而是由簡(jiǎn)入繁的過(guò)程,這個(gè)過(guò)程受到不同因素影響,從未知的影響下轉(zhuǎn)化為已知的過(guò)程,往往帶來(lái)的結(jié)果就是對(duì)于項(xiàng)目的調(diào)整,這是一個(gè)不可避免的流程。在這個(gè)不可避免的流程下,提出自己的第一個(gè)觀點(diǎn),規(guī)范化對(duì)于項(xiàng)目的重要性之一則是利于對(duì)項(xiàng)目的維護(hù)。由此,可以提出另外一個(gè)開(kāi)發(fā)疑問(wèn),什么樣的規(guī)范化利于項(xiàng)目的維護(hù);在我理解情況下,主要有一下幾點(diǎn)。
一、代碼的注釋:
上面的兩段代碼在實(shí)現(xiàn)的過(guò)程中假設(shè)是A開(kāi)發(fā)人員,在修改的過(guò)程中需要B來(lái)修改,在一個(gè)龐大的項(xiàng)目中B為了修改代碼需要讀懂A開(kāi)發(fā)人員寫(xiě)的代碼,在沒(méi)有注釋的情況,無(wú)疑會(huì)給B開(kāi)發(fā)人員帶來(lái)難度,項(xiàng)目越復(fù)雜,需要理解的代碼就越多,在修改的過(guò)程中就會(huì)耗費(fèi)更多的時(shí)間。
二、模塊化開(kāi)發(fā):
為什么要開(kāi)始模塊化開(kāi)發(fā)?當(dāng)一個(gè)項(xiàng)目越來(lái)越復(fù)雜的時(shí)候,會(huì)出現(xiàn)比較多的問(wèn)題,比如說(shuō)全局變量污染問(wèn)題,功能之間的可關(guān)聯(lián)性太小,不能很好的調(diào)用已完成的功能......
上面呈現(xiàn)代碼中,我們可以看到在eat和play兩個(gè)方法在模塊化和普通函數(shù)的調(diào)用的區(qū)別,通過(guò)person的類我們把子類封裝到自己的私有作用域中,減少了全局的方法,只留下一個(gè)接口來(lái)進(jìn)行調(diào)用。而普通的函數(shù)式直接暴露在window的作用域下,同時(shí)假設(shè)上面兩段代碼是A開(kāi)發(fā)人員已經(jīng)寫(xiě)好的,而B(niǎo)開(kāi)發(fā)人員開(kāi)始維護(hù),B開(kāi)發(fā)人員這個(gè)時(shí)候也想實(shí)現(xiàn)一個(gè)eat和play的方法,這個(gè)時(shí)候所產(chǎn)生的問(wèn)題就是,B人員所寫(xiě)的方法名和A人員的方法沖突?;蛘咴谄渌那闆r下,B想修改A的方法,在關(guān)聯(lián)性不強(qiáng)的情況下,也使得B對(duì)于A的代碼產(chǎn)生難度,(注:這里所說(shuō)的關(guān)聯(lián)性不是低耦合或者高耦合的概念),這里所指的面向?qū)ο蟮姆庋b概念。模塊化的實(shí)現(xiàn)不僅可以使得代碼的可讀性和復(fù)用性提高,還能大大的減少代碼沖突和無(wú)意義的報(bào)錯(cuò)。在這里所舉例的只是最為的簡(jiǎn)單的一種封裝的模塊化,在整站的模塊化過(guò)程也可以調(diào)用框架,前端的模塊化框架request.js和服務(wù)器框架node.js。
規(guī)范化的重要性還遠(yuǎn)遠(yuǎn)不止于此,現(xiàn)在說(shuō)說(shuō)規(guī)范化另外一個(gè)重要功能SEO,SEO是搜索引擎的排名機(jī)制的基礎(chǔ)之上,對(duì)網(wǎng)站進(jìn)行內(nèi)部的調(diào)整及外部的調(diào)整優(yōu)化,好的SEO就像好的影視劇,能讓劇中之人露臉頻率與被人熟知的機(jī)會(huì)加大。那么為什么前端的規(guī)范化和SEO有關(guān)聯(lián)?SEO的工作過(guò)程中是一個(gè)網(wǎng)頁(yè)發(fā)現(xiàn)、收集網(wǎng)頁(yè)信息、之后針對(duì)收集的網(wǎng)頁(yè)信息建立索引庫(kù),再由檢索器根據(jù)用戶輸入的關(guān)鍵詞返回結(jié)果。通過(guò)這個(gè)過(guò)程,我們拋出另外一個(gè)疑問(wèn),這個(gè)機(jī)制是如何搜集信息,而我們的規(guī)范化是如何讓我們的信息被搜索引擎機(jī)制所抓取。
一、爬蟲(chóng)通過(guò)url超鏈接從這個(gè)網(wǎng)頁(yè)爬到另外一個(gè)網(wǎng)頁(yè):
所以u(píng)rl的設(shè)計(jì)過(guò)程中,一方面對(duì)于的功能的實(shí)現(xiàn),另外一方面也需要考慮到SEO的優(yōu)化,具體的表現(xiàn)在于:
1.url盡量簡(jiǎn)短,在簡(jiǎn)短的url中使用規(guī)范的小寫(xiě)英文關(guān)鍵詞。
2.減少域名的收錄,一個(gè)網(wǎng)站如果有幾個(gè)不同的域名,對(duì)于SEO來(lái)說(shuō),不能夠判斷其中哪一個(gè)才是正確的,在網(wǎng)頁(yè)收錄的過(guò)程中爬蟲(chóng)會(huì)收錄這幾個(gè)域名,在搜索過(guò)程中顯示的網(wǎng)頁(yè)或許不是你想要的域名,同時(shí)一個(gè)規(guī)范性的域名為http://www.test.cn,不規(guī)范的域名為http://test.cn,這些情況下會(huì)分散頁(yè)面權(quán)重,不利于搜素排名。雖然在可以通過(guò)301重定向來(lái)轉(zhuǎn)向權(quán)重。但無(wú)疑來(lái)說(shuō),規(guī)范的url是對(duì)SEO無(wú)疑是較好的。
二、通過(guò)標(biāo)簽來(lái)提高SEO的收錄:
當(dāng)搜索引擎抓取到了一個(gè)新的站點(diǎn),爬蟲(chóng)將會(huì)對(duì)這個(gè)站點(diǎn)進(jìn)行收錄。為了使爬蟲(chóng)的抓取更為高效,也需要開(kāi)發(fā)人員在開(kāi)發(fā)中不僅僅是實(shí)現(xiàn)功能,同時(shí)也需要考慮網(wǎng)頁(yè)的結(jié)構(gòu)上對(duì)SEO的考慮。
1.html5的語(yǔ)義化的標(biāo)簽出現(xiàn),對(duì)于SEO更加的友好,也促使我們需要合理的使用Html5的標(biāo)簽進(jìn)行網(wǎng)頁(yè)結(jié)構(gòu)的布局
2.meta屬性content設(shè)置搜索引擎搜索到的關(guān)鍵字,content的內(nèi)容和title標(biāo)題設(shè)置的關(guān)鍵詞需要精簡(jiǎn)。
3.頁(yè)面中不過(guò)多的設(shè)置h1標(biāo)簽,也不能不設(shè)置h1標(biāo)簽,h1變遷的重要性僅此與title的內(nèi)容,如果網(wǎng)頁(yè)中使用不到h1標(biāo)簽,可以設(shè)置h1的內(nèi)容為需要收錄的內(nèi)容,對(duì)h1的標(biāo)簽進(jìn)行z-index的隱藏,不建議使用dISPlay:none進(jìn)行隱藏,對(duì)于display:none的內(nèi)容,爬蟲(chóng)會(huì)默認(rèn)跳過(guò)。同時(shí)對(duì)于重要的內(nèi)容渲染不使用js,js的內(nèi)容和iframer的內(nèi)容,爬蟲(chóng)的收錄效果非常差或者說(shuō)不收錄。
4.圖片需要設(shè)置alt屬性,網(wǎng)頁(yè)需要設(shè)置404頁(yè)面;之所以需要圖片設(shè)置alt屬性是因?yàn)榕老x(chóng)不認(rèn)識(shí)圖片上的內(nèi)容,只能通過(guò)alt進(jìn)行抓取圖片的信息。網(wǎng)頁(yè)中設(shè)置404頁(yè)面,對(duì)于爬蟲(chóng)來(lái)說(shuō),會(huì)不斷從當(dāng)前頁(yè)面上抽取新的URL放入隊(duì)列。如果抽取的過(guò)程中進(jìn)入404頁(yè)面,爬蟲(chóng)會(huì)默認(rèn)回到之前的收錄的頁(yè)面。
規(guī)范化是每一個(gè)開(kāi)發(fā)人員在不停的思考、經(jīng)驗(yàn)積累的過(guò)程總結(jié)出來(lái)的一套'標(biāo)準(zhǔn)'。這套'標(biāo)準(zhǔn)'也許沒(méi)有在開(kāi)發(fā)過(guò)程中帶來(lái)驚喜,但是卻會(huì)在'隱藏'的地帶帶來(lái)福利。以上所說(shuō)的規(guī)范化,只是蜻蜓點(diǎn)水,還有著許許多多的優(yōu)勢(shì)沒(méi)有體現(xiàn)。(注:以上觀點(diǎn)僅為個(gè)人觀點(diǎn),如果觀點(diǎn)有誤。歡迎指正和補(bǔ)充)
想了解更多網(wǎng)站技術(shù)的內(nèi)容,請(qǐng)?jiān)L問(wèn):網(wǎng)站技術(shù)
本文來(lái)源:http://gagu89.com/seodongtai/7929.html