電子商務網站必須要解決的若干技術問題
著作權聲明:如有轉載請求,請註明出處:http://blog.csdn.net/yzhz 楊爭
本文分別從架構、搜尋、效能等技術角度分析了電子商務網站重點要解決的幾個問題,並給出一些建議和方案。
一、一個好電子商務網站的架構必須是一個易擴充、易維護性的架構
電子商務網站一個最大的特點就是商業邏輯比較複雜,需求變更快,代碼的維護和功能擴充一般會佔用整個應用生命週期80%-90%的時間。所以,只有一個靈活性高,擴充性強、方便維護的架構才能適應電子商務網站發展的要求。
具有以上特點的架構通常具有以下特徵:
1、是一個鬆散耦合的架構。分層是必須的,通常指常見的三層架構,各層內部也可以根據需求作出一定的細分。
2、採用了一些合適的設計模式。一個優秀的架構必然在其中使用了一些設計模式,當然反之並不一定成立。
j2ee社區已經給我們提供優秀的設計模式供我們參考:
(1) j2ee核心設計模式
http://java.sun.com/blueprints/corej2eepatterns/Patterns/
(2) martinfowler的Patterns of Enterprise Application Architecture。
http://www.martinfowler.com/eaaCatalog/
你可以在這些模式中找到滿足需求的設計模式。總之,一句話,不要為了模式而模式,關鍵要領會各個模式(when and how),靈活地使用。
3、提供了一定的基礎設施和可重用的組件。只有這樣的架構才能提高開發效率,降低重複代碼,對客戶的需求變化能作出快速的反應。目前我認為SOA(面向服務的架構)是最符合這一要求的架構。
網上介紹SOA的文章有很多,developerworks專門有個SOA and Web services專區介紹SOA的相關知識。
下面這篇文章我是不久之前看到,覺得寫得不錯,有一定的借鑒,大家可以看看。
Designing an Enterprise Application Framework for Service-Oriented Architecture
二、搜尋引擎
一個優秀的電子商務網站會提供大量的商品或者資訊。為了協助客戶找到他想要的商品,必然要為客戶提供一個優秀的搜尋引擎供他們尋找。
這樣的搜尋引擎必須解決了以下兩個關鍵性問題:
1、大資料量的索引和檢索。
2、快速、準確地返回使用者要搜尋的資訊。
Lucene是一個基於Java的全文索引工具包,它已經有了其他語言的版本。對於在搜尋上沒有技術積累的電子商務公司, Lucene是比較好的選擇和學習的途徑。現在luncene已經成為apache的頂級子項目。
http://lucene.apache.org/
http://www.lucene.com.cn/
學習Lucene,Lucene in Action 這本書是一定要看。
三、互動大資料量的訪問。
對於使用者與網站互動比較多的電子商務網站,應用的效能瓶頸通常在資料庫方面。特別是隨著資料量的增長,資料庫的壓力會愈加明顯。
對資料庫的最佳化有各種各樣的方法,DBA、開發工程師都有各自的要求,比如要求開發工程師在寫SQL語句的時候必須採用綁定變數,所有的SQL必須提交DBA審核等等。這些工作對資料庫的最佳化都有大大的協助。
但資料庫中資料的增長是必然趨勢,我認為最終的解決方案就是根據實際需求採用合適的策略降低要訪問的資料量。這才是王道。
總之,一個資訊量大,訪問速度快,安全,方便使用的電子商務網站永遠是客戶的第一選擇。為了創造最佳的客戶體驗需要網站開發人員(這裡我主要指技術部門)在以上幾方面做出更大的努力,學習和創新是工程師們要牢記的法則。