選擇開發技術四步曲
我的一位朋友正在為乙個即將啟動的程式設計專案而費腦筋:要在保證專案順利完成的同時提高效能。他問我:「我該如何挑選技術呢?」這位朋友時斷時續地編寫過**,但他還沒有做過任何實質性的專案。他從未專注於任何特定的技術,他對這個專案不知如何下手。雖然他基於以前的經驗傾向於部署到linux,但這還不是最終決定。
在這兒,我將自己給他提的建議分享出來。我將不推薦任何具體的技術,而是告訴你,我在對技術和體系結構制定決策時的方法。
第1步:為應用程式作松耦合設計
敏捷方法已經變得非常流行,一些人認為,這意味著你不要嘗試超越一兩個星期的時間表。但這在為應用程式作松耦合設計準備時極具價值。您所需要做的只是使用乙個具有流程圖功能(例如visio)的工具來提供乙個高層次的邏輯概述。您不必陷入這樣的細節:「驗證這個字段至少包含五個字元」或資料布局。但你需要對應用程式各組成部分所擔負的處理職責有乙個總體思路。
這兒有圖中應該包含的東西的一些例子:
第2步:確定資源的使用情況和特點▲ 任何重大的批處理任務。
▲ 資料儲存(檔案,資料庫,「雲」等)以及對之進行檢索並提供給應用程式其它部分的元件。
▲ 重要處理出現的地方(在資料庫中,在業務邏輯層,web服務,客戶端等)和它的作用。
一旦邏輯概述圖完成了,我們可以用它來確定資源的使用情況。你需要注意的資源是cpu、記憶體、硬碟空間和頻寬。你要向外部web服務傳輸大量資料或者與之相反?這就需要注意應用程式和服務之間的連線的頻寬資源。也許你的資料庫內部要做密集的運算 - 那就注意資料庫的cpu使用情況,如此等等。
第3步:判斷效能臨界區域
一旦你明白了要使用**的資源,也就發現了潛在的效能瓶頸。這些地方會對你的技術選擇有最大的影響。如果事實證明你儲存在資料庫中資訊很少,你在資料庫方面就有更多選擇。也許你要在業務邏輯層執行的令cpu沉重的演算法,這其中就表明你需要支援高速運算的語言和平台。下面是我以前做的圖表,這會有助於您了解這會如何影響你的決策。
cpu
記憶體
磁碟空間
頻寬
資料庫
資料庫必須是高情能系統,比如 postgresql 或oracle.
所有主要的資料庫應該有大量足夠的記憶體可供使用。
跳過附帶有大小限制的低端資料庫,如sql server express。
把應用程式佈署在在資料庫所在機房。
業務層
語言必須要快,並且可能需要對多執行緒有很好的支援。
n/a為了充分利用磁碟空間,把應用程式佈署在同一機房。
把應用程式佈署在在資料庫所在機房。
向客戶端提供的api介面
語言的速度必須要快,並且可能需要對多執行緒有很好的支援。
n/a重新考慮你的架構。
重新考慮你的策略。
客戶端軟體
語言必須要快,並且可能需要對多執行緒有很好的支援。
仔細考慮您的目標市場和客戶的能力。
仔細考慮您的目標市場和客戶的能力。
確保目標市場的頻寬(例如,不要銷售給農村地區的消費者)。
第三方服務
精心挑選**商。
n/a選擇乙個低成本的儲存廠商。
重新考慮你的策略。
第4步:權衡需求規模
你可以從圖表中學到的另一件事是你的應用程式的哪個地方需要權衡。例如,如果大部分處理需求是發生在應用程式的客戶端,那麼伺服器架構可以寬鬆得多。
結論
腦健康四步曲
新的研究使我們注意到高膽固醇可能使腦細胞較易痴呆。心臟 大腦關係到長期健康 心臟病患者做的很多事對於我們大家保持大腦健康也是好的.因此,由防止心臟病發作,你可避免腦消耗。1 服用維生素b 維生素b可以幫助阻止高半胱氨酸,它是損害血管的一種氨基酸。乙份關於芝加哥總部繁忙研究所研究員中老人的研究中發現,...
危機公關四步曲
危機公關四步曲 隨著資訊科技的進一步發展,尤其是網際網路已經很大程度上改變了人們資訊傳播的途徑和速度,原先的 好事不出門,壞事傳千里 在資訊社會裡壞事的傳播加速度已經遠遠超越了人們的想象。隨著 sk ii 產品含有違禁成分 事件的 由於 sk ii 在危機處理過程中舉措失當,引發各地消費者退貨退款的...
EQ管理的四步曲
我eq管理的四步曲 生活中,經常會聽到領導對員工說,不要把情緒帶到工作中,太太對先生說,不要把情緒帶回家,老師對學生說,你怎麼能帶著情緒和我說話 這些話語都無形地表達出我們對 情緒 的恐懼和無助。正因為這樣,很多人在面對情緒到來時,往往會處理不當,輕的影響日常工作,重的甚至會讓自己的人際關係都受到損...