快速開發(fā)框架的編碼總結(jié)

字號:

最近不到一個月,主要精力還是在快速開發(fā)框架的設(shè)計和開發(fā)上面.開發(fā)效率是第一首要考慮的因素,但框架的性能,安全性,可擴(kuò)展性,組件復(fù)用等仍然能夠得到考慮.同時考慮這些因素不會帶來開發(fā)效率的下降。
    對于一個單表數(shù)據(jù)維護(hù)功能根據(jù)維護(hù)數(shù)據(jù)項(xiàng)的多少實(shí)際代碼編寫量在50-200行左右.一個主明細(xì)表單數(shù)據(jù)的維護(hù)代碼量在300-600行左右.對于動態(tài)查詢功能,前臺UI層代碼量小于100行.這基本是符合當(dāng)時的設(shè)想的。
    1.組件生成工具節(jié)省代碼量在30-40%左右.可以支持自定義實(shí)體的生成和Typed DataSet生成是一個很重要的功能.為界面UI的可視化和離線化設(shè)計提供基礎(chǔ).同時整個功能開發(fā)完全不用考慮應(yīng)用服務(wù)層,整個應(yīng)用服務(wù)層暴露到外面的就一個WebServiceClient.dll接口類。
    2.公用方法和公用類應(yīng)該面向借口,少用繼承,多用組合的方式.這也是設(shè)計模式強(qiáng)調(diào)的內(nèi)容.當(dāng)公用方法放在BaseForm里面時候會出現(xiàn)當(dāng)我們開發(fā)一個UserControl時候就無法使用,還得專門再寫一個BaseUserControl,造成打量代碼重復(fù).因此BaseForm里面應(yīng)該少含公用方法,公用方法全部抽取到單獨(dú)的類里面.DataSetHelper,XmlHelper,UIControlHelper,CommonDataHelper等是需要經(jīng)常使用的公用類。
    3.客戶端緩存原有的定時刷新或滑動刷新機(jī)制還不能完全滿足需求,需要再到數(shù)據(jù)庫中增加緩存對象的配置表,該配置表需要按客戶端或用戶進(jìn)行數(shù)據(jù)區(qū)分,以確定哪些數(shù)據(jù)需要在改變后可以通過Push的方式強(qiáng)制刷新。
    4.MDI框架和各個子系統(tǒng)SDI框架間完全是松散藕合的關(guān)系。整個框架中菜單裝載通過后臺數(shù)據(jù)庫配置動態(tài)裝載,各個子系統(tǒng)通過反射調(diào)用來動態(tài)Load進(jìn)來。
    5.對于每個Form都應(yīng)該有統(tǒng)一的工具欄,因此這里也有兩種實(shí)現(xiàn)方式,一種是在BaseForm里面實(shí)現(xiàn)工具欄。在這里我采用了組合的方式,將工具欄實(shí)現(xiàn)為一個UserControl用戶控間。工具欄的所有操作全部抽象為接口,每個Form只需要實(shí)現(xiàn)這些接口方法即可。
    6.文件上傳采用Ftp方式進(jìn)行上傳,文件上傳復(fù)用為一個統(tǒng)一的UserControl控件。
    7.通過單獨(dú)的一個ExceptionManager類統(tǒng)一接管對所有異常的處理,系統(tǒng)出現(xiàn)異常時候可以向用戶提供友好的信息,而實(shí)際的異常堆棧等信息全部記錄到日志文件或記錄到數(shù)據(jù)庫。
    這一個月左右的時間寫了約8000行代碼,23%的代碼注釋量。給我的感覺就是很久沒有寫代碼開始手生,但撿起來的速度很快。兩年多沒有看過sql server了,基本1,2天就可以很熟悉了。不熟悉的地方也可以很快速的通過以往資料積累或網(wǎng)上搜索快速的查詢到?;旧鲜菍ψ约合胗玫臇|西是很清楚能夠在哪里找到的。