(歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者,尊重版權(quán))
作者http://www.tangusoft.com
一.中小企業(yè)進銷存系統(tǒng)和運行平臺以及技術(shù)架構(gòu)
1. 中小企業(yè)進銷存系統(tǒng)特點:
a. 目標客戶
零售批發(fā)中小企業(yè),企業(yè)規(guī)模人數(shù)500人以下,銷售額1500萬元以下。
b. 數(shù)據(jù)操作頻繁
每天頻繁操作銷售和采購以及倉庫出入庫,經(jīng)常需要查看企業(yè)基本信息,包括商品信息,客戶供應商信息,應收應付。并且需要快捷的操作系統(tǒng)。
c.存儲數(shù)據(jù)量有限
商品信息大概5000條,客戶供應商大概1000,
每天單據(jù)信息大概50條,每年單據(jù)信息大概20000條
d.并發(fā)操作用戶數(shù)量固定
銷售員,采購員,經(jīng)理,財務,大概20人左右。
e. 用戶使用地點不同
需要直接方便瀏覽器訪問系統(tǒng)
f. 客戶瀏覽器處理功能強大
目前客戶電腦普遍內(nèi)存1G, 處理器 雙核2.0 以上
g.中小企業(yè)普遍軟件預算不高
同時也盡量避免盜版軟件引起的法律訴訟和糾紛。
2. 運行平臺和系統(tǒng)架構(gòu)
根據(jù)中小企業(yè)進銷存系統(tǒng)的眾多特點,同時考慮技術(shù)成熟度和新技術(shù)風險,我們決定采取以下運行平臺和系統(tǒng)架構(gòu)
運行平臺 Linux Apache Tomcat Mysql
系統(tǒng)架構(gòu)
表現(xiàn)層Flex 3
數(shù)據(jù)處理和控制層Blazds + Spring + Ibatis
Flex/Flash 具有以下優(yōu)點
客戶端 界面友好,數(shù)據(jù)表現(xiàn)能力強大,處理能力強大,有一定的緩存數(shù)量的能力,減少服務器請求次數(shù),節(jié)省不必要的網(wǎng)絡傳輸。
BlazDS 能夠處理并發(fā)用戶的請求,并且能夠壓縮數(shù)據(jù)。
Spring 聲明性的代碼配置,減少系統(tǒng)維護工作量
Ibatis 減少實際編碼,考慮以后支持多種商業(yè)數(shù)據(jù)庫
運行平臺免費,企業(yè)零預算。
二,框架和代碼生成器
1. 選擇成熟的Flex 框架
cairngorm 和 pure MVC 是目前成熟的open source 框架。
基于Adobe 支持和維護cairngorm,所以采用cairngorm
同時cairngorm 對view 表現(xiàn)層 和 control 控制層 的 隔離和耦合沒有成熟的解決方案,開發(fā)過程我們曾經(jīng)使用ViewControllerHelper ,用addListener監(jiān)聽器監(jiān)聽event 事件的執(zhí)行,實際過程發(fā)現(xiàn)代碼維護成本太高,遂中途放棄。
最后我們同時引進universal mind cairngorm作為補充輔助框架。
2. Ibatis 代碼生成器
選擇Abator
三,解決方案
1. 客戶端盡可能使用單例模式
減少不必要的客戶端內(nèi)存開銷
2. 適度利用客戶端緩存
對于商品以及客戶供應商, Flex 緩存這些數(shù)據(jù),各模塊共享數(shù)據(jù)。
3. 盡可能的采用lazy load 惰性載入數(shù)據(jù)
很多Flex 系統(tǒng)采用初始化時候一次性載入系統(tǒng)所需要數(shù)據(jù),結(jié)果導致延長用戶登錄時間,用戶體驗非常的差。
4. 不要過度依賴客戶端處理能力
特別是大數(shù)據(jù)排序或者處理請求大數(shù)據(jù)能力的時候,flex 很容易導致瀏覽器停頓和不響應。請把大數(shù)據(jù)排序放在Java或者數(shù)據(jù)庫端,適度的分頁分段向服務器請求數(shù)據(jù)。
5. 最大有效的利用Flex 3新的類庫。
減少開發(fā)工作量。
例如利用arraycollection 內(nèi)置的filerfunction 進行查找數(shù)據(jù)。
6. 定制開發(fā)一些特有的控件
帶合計欄的datagrid
能模糊查詢的combobox
7.報表開發(fā)
使用成熟的jasper report 框架。
8. 用戶權(quán)限的開發(fā)
動態(tài)創(chuàng)建用戶所能操作的模塊,而不是簡單控制模塊的可見和不可見屬性
9. 減少生成swf 大小
使用runtime shared library 編譯swf
10. 開發(fā)模塊組件化
判斷標準是沒有出現(xiàn)冗余重復模塊代,application mxml 文件代碼簡潔
11. 模塊之間的數(shù)據(jù)和方法調(diào)用
A模塊引用B模塊的數(shù)據(jù)d和方法f,避免簡單的調(diào)用B.d 和 B.f
需要采用數(shù)據(jù)和方法的傳遞,以免多層次的模塊數(shù)據(jù)和方法調(diào)用導致代碼的復雜。
12 使用resource bundle
標簽和文本以及提示從resource 文件讀取。
四,基于Flex的進銷存系統(tǒng)演示地址
http://www.tangusoft.com/Demo/
flex的長處是數(shù)據(jù)的圖形化。但用flex顯視二維數(shù)據(jù)和傳統(tǒng)的html相比,卻顯得呆版,笨重。