怎樣設(shè)計平臺網(wǎng)站架構(gòu)
網(wǎng)站架構(gòu),一般認為是根據(jù)客戶需求分析的結(jié)果,準確定位網(wǎng)站目標群體,設(shè)定網(wǎng)站整體架構(gòu),規(guī)劃、設(shè)計網(wǎng)站欄目及其內(nèi)容,制定網(wǎng)站開發(fā)流程及順序,以最大限度地進行高效資源分配與管理的設(shè)計。 從架構(gòu)設(shè)計師的角度來看,架構(gòu)就是一套構(gòu)建系統(tǒng)的準則。通過這套準則,我們可以把一個復(fù)雜的系統(tǒng)劃分為一套更簡單的子系統(tǒng)的集合,這些子系統(tǒng)之間應(yīng)該保持相互獨立,并與整個系統(tǒng)保持一致。
選擇技術(shù)方案和物理架構(gòu)
如何選擇技術(shù)方案和物理架構(gòu),對很多剛接觸平臺網(wǎng)站研發(fā)的人來說這可能是個頭疼的問題。這些問題的源頭很簡單就是能否提高開發(fā)效率,使平臺具有高性能高負載性。就我遇到的常見的有這么幾個問題:
a) 開發(fā)語言和數(shù)據(jù)庫
一說到開發(fā)語言和數(shù)據(jù)庫,很多人便開始做語言的比較,最常見的爭論有:“asp.net和java哪個好”,“解釋性語言和編譯性語言哪個好”等。我個人覺的最關(guān)鍵是你和你的團隊最擅長的開發(fā)語言和數(shù)據(jù)庫是哪個,古語有云:“工欲善其事,必先利其器!”,趁手的開發(fā)語言和數(shù)據(jù)庫有助于事半功倍。試想如果你選擇了一個并不很熟悉的語言,也許這個語言和數(shù)據(jù)庫在基礎(chǔ)性能上的確比你掌握的語言好,但是在研發(fā)過程中學習曲線肯定長。而且遇到問題的時候因為不熟悉的原因,浪費更多的時間去尋找解決方法,而且找到的方法不一定是最好的,說不定還不如你自己用熟悉的語言解決來的快。合肥網(wǎng)站建設(shè)公司
b) 成熟框架還是自己實現(xiàn)
1 能提供使用指南,比如 COOKBOOK, USE GUIDE等。有這些提供,那么入門使用變的容易,也方便維護,而且有助于深入了解其特性和原理?! ?/p>
2 有官方支持,比如官方討論社區(qū),郵件列表等,并且有BUG收集處理機制。有句話叫大樹底下好乘涼,有了官方支持,當使用過程中遇到問題的時候,直接就可以通過查找前人的使用心得和問題來解決問題,遇到BUG的時候,提交上去,也能找到解決之法?! ?/p>
3 官方在不斷的更新發(fā)布穩(wěn)定版本。這一點很重要,官方如果及時幫你解決目前已知的或者未知的BUG,那么對使用者來講,就沒什么后顧之憂了,如果官方停止更新了,那么我建議還是早點換下家吧,因為如果這個框架好,那么肯定會越來越好,官方也會不斷的更新它。還有就是穩(wěn)定永遠是第一位,可以在不影響生產(chǎn)環(huán)境的情況下進行無縫升級更新?! ?/p>
架構(gòu)優(yōu)化
關(guān)于架構(gòu)優(yōu)化,我放在研發(fā)完成并上線之后來講。個人覺的沒有百分百可用的架構(gòu),得看你實際的業(yè)務(wù)流程和運行情況來進行優(yōu)化。當你運行了一段時間后,收集到一定的數(shù)據(jù),找出性能的弱點后進行針對性調(diào)整和優(yōu)化,當平臺的負載強度達到一定程度,就得立即著手做架構(gòu)升級。