最近談得最多的話題莫過(guò)于大規(guī)模,大數(shù)據(jù)量,高性能,高并發(fā)等架構(gòu)話題,其實(shí)一個(gè)電子商務(wù)網(wǎng)站開(kāi)始時(shí)一定是小規(guī)模,小數(shù)據(jù)量,用不著把架構(gòu)弄得過(guò)于復(fù)雜。高度設(shè)計(jì)、過(guò)度擴(kuò)展(高德納大爺也說(shuō)過(guò),"過(guò)早優(yōu)化是萬(wàn)惡之源")是現(xiàn)在很多小型電子商務(wù)網(wǎng)站非常容易犯的毛病。開(kāi)始服務(wù)器就一臺(tái),根本沒(méi)有必要去關(guān)心系統(tǒng)擴(kuò)展,數(shù)據(jù)庫(kù)擴(kuò)展,讀寫分離,負(fù)載均衡等,那些大型電子商務(wù)網(wǎng)站的架構(gòu)經(jīng)驗(yàn)根本不用照搬。
1 使用最熟悉技術(shù)
流行的技術(shù)不一定好用,使用開(kāi)發(fā)人員最熟悉的技術(shù)才是上策,如果使用開(kāi)發(fā)人員不熟悉的技術(shù),邊學(xué)邊寫,而且寫的不好,等開(kāi)發(fā)完畢蚊子都睡覺(jué)了。Java好,Python 牛,不一定要選擇,如果你熟悉php就用php,如果熟悉asp就用asp。用什么都無(wú)關(guān)緊要,開(kāi)發(fā)出來(lái)好的系統(tǒng)才是正道。
在開(kāi)發(fā)前要做充分的考慮,綜合評(píng)估下團(tuán)隊(duì)的開(kāi)發(fā)能力,技術(shù)方向。還要考慮硬件和軟件成本,數(shù)據(jù)庫(kù)動(dòng)不動(dòng)就oracle,oracle固然好,但是使用成本還是比較高,小型網(wǎng)站大可以使用mysql等免費(fèi)軟件??梢允褂帽容^便宜的服務(wù)器。
2 系統(tǒng)結(jié)構(gòu)要清晰
雖然是小型網(wǎng)站,也應(yīng)該花點(diǎn)時(shí)間來(lái)確定系統(tǒng)架構(gòu),架構(gòu)不一定是復(fù)雜、大型網(wǎng)站才考慮的事情,小型網(wǎng)站也應(yīng)該在架構(gòu)方面下一定功夫。一定要做到層次清晰,業(yè)務(wù)分明。就算在一臺(tái)服務(wù)器上面甚至在一個(gè)工程中要把業(yè)務(wù)和展示層嚴(yán)格分開(kāi)。如果什么功能都集中在一起,到時(shí)候要增加功能、擴(kuò)展業(yè)務(wù)將會(huì)無(wú)比痛苦。也可以考慮把不同的業(yè)務(wù)按照一定規(guī)則分開(kāi),有利于以后擴(kuò)展其他業(yè)務(wù)。
嚴(yán)格分層開(kāi)發(fā),也將有利于未來(lái)系統(tǒng)壯大時(shí)能一步一實(shí)現(xiàn)分布式?,F(xiàn)在很多網(wǎng)站是用php來(lái)開(kāi)發(fā),很普遍的現(xiàn)象是面向過(guò)程的寫法,把一件事情從頭到尾在一個(gè)程序中實(shí)現(xiàn)。其實(shí)php也好,asp也好,java也好,都可以嚴(yán)格把業(yè)務(wù)和前端分開(kāi),這樣增加功能也好,維護(hù)也好也比較方便。
3 功能要做細(xì)
曾經(jīng)有一次和一位業(yè)內(nèi)非常有名的技術(shù)大拿聊天時(shí),談到一個(gè)電子商務(wù)網(wǎng)站開(kāi)始時(shí)的想法。他剛好在創(chuàng)業(yè)初期。后來(lái)給了他一個(gè)建議是寧可功能少些,也要把放上網(wǎng)站的功能做細(xì)些,做完善,給用戶好的體驗(yàn)。不要一味模仿大型網(wǎng)站,功能一大堆,然而每個(gè)功能不是缺腿就是少胳膊,要不就是模仿又模仿不好,最后不倫不類。不求多只求精。
在頁(yè)面觀感上面多下功夫,盡量給眼前一亮的感覺(jué),愛(ài)美之心人人有,漂亮的網(wǎng)頁(yè)總是能吸引人的。
4 在一定程度上使用緩存
顯然現(xiàn)在大型網(wǎng)站都常用緩存,小型網(wǎng)站也可以考慮,畢竟能提高訪問(wèn)速度,提升用戶體驗(yàn),也在很大程度上減輕數(shù)據(jù)庫(kù)壓力。業(yè)界非常有名的memcached是不錯(cuò)的選擇??梢园殉S玫牧斜恚S没拘畔?,特別是首頁(yè)的展示信息盡量放到緩存中,從而提高首頁(yè)的訪問(wèn)速度,給用戶一個(gè)非常好的初步印象。
5 做適當(dāng)?shù)姆治?/span>
分析可以包括日志分析,性能分析,用戶分析,應(yīng)用軟件分析,數(shù)據(jù)庫(kù)分析等。定期對(duì)日志進(jìn)行分析,分析系統(tǒng)的bug和存在隱患。對(duì)性能分析能為日后優(yōu)化擴(kuò)展提供有利的幫助。做適當(dāng)?shù)挠脩舴治瞿転榫W(wǎng)站業(yè)務(wù)決策提供一定幫助。做應(yīng)用軟件分析,能為日后選擇那些軟件提供充分的準(zhǔn)備。
6 進(jìn)化
最后引用Qcon2009大會(huì)資料的幾句話:
l 進(jìn)化原理- 尋找最適合的
l 退化原理- 簡(jiǎn)化不必要的
l 好的架構(gòu)是實(shí)踐出來(lái)的
聯(lián)系客服