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