亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

<<編寫可維護(hù)的javascript>> 筆記9(將配置數(shù)據(jù)從代碼中分離出來

xbynet / 2439人閱讀

摘要:代碼無非是定義一些指令的集合讓計算機來執(zhí)行我們常常將數(shù)據(jù)傳入計算機由指令對數(shù)據(jù)進(jìn)行操作并最終產(chǎn)生一個結(jié)果當(dāng)不得不修改數(shù)據(jù)時問題就來了任何時候你修改源代碼都會有引入的風(fēng)險且值修改一些數(shù)據(jù)的值也會帶來一些不必要的風(fēng)險因為數(shù)據(jù)時不應(yīng)當(dāng)影響指令的正

代碼無非是定義一些指令的集合讓計算機來執(zhí)行. 我們常常將數(shù)據(jù)傳入計算機, 由指令對數(shù)據(jù)進(jìn)行操作, 并最終產(chǎn)生一個結(jié)果. 當(dāng)不得不修改數(shù)據(jù)時問題就來了. 任何時候你修改源代碼都會有引入bug的風(fēng)險, 且值修改一些數(shù)據(jù)的值也會帶來一些不必要的風(fēng)險, 因為數(shù)據(jù)時不應(yīng)當(dāng)影響指令的正常運行的. 精心設(shè)計的應(yīng)用應(yīng)當(dāng)將關(guān)鍵數(shù)據(jù)從主要的源碼中抽離出來, 這樣我們修改源碼時才更加放心.

9.1 什么是配置數(shù)據(jù)
配置數(shù)據(jù)是應(yīng)用中寫死的值.

// 配置參數(shù)埋藏在代碼中
function validate(value) {
    if(!value) {
        alert("非法的值");
        location.href = "/errors/invalid.php";
    }
}

function toggleSelected(element) {
    if(hasClass(element, "selected")) {
        removeClass(element, "selected");
    }else {
        addClass(element, "selected");
    }
}

這段代碼中有三個配置數(shù)據(jù)片段. 第一個是字符串 "非法的值", 這個值是給用戶提示的. 所以它可能會被頻繁修改. 第二個是URL"/errors/incalid.php". 當(dāng)架構(gòu)變更時則可能頻繁修改. 第三個是CSS的類名"selected". 有三處都用到了className, 這意味著要修改這個類名要修改三處代碼. 很可能不小心丟掉了某處.

URL

需要展現(xiàn)給用戶的字符串

重復(fù)的值

設(shè)置 (比如每頁的配置項)

任何可能發(fā)生變更的值

配置數(shù)據(jù)時可發(fā)生變更的, 而且你不希望有人要改展示信息而去修改源碼.

9.2 抽離配置數(shù)據(jù)
將配置參數(shù)從代碼中抽離出來.

// 將配置參數(shù)抽離出來
var config = {
    MSE_VALUE: "非法的值",
    URL_INVALID: "/errors/invalid.php",
    CSS_SELECTED: "selected"
}
function validate(value) {
    if(!value) {
        alert(config.MSG_VALUE);
        location.href = config.URL_INVALID;
    }
}

function toggleSelected(element) {
    if(hasClass(element, config.CSS_SELECTED)) {
        removeClass(element, config.CSS_SELECTED);
    }else {
        addClass(element, config.CSS_SELECTED);
    }
}

這樣修改它們就不會導(dǎo)致代碼出錯
9.3 保存配置數(shù)據(jù)
配置數(shù)據(jù)最好多帶帶在一個文件中. 這樣代碼清晰很多.
有很多方式, 不用js用別的語言要轉(zhuǎn)化為js識別語言.

JSON

JSONP

純JavaScript

有很多模塊導(dǎo)入方法import等等

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/92739.html

相關(guān)文章

  • &lt;&lt;編寫維護(hù)javascript&gt;&gt; 筆記5(UI層松耦合)

    摘要:由于第四章太稀松平常了于是就直接跳到第五章了這里我就草草的說一下第四章的幾個點吧在嚴(yán)格模式的應(yīng)用下不推薦將用在全局作用域中相等推薦盡量使用和守則如果是在沒有別的方法來完成當(dāng)前任務(wù)這時可以使用原始包裝類型不推薦創(chuàng)建類型時用等創(chuàng)建類型從這一章節(jié) 由于第四章太稀松平常了, 于是就直接跳到第五章了.這里我就草草的說一下第四章的幾個點吧 在嚴(yán)格模式的應(yīng)用下 不推薦將use strict;用在全...

    saucxs 評論0 收藏0
  • &lt;&lt;編寫維護(hù)javascript&gt;&gt; 筆記7(事件處理)

    摘要:在所有應(yīng)用中事件處理都是非常重要的所有的均通過事件綁定到上所以大多數(shù)前端工程師需要花費很多時間來編寫和修改事件處理程序遺憾的是在誕生之初這部分內(nèi)容并未受太多重視甚至當(dāng)開發(fā)者們開始熱衷于將傳統(tǒng)的軟件架構(gòu)概念融入到里時事件綁定仍然沒有收到多大重 在所有JavaScript應(yīng)用中事件處理都是非常重要的. 所有的JavaScript均通過事件綁定到UI上, 所以大多數(shù)前端工程師需要花費很多時間...

    microelec 評論0 收藏0
  • Html/Css/Jquery知識點集錦

    摘要:首先,巧妙的使用這一標(biāo)記,將游覽器從所有情況中分離出來。接著,再次使用將和分離開來,這樣已經(jīng)獨立識別。元素不能用作語義用途以外的其他目的。Html1、Html5有哪些新特性,移除了哪些元素?如何處理HTML5新標(biāo)簽的瀏覽器兼容問題?如何區(qū)別HTML和HTML5?HTML5 現(xiàn)在已經(jīng)不是 SGML 的子集,主要是關(guān)于圖像,位置,存儲,多任務(wù)等功能的增加。拖拽釋放(Drag and drop) ...

    shiweifu 評論0 收藏0
  • &lt;&lt;編寫維護(hù)javascript&gt;&gt; 筆記1(基本格式化)

    摘要:程序是寫給人讀的只是偶爾讓計算機執(zhí)行一下當(dāng)你剛剛組建一個團(tuán)隊時團(tuán)隊中的每個人都各自有一套編程習(xí)慣畢竟每個成員都有著不同的背景有些人可能來自某個皮包公司身兼數(shù)職在公司里面什么事都做還有些人會來自不同的團(tuán)隊對某種特定的做事風(fēng)格情有獨鐘或恨之入骨 程序是寫給人讀的,只是偶爾讓計算機執(zhí)行一下. Donald Knuth 當(dāng)你剛剛組建一個團(tuán)隊時,團(tuán)隊中的每個人都各自有一套編程習(xí)慣.畢竟,...

    wfc_666 評論0 收藏0
  • &lt;&lt;編寫維護(hù)javascript&gt;&gt; 筆記3(語句和表達(dá)式)

    摘要:所有的塊語句都應(yīng)當(dāng)使用花括號包括花括號的對齊方式第一種風(fēng)格第二種風(fēng)格塊語句間隔第一種在語句名圓括號和左花括號之間沒有空格間隔第二種在左圓括號之前和右圓括號之后各添加一個空格第三種在左圓括號后和右圓括號前各添加一個空格我個人喜歡在右括號之后添 所有的塊語句都應(yīng)當(dāng)使用花括號, 包括: if for while do...while... try...catch...finally 3....

    OBKoro1 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<