前端系統(tǒng)開發(fā)說明書_第1頁
前端系統(tǒng)開發(fā)說明書_第2頁
前端系統(tǒng)開發(fā)說明書_第3頁
前端系統(tǒng)開發(fā)說明書_第4頁
前端系統(tǒng)開發(fā)說明書_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

前端系統(tǒng)開發(fā)闡明書普通規(guī)則應(yīng)用在HTML,JavaScript和CSS上的通用規(guī)則。文獻(xiàn)、資源命名? 以可讀性而言,中劃線用來分隔文獻(xiàn)名? 確保文獻(xiàn)命名總是以字母開頭而不是數(shù)字? 特殊含義的文獻(xiàn),需要對文獻(xiàn)增加前后綴或特定的擴(kuò)展名(例如.min.js,.min.css),抑或一串前綴(例如all.main.min.css)。使用點(diǎn)分隔符來分辨這些在文獻(xiàn)名中帶有清晰意義的元數(shù)據(jù)。文本縮進(jìn)一次縮進(jìn)4個空格。代碼檢查對于前端JavaScript這種比較寬松自由的編程語言來說,嚴(yán)格遵照編碼規(guī)范和格式化風(fēng)格指南極為重要。前端開發(fā)人員需嚴(yán)格遵照開發(fā)規(guī)范,并且使用自動代碼檢查工具(如JSHint)減少語法錯誤,確保代碼對的執(zhí)行。JSHint是一款檢查JS代碼規(guī)范與否的工具,用來檢查JS代碼的規(guī)范性。它提供了配備的辦法,來檢查不符合開發(fā)規(guī)范的錯誤。黃金定律永遠(yuǎn)遵照同一套編碼規(guī)范--能夠是這里列出的,也能夠是你自己總結(jié)的。 不管有多少人共同參加同一項(xiàng)目,一定要確保每一行代碼都像是同一種人編寫的。HTML規(guī)范文檔類型HTML5docType使用HTML5的文檔類型聲明:<!DOCTYPEhtml>html5不基于SGML,因此不需要對DTD進(jìn)行引用,但是需要doctype來規(guī)范瀏覽器的行為(讓瀏覽器按照他們應(yīng)當(dāng)?shù)姆绞絹磉\(yùn)行)而HTML4.01基于SGML,因此需要對DTD進(jìn)行引用,才干告知瀏覽器文檔所使用的文檔類型。media標(biāo)簽<metaname="viewport"content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no"><metaname="format-detection"content="telephone=no"/>//嚴(yán)禁數(shù)字識自動別為電話號碼大部分4.7~5寸的安卓設(shè)備的viewport寬設(shè)為360px,iPhone6上卻是375px,大部分5.5寸安卓機(jī)器(例如說三星Note)的viewport寬為400,iPhone6plus上是414px。語言屬性(Languageattribute)強(qiáng)烈建議為html根元素指定lang屬性,從而為文檔設(shè)立對的的語言。這將有助于語音合成工具擬定其所應(yīng)當(dāng)采用的發(fā)音,有助于翻譯工具擬定其翻譯時(shí)所應(yīng)恪守的規(guī)則等等。更多有關(guān)lang屬性的知識能夠從此規(guī)范中理解。HTML語言代碼參考手冊上的文章能夠獲得更多有用的信息。字符編碼通過明確聲明字符編碼,能夠確保瀏覽器快速并容易的判斷頁面內(nèi)容的渲染方式。這樣做的好處是,能夠避免在HTML中使用字符實(shí)體標(biāo)記(characterentity),從而全部與文檔編碼一致(普通采用UTF-8編碼)。IE兼容模式IE支持通過特定的

標(biāo)簽來擬定繪制現(xiàn)在頁面所應(yīng)當(dāng)采用的IE版本。除非有強(qiáng)烈的特殊需求,否則最佳是設(shè)立為edgemode,從而告知IE采用其所支持的最新的模式。<metahttp-equiv=“X-UA-Compatible”content=“IE=edge”>"IE=edge""IE=11""IE=EmulateIE11""IE=10""IE=EmulateIE10""IE=9""IE=EmulateIE9"IE=8""IE=EmulateIE8"注釋<!--header-->引入CSS和JAVASCRIPT根據(jù)HTML5規(guī)范,在引入CSS和JavaScript文獻(xiàn)時(shí)普通不需要指定type屬性,由于text/css和text/javascript分別是它們的默認(rèn)值。語法屬性次序【參考】HTML屬性應(yīng)當(dāng)按照下列給出的次序依次排列,確保代碼的易讀性。classid,namedata-*src,for,type,hreftitle,altaria-*,roleclass用于標(biāo)記高度可復(fù)用組件,因此應(yīng)當(dāng)排在首位。id用于標(biāo)記具體組件,應(yīng)當(dāng)謹(jǐn)慎使用(例如,頁面內(nèi)的書簽),因此排在第二位。語義化標(biāo)簽根據(jù)元素(有時(shí)稱作“標(biāo)簽”)其被發(fā)明出來時(shí)的初始意義來使用它,有根據(jù)有目的地使用HTML元素,對于可訪問性、代碼重用、代碼效率來說意義重大。多媒體回溯:對頁面上的媒體而言,像圖片、視頻、canvas動畫等,要確保其有可替代的接入接口關(guān)注點(diǎn)分離:web中的關(guān)注點(diǎn)涉及信息(HTML構(gòu)造)、外觀(CSS)和行為(JavaScript)。為了使它們成為可維護(hù)的干凈整潔的代碼,必須將它們分離開。嚴(yán)格地確保構(gòu)造、體現(xiàn)、行為三者分離,并使三者之間沒有太多的交互和聯(lián)系。就是說,盡量在文檔和模板中只包含構(gòu)造性的HTML;而將全部體當(dāng)代碼,移入樣式表中;將全部動作行為,移入腳本中;在此之外,為使得它們之間的聯(lián)系盡量的小,在文檔和模板中也盡量少地引入樣式和腳本文獻(xiàn)。?合并樣式,不引用過多樣式表?合并腳本,不使用過多腳本?不使用行內(nèi)樣式?不在元素上使用style屬性?不使用行內(nèi)腳本?不使用表象元素?不使用表象class名(red,left,center)type屬性省略樣式表與腳本上的type屬性。鑒于HTML5中以上兩者默認(rèn)的type值就是text/css和text/javascript,因此type屬性普通是能夠無視掉的。在破舊版本的瀏覽器中這樣做也是安全可靠的。ID和錨點(diǎn)在運(yùn)用錨點(diǎn)提高顧客體驗(yàn)方面,一種比較好的做法是將頁面內(nèi)全部的頭部標(biāo)題元素都加上ID。頁面URL的hash中帶上對應(yīng)的ID名稱,即形成描點(diǎn),方便跳轉(zhuǎn)至對應(yīng)元素所處位置。例如,在瀏覽器中輸入U(xiǎn)RL(帶有錨點(diǎn))時(shí),瀏覽器將定位至錨點(diǎn)對應(yīng)元素位置。HTML引號使用雙引號(“”)而不是單引號(‘’)。實(shí)用為王盡量遵照HTML原則和語義,但是不要以犧牲實(shí)用性為代價(jià)。任何時(shí)候都要盡量使用最少的標(biāo)簽并保持最小的復(fù)雜度。CSS規(guī)范闡明文獻(xiàn)規(guī)范1.全部文獻(xiàn)均歸檔至商定的目錄中:2.框架引入方式?外鏈引入方式?整包導(dǎo)入項(xiàng)目方式3.文獻(xiàn)引入可通過外聯(lián)或內(nèi)聯(lián)方式引入CSS注釋規(guī)范1.【推薦】文獻(xiàn)頂部注釋/**@description:中文闡明*@author:name*@update-01-0114:00*/2.模塊注釋:模塊注釋必須單獨(dú)寫在一行/*module:module2by張三*/Codes/*module:module2by張三*/3.單行注釋與多行注釋,單行注釋能夠?qū)懺趩为?dú)一行,也能夠?qū)懺谛形玻⑨屩械拿恳恍虚L度不超出40個中文,或者80個英文字符。4.特殊注釋:用于標(biāo)注修改、待辦等信息/*TODO:xxxxbyname-04-1318:32*/Codes/*BUGFIX:xxxxbyname-04-1318:32*/5.區(qū)塊注釋/*Header*//*Footer*//*leftside*/CSS命名規(guī)范ID和class(類)名使用能夠反映元素目的和用途的名稱,或其它通用名稱。使用品體且反映元素目的的名稱,這些是最容易理解的,并且發(fā)生變化的可能性最小。使用連字符(中劃線)分隔命名中的單詞。為了增強(qiáng)理解性,在選擇器中不要使用除了連字符(中劃線)覺得的任何字符(涉及沒有)來連接單詞和縮寫。另外,作為該原則,預(yù)設(shè)屬性選擇器能識別連字符(中劃線)作為單詞[attribute|=value]的分隔符。盡量提高代碼模塊的復(fù)用,樣式盡量用組合的方式命名避免使用中文拼音,應(yīng)當(dāng)采用更簡要有語義的英文單詞進(jìn)行組合,應(yīng)當(dāng)用意義命名,而不是樣式顯示成果命名;不要用抽象的艱澀的命名.規(guī)則命名中,一律采用小寫加中劃線的方式,不允許使用大寫字母或_、不允許通過1、2、3等序號進(jìn)行命名命名注意縮寫,但是不能盲目縮寫ID命名要注意明確性及唯一性,不要隨意新建idclass命名要注意通用性及復(fù)用性,命名必須言簡意賅避免class與id重名聲明次序Positioning定位:能夠使一種元素脫離正常文本流,并且覆蓋盒模型有關(guān)的樣式Boxmodel盒模型:決定了一種組件的大小和位置Typographic排版:Visual外觀:CSS代碼格式排版規(guī)范使用4個空格,而不使用tab或者混用空格+tab作為縮進(jìn)規(guī)則能夠?qū)懗蓡涡?,或者多行,但是整個文獻(xiàn)內(nèi)的規(guī)則排版必須統(tǒng)一多個selector共用一種樣式集,則多個selector必須寫成多行形式;每一條規(guī)則結(jié)束的大括號}必須與規(guī)則選擇器的第一種字符對齊;寫成單行時(shí)每一條規(guī)則的大括號{前后加空格,每一條規(guī)則結(jié)束的大括號}前加空格;屬性名冒號之前不加空格,冒號之后加空格;每一種屬性值后必須添加分號;并且分號后空格;規(guī)則書寫規(guī)范使用單引號,不允許使用雙引號;除16進(jìn)制顏色和字體設(shè)立外,CSS文獻(xiàn)中的全部的代碼都應(yīng)當(dāng)小寫;除了重置瀏覽器默認(rèn)樣式外,嚴(yán)禁直接為htmltag添加css樣式設(shè)立;每一條規(guī)則應(yīng)當(dāng)確保選擇器唯一,嚴(yán)禁直接為全局.nav、.header、.body等類設(shè)立屬性;代碼性能優(yōu)化合并margin、padding、border的-left/-top/-right/-bottom的設(shè)立,盡量使用短名稱。選擇器應(yīng)當(dāng)在滿足功效的基礎(chǔ)上盡量簡短,減少選擇器嵌套,查詢消耗。但是一定要避免覆蓋全局樣式設(shè)立。注意選擇器的性能,不要使用低性能的選擇器。嚴(yán)禁在css中使用*選擇符。除非必須,否則,普通有class或id的,不需要再寫上元素對應(yīng)的tag。0背面不需要單位,例如0px能夠省略成0,0.8px能夠省略成.8px。如果是16進(jìn)制表達(dá)顏色,則顏色取值應(yīng)當(dāng)大寫,如果能夠,顏色盡量用三位字符表達(dá),例如#AABBCC寫成#ABC。如果沒有邊框時(shí),不要寫成border:0,應(yīng)當(dāng)寫成border:none。盡量避免使用AlphaImageLoader在保持代碼解耦的前提下,盡量合并重復(fù)的樣式。background、font等能夠縮寫的屬性,盡量使用縮寫形式。CSSHack的使用請不用動不動就使用瀏覽器檢測和CSSHacks,先試試別的解決辦法吧!考慮到代碼高效率和易管理,即使這兩種辦法能快速解決瀏覽器解析差別,但應(yīng)被視為最后的手段。在長久的項(xiàng)目中,允許使用hack只會帶來更多的hack,你越是使用它,你越是會依賴它!區(qū)別屬性:IE6--_property:valueIE6/7--*property:valueIE6/7/8/9--property:value\9區(qū)別規(guī)則:IE6--*htmlselect{...}IE7--*:fist-child+htmlselector{...}非IE6--html>bodyselector{...}firefoxonly--@-moz-documenturl-prefix(){...}字體規(guī)則為了避免文獻(xiàn)合并及編碼轉(zhuǎn)換時(shí)造成問題,建議將樣式中文字體名字改成對應(yīng)的英文名字,如:黑體(SimHei)宋體(SimSun)微軟雅黑(MicrosoftYahei,幾個單詞中間有空格構(gòu)成的必須加引號)為了對font-family取值進(jìn)行統(tǒng)一,更加好的支持各個操作系統(tǒng)上各個瀏覽器的兼容性,font-family不允許在業(yè)務(wù)代碼中隨意設(shè)立CSS編碼技巧盡量減少代碼重復(fù)合理使用簡寫與否應(yīng)當(dāng)使用預(yù)解決器?層級(z-index)必須清晰明確,頁面彈窗、氣泡為最高級(最高級為999),不同彈窗氣泡之間可在三位數(shù)之間調(diào)節(jié);普通區(qū)塊為10-90內(nèi)10的倍數(shù);區(qū)塊展開、彈出為現(xiàn)在父層級上個位增加,嚴(yán)禁層級間盲目攀比。JS規(guī)范JS文獻(xiàn)規(guī)范文獻(xiàn)編碼統(tǒng)一UTF-8;消除Javascript語法的某些不合理、不嚴(yán)謹(jǐn)之處,減少某些怪異行為;消除代碼運(yùn)行的某些不安全之處,確保代碼運(yùn)行的安全;提高編譯器效率,增加運(yùn)行速度為將來新版本的Javascript做好鋪墊JS注釋規(guī)約類,類屬性,類辦法使用/**內(nèi)容*/格式,不得使用//xxx方式辦法內(nèi)部單行注釋,在被注釋語句上方另起一行,使用//注釋。辦法內(nèi)部多行注釋使用/**/注釋,注意與代碼對齊。代碼修改同時(shí),注釋也要進(jìn)行對應(yīng)修改,特別是參數(shù)、返回值、核心邏輯等的修改。闡明:代碼與注釋更新不同時(shí),就像路網(wǎng)與導(dǎo)航軟件更新不同時(shí)同樣,如果導(dǎo)航軟件嚴(yán)重滯后,就失去了導(dǎo)航的意義。謹(jǐn)慎注釋掉代碼。在上方具體闡明,而不是簡樸地注釋掉。如果無用,則刪除;闡明:代碼被注釋掉有兩種可能性:1)后續(xù)會恢復(fù)此段代碼邏輯。2)永久不用。前者如果沒有備注信息,難以知曉注釋動機(jī)。后者建議直接刪掉(代碼倉庫保存了歷史代碼)。對于注釋的規(guī)定:第一、能夠精確反映設(shè)計(jì)思想和代碼邏輯第二、能夠描述業(yè)務(wù)含義,使別的程序員能夠快速理解到代碼背后的信息。完全沒有注釋的大段代碼對于閱讀者形同天書,注釋是給自己看的,即使隔很長時(shí)間,也能清晰理解當(dāng)時(shí)的思路;注釋也是給繼任者看的,使其能夠快速接替自己的工作。好的命名、代碼構(gòu)造是自解釋的,注釋力求精簡精確、體現(xiàn)到位。避免出現(xiàn)注釋的一種極端:過多過濫的注釋,代碼的邏輯一旦修改,修改注釋是相稱大的負(fù)擔(dān)特殊注釋標(biāo)記,請注明標(biāo)記人與標(biāo)記時(shí)間。注意及時(shí)解決這些標(biāo)記,通過標(biāo)記掃描,經(jīng)常清理這類標(biāo)記。線上故障有時(shí)候就是來源于這些標(biāo)記處的代碼。待辦事宜(TODO):(標(biāo)記人,標(biāo)記時(shí)間,[預(yù)計(jì)解決時(shí)間])表達(dá)需要實(shí)現(xiàn),但現(xiàn)在尚未實(shí)現(xiàn)的功效。錯誤,不能工作(FIXME):(標(biāo)記人,標(biāo)記時(shí)間,[預(yù)計(jì)解決時(shí)間])在注釋中用FIXME標(biāo)記某代碼是錯誤的,并且不能工作,需要及時(shí)糾正的狀況。JS命名規(guī)范文獻(xiàn)夾統(tǒng)一使用全小寫代碼中命名不能下列劃線或美元符開始,也不能下列劃線或美元符結(jié)束代碼中嚴(yán)禁使用拼音與英文混合的方式,更不允許直接使用中文方式。純拼音命名方式也要避免采用(國際通用的名稱可視為英文,如:taobao,alibaba等)類名使用UpperCamelCase風(fēng)格辦法名、參數(shù)名、組員變量、局部變量都統(tǒng)一使用lowerCamelCase風(fēng)格,必須遵從駝峰形式如:localValue,getMessage()常量命名全部大寫,單詞間用下劃線隔開,力求語義體現(xiàn)完整清晰,不要嫌名字長杜絕完全不規(guī)范的縮寫,避免望文不知義為了達(dá)成代碼自解釋的目的,任何定義編程元素在命名時(shí)使用盡量完整單詞組合來體現(xiàn)其意JS代碼風(fēng)格規(guī)范大括號使用商定:如果大括號內(nèi)容為空則簡潔的寫成{}即可,不需要換行;如果非空代碼塊則:左大括號前不換行左大括號后換行右大括號前換行右大括號后尚有else等代碼則不換行左小括號和字符之間不出現(xiàn)空格;同樣,右小括號和字符之間也不出現(xiàn)空格(見下例)if/for/while/switch/do等保存字與括號之間都必須加空格任何二目、三目運(yùn)算符的左右兩邊都需要加一種空格;如:settings=settings?settings:{};if(a&&flag==

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論