注意數(shù)據(jù)模型中的關(guān)系。在設(shè)計(jì)數(shù)據(jù)模型時(shí),添加表和列時(shí),或者編寫查詢時(shí),要從長(zhǎng)遠(yuǎn)角度考慮實(shí)體間的關(guān)系如何影響性能和可擴(kuò)展性的情形。在設(shè)計(jì)數(shù)據(jù)模型時(shí),要考慮到將來的數(shù)據(jù)庫分割和其他可能的數(shù)據(jù)需求。在實(shí)現(xiàn)了數(shù)據(jù)模型后,才發(fā)現(xiàn)它有問題,此時(shí)修復(fù)的成本很高,可能是設(shè)計(jì)階段修復(fù)它的成本的100倍。事先考慮好,仔細(xì)策劃數(shù)據(jù)模型。要采用范式,考慮將來可能如何分割數(shù)據(jù)庫及應(yīng)用可能有哪些需求。 ...
利用每一次失敗來學(xué)習(xí),吸取重要的教訓(xùn)。采用事后分析方法,在故障較少的環(huán)境中推測(cè)故障。應(yīng)用理由:我們從失敗中才能獲得最深刻的教訓(xùn),而不是從成功中。不要讓任何失敗浪費(fèi)掉。從每次失敗中學(xué)習(xí),發(fā)現(xiàn)需要改正的技術(shù)、人員和流程上的問題。...
要一直能回退代碼。確保所有的版本都能夠回退,在一個(gè)階段或QA環(huán)境中,要實(shí)踐回退功能。在生產(chǎn)環(huán)境中,當(dāng)必須用它解決突發(fā)事件時(shí),要使用回退功能整理代碼,制定幾個(gè)簡(jiǎn)單的流程,確保能夠回退自己的代碼。 ...
使用QA降低被交付產(chǎn)品的成本,提高編碼生產(chǎn)力,識(shí)別質(zhì)量變化動(dòng)向,減少缺陷,但不要用QA提高質(zhì)量。適用于雇用員工通過測(cè)試而不是通過編碼來提高生產(chǎn)力的情況??偸峭ㄟ^QA從過去的失誤中獲取經(jīng)驗(yàn)。當(dāng)雇用一個(gè)QA人員得到的價(jià)值大于一個(gè)程序員工作的價(jià)值時(shí),就應(yīng)該雇用一個(gè)QA人員。...
抓住每個(gè)機(jī)會(huì)學(xué)習(xí)。持續(xù)地從失誤和成功中學(xué)習(xí)。觀察客戶或者使用AB測(cè)試決定哪種方法可行。采用事后分析的方法,從生產(chǎn)環(huán)境發(fā)生的偶然事件和問題中學(xué)習(xí)。...
盡可能減少系統(tǒng)中的時(shí)間緩存。由于大多數(shù) RDBMS(關(guān)系數(shù)據(jù)庫管理系統(tǒng))具有ACID屬性,要擴(kuò)展具有時(shí)間約來的系統(tǒng)非常難。要慎重考慮對(duì)于約來的需水,如要水從用戶看到物品直到購買它時(shí)它一直可用。對(duì)于某些邊緣情況,補(bǔ)償用戶的失望比不能拓展系統(tǒng)好得多。...
在Web服務(wù)之前部署頁面緩存。選擇一種緩存系統(tǒng)并部署它。通過緩存和響應(yīng)之前生成的動(dòng)態(tài)請(qǐng)求,迅速響應(yīng)靜態(tài)對(duì)象的調(diào)用,從而降低Web服務(wù)器的負(fù)載。頁面緩存是分流動(dòng)態(tài)請(qǐng)求并有效進(jìn)行擴(kuò)展的好方法。...
使用正確的HTTP響應(yīng)頭,確保緩存Ajax調(diào)調(diào)用。除了絕對(duì)需要實(shí)時(shí)更新數(shù)據(jù)的Ajax調(diào)調(diào)用,其他都適用。應(yīng)用方式:正確修改HTTP頭Last-Modified、ache-contro1和Expires。...
利用CND(Content Delivery Network,內(nèi)客分發(fā)網(wǎng)絡(luò))分擔(dān)站點(diǎn)流量。在成本合理的情況下,再選擇哪些內(nèi)容最適合。大多數(shù)CDN利用DNS(域名服務(wù)或城名服務(wù)器),從而替站點(diǎn)來提供內(nèi)容。...
盡可能減少系統(tǒng)中的時(shí)序約束。當(dāng)你想添加一個(gè)約東,使某個(gè)物品或?qū)ο笤谟脩舻膬蓚€(gè)動(dòng)作之間維持某個(gè)狀態(tài)時(shí),放松業(yè)務(wù)原則中的約束。由于大多數(shù)RDBMS的ACID屬性,擴(kuò)展具有時(shí)序約束的系統(tǒng)非常因難。...